Skip to content

Commit 0b9e5b6

Browse files
committed
Build and workflow updates
This commit includes the following updates: * Fix issue with enabling OpenSSL legacy provider on Windows GitHub runners and ee-enable use of OpenSSL binary in Windows unit tests * Remove unnecessary explicit workflow install of OpenSSL 3.x on macOS * Add Python 3.14 and remove Python 3.8 and 3.9 from Python versions being tested * Move minimum Python version to 3.10 (needed by fido2 version 2) * Update README and tox.ini to align with versions in pyproject.toml
1 parent d281290 commit 0b9e5b6

File tree

5 files changed

+15
-32
lines changed

5 files changed

+15
-32
lines changed

.github/workflows/run_tests.yml

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
os: [ubuntu-latest, macos-latest, windows-latest]
17-
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
18-
include:
19-
- os: macos-latest
20-
python-version: "3.10"
21-
openssl-version: "3"
22-
- os: macos-latest
23-
python-version: "3.11"
24-
openssl-version: "3"
25-
- os: macos-latest
26-
python-version: "3.12"
27-
openssl-version: "3"
28-
- os: macos-latest
29-
python-version: "3.13"
30-
openssl-version: "3"
17+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
3118

3219
runs-on: ${{ matrix.os }}
3320
env:
@@ -83,11 +70,7 @@ jobs:
8370
8471
- name: Install macOS dependencies
8572
if: ${{ runner.os == 'macOS' }}
86-
run: brew install nettle liboqs libsodium openssl
87-
88-
- name: Provide OpenSSL 3
89-
if: ${{ runner.os == 'macOS' && matrix.openssl-version == '3' }}
90-
run: echo "/usr/local/opt/openssl@3/bin" >> $GITHUB_PATH
73+
run: brew install nettle liboqs libsodium
9174

9275
- name: Install nettle (Windows)
9376
if: ${{ runner.os == 'Windows' }}

README.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ AsyncSSH: Asynchronous SSH for Python
1111
=====================================
1212

1313
AsyncSSH is a Python package which provides an asynchronous client and
14-
server implementation of the SSHv2 protocol on top of the Python 3.6+
14+
server implementation of the SSHv2 protocol on top of the Python 3.10+
1515
asyncio framework.
1616

1717
.. code:: python
@@ -126,8 +126,8 @@ Prerequisites
126126

127127
To use AsyncSSH 2.0 or later, you need the following:
128128

129-
* Python 3.6 or later
130-
* cryptography (PyCA) 3.1 or later
129+
* Python 3.10 or later
130+
* cryptography (PyCA) 39.0 or later
131131

132132
Installation
133133
------------

pyproject.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,17 @@ classifiers = [
1515
'License :: OSI Approved',
1616
'Operating System :: MacOS :: MacOS X',
1717
'Operating System :: POSIX',
18-
'Programming Language :: Python :: 3.8',
19-
'Programming Language :: Python :: 3.9',
2018
'Programming Language :: Python :: 3.10',
2119
'Programming Language :: Python :: 3.11',
2220
'Programming Language :: Python :: 3.12',
2321
'Programming Language :: Python :: 3.13',
22+
'Programming Language :: Python :: 3.14',
2423
'Topic :: Internet',
2524
'Topic :: Security :: Cryptography',
2625
'Topic :: Software Development :: Libraries :: Python Modules',
2726
'Topic :: System :: Networking',
2827
]
29-
requires-python = '>= 3.6'
28+
requires-python = '>= 3.10'
3029
dependencies = [
3130
'cryptography >= 39.0',
3231
'typing_extensions >= 4.0.0',

tests/test_public_key.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@
7171
except subprocess.CalledProcessError: # pragma: no cover
7272
_openssl_version = b''
7373

74-
# Disable reliance on OpenSSL on Windows for now due to GitHub runner issues
75-
_openssl_available = _openssl_version != b'' and sys.platform != 'win32'
74+
_openssl_available = _openssl_version != b''
7675

7776
if _openssl_available: # pragma: no branch
7877
_openssl_curves = run('openssl ecparam -list_curves')

tox.ini

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
[tox]
2-
minversion = 3.8
2+
minversion = 3.10
33
skip_missing_interpreters = True
44
envlist =
55
clean
66
report
7-
py3{8,9,10,11,12,13}-{linux,darwin,windows}
7+
py3{10,11,12,13,14}-{linux,darwin,windows}
88

99
[testenv]
1010
deps =
1111
aiofiles>=0.6.0
1212
bcrypt>=3.1.3
13-
fido2>=0.9.2
13+
fido2>=2
1414
libnacl>=1.4.2
15-
pyOpenSSL>=17.0.0
15+
pyOpenSSL>=23.0.0
1616
pytest>=7.0.1
1717
pytest-cov>=3.0.0
1818
setuptools>=18.5
@@ -25,6 +25,8 @@ platform =
2525
darwin: darwin
2626
windows: win32
2727
usedevelop = True
28+
passenv =
29+
OPENSSL_MODULES
2830
setenv =
2931
PIP_USE_PEP517 = 1
3032
COVERAGE_FILE = .coverage.{envname}
@@ -53,7 +55,7 @@ commands =
5355
coverage html
5456
coverage xml
5557
depends =
56-
py3{8,9,10,11,12,13}-{linux,darwin,windows}
58+
py3{10,11,12,13,14}-{linux,darwin,windows}
5759

5860
[pytest]
5961
testpaths = tests

0 commit comments

Comments
 (0)