Skip to content

Commit

Permalink
Merge pull request #122 from nabla-c0d3/#121-support-for-python-3-13
Browse files Browse the repository at this point in the history
[#121] Remove support for Python 3.8 and add support for Python 3.13
  • Loading branch information
nabla-c0d3 authored Dec 24, 2024
2 parents fe914c0 + 7dd3d80 commit 8ccc613
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 18 deletions.
15 changes: 8 additions & 7 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# macos-13 is an intel runner, macos-14 is apple silicon
os: [ubuntu-22.04, macos-13, macos-14, windows-2022]
# macos-14 is apple silicon
os: [ubuntu-22.04, macos-14, windows-2022]

steps:
- uses: actions/checkout@v4
Expand All @@ -38,12 +38,12 @@ jobs:
python-version: '3.10'

- name: Install cibuildwheel
run: python -m pip install "cibuildwheel>=2.17,<2.18"
run: python -m pip install "cibuildwheel>=2.22,<2.23"

- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: "cp38-* cp39-* cp310-* cp311-* cp312-*"
CIBW_BUILD: "cp39-* cp310-* cp311-* cp312-* cp313-*"
CIBW_SKIP: "*-win32 pp* *-musllinux_i686" # Skip win32, PyPy and muslinux32 builds
# Build wheels for Apple x86_64 only; we use another workflow for Apple arm64
CIBW_ARCHS_MACOS: "native"
Expand All @@ -52,13 +52,14 @@ jobs:
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
# The C libraries (OpenSSL and Zlib) only need to be built once per OS
# as they are not tied to a specific Python version
CIBW_BEFORE_ALL: "python -m pip install invoke && invoke build.deps"
CIBW_BEFORE_ALL: "python -m pip install setuptools invoke && invoke build.deps"
CIBW_BEFORE_ALL_WINDOWS: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && python -m pip install invoke && invoke build.deps'
# However the nassl C extension is by design tied to a specific Python version
CIBW_BEFORE_BUILD: "python -m pip install invoke && invoke build.nassl"
CIBW_BEFORE_BUILD: "python -m pip install setuptools invoke && invoke build.nassl"
CIBW_TEST_REQUIRES: "pytest"
CIBW_TEST_COMMAND: "python -m pytest {project}/tests"

- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}-wheels
path: ./wheelhouse/*.whl
4 changes: 2 additions & 2 deletions .github/workflows/run_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ jobs:

steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: "3.12"
python-version: "3.13"

- name: Install Python dependencies
run: |
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ nassl
[![PyPI wheel](https://img.shields.io/pypi/wheel/nassl.svg)](https://pypi.org/project/nassl/)
[![PyPI version](https://img.shields.io/pypi/pyversions/nassl.svg)](https://pypi.org/project/nassl/)

Experimental OpenSSL wrapper for Python 3.8+ and [SSLyze](https://github.com/nabla-c0d3/sslyze).
Experimental OpenSSL wrapper for Python 3.9+ and [SSLyze](https://github.com/nabla-c0d3/sslyze).

**Do NOT use for anything serious**. This code has not been properly tested/reviewed and is not production ready.

Expand Down
2 changes: 1 addition & 1 deletion build_macos_arm64_wheels.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

# Python 3.9+ arm64 is required
python -m pip install "cibuildwheel>=2.17,<2.18"
python -m pip install "cibuildwheel>=2.22,<2.23"

export CIBW_ARCHS_MACOS="arm64"
export CIBW_BEFORE_ALL='python -m pip install invoke && invoke build.deps'
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
line-length = 120

[tool.mypy]
python_version = "3.8"
python_version = "3.9"
ignore_missing_imports = true
strict_optional = true
disallow_untyped_defs = true
7 changes: 4 additions & 3 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
mypy==1.8
mypy==1.14
invoke>=2,<3
pytest>=7.4,<8
pytest>=8,<9
twine
pytest-cov
ruff==0.2.2
ruff==0.8.4
setuptools
6 changes: 3 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,22 @@
"nassl.ocsp_response",
"nassl.cert_chain_verifier",
],
"description": "Experimental OpenSSL wrapper for Python 3.8+ and SSLyze.",
"description": "Experimental OpenSSL wrapper for Python 3.9+ and SSLyze.",
"author": __author__,
"author_email": "nabla.c0d3@gmail.com",
"url": "https://github.com/nabla-c0d3/nassl",
"python_requires": ">=3.8",
"python_requires": ">=3.9",
"classifiers": [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"Natural Language :: French",
"License :: OSI Approved :: GNU Affero General Public License v3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: System :: Networking",
"Topic :: System :: Monitoring",
"Topic :: System :: Networking :: Monitoring",
Expand Down

0 comments on commit 8ccc613

Please sign in to comment.