Skip to content

Commit

Permalink
Added support for and tests on Python 3.13.0-rc.1
Browse files Browse the repository at this point in the history
Details:

* Added Python 3.13 to Trove classifiers in pyproject.toml.

* Added python version 3.13.0-rc.1 to the GitHub actions test workflow, for
  full and normal tests.

* Added Python 3.13 to tox.ini.

* Increased minimum versions of the following packages:
  - Babel to 2.11.0 (fix for error during Sphinx run on Python 3.13)
  - pyrsistent to 0.20.0 (for official support of Python 3.12)
  - wheel to 0.41.3 (fix for install error of wrapt for Python 3.13 on Windows)
  - wrapt to 1.15 (for platform independent wheel archive to avoid build for
    Python 3.13)
  - PyYAML to 6.0.2 (fix install error for Python 3.13 on Windows. That
    version provides wheel archives for Python 3.13 on Windows)

Signed-off-by: Andreas Maier <[email protected]>
  • Loading branch information
andy-maier committed Sep 25, 2024
1 parent 3737a46 commit 107ce96
Show file tree
Hide file tree
Showing 10 changed files with 68 additions and 16 deletions.
32 changes: 31 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
if [[ "${{ github.event_name }}" == "schedule" || "${{ github.head_ref }}" =~ ^release_ ]]; then \
echo "matrix={ \
\"os\": [ \"ubuntu-latest\", \"macos-latest\", \"windows-latest\" ], \
\"python-version\": [ \"3.8\", \"3.9\", \"3.10\", \"3.11\", \"3.12\" ], \
\"python-version\": [ \"3.8\", \"3.9\", \"3.10\", \"3.11\", \"3.12\", \"3.13.0-rc.1\" ], \
\"package_level\": [ \"minimum\", \"latest\" ] \
}" >> $GITHUB_OUTPUT; \
else \
Expand All @@ -49,6 +49,16 @@ jobs:
\"python-version\": \"3.8\", \
\"package_level\": \"latest\" \
}, \
{ \
\"os\": \"ubuntu-latest\", \
\"python-version\": \"3.13.0-rc.1\", \
\"package_level\": \"minimum\" \
}, \
{ \
\"os\": \"ubuntu-latest\", \
\"python-version\": \"3.13.0-rc.1\", \
\"package_level\": \"latest\" \
}, \
{ \
\"os\": \"macos-latest\", \
\"python-version\": \"3.8\", \
Expand All @@ -74,6 +84,16 @@ jobs:
\"python-version\": \"3.12\", \
\"package_level\": \"latest\" \
}, \
{ \
\"os\": \"macos-latest\", \
\"python-version\": \"3.13.0-rc.1\", \
\"package_level\": \"minimum\" \
}, \
{ \
\"os\": \"macos-latest\", \
\"python-version\": \"3.13.0-rc.1\", \
\"package_level\": \"latest\" \
}, \
{ \
\"os\": \"windows-latest\", \
\"python-version\": \"3.8\", \
Expand All @@ -88,6 +108,16 @@ jobs:
\"os\": \"windows-latest\", \
\"python-version\": \"3.12\", \
\"package_level\": \"latest\" \
}, \
{ \
\"os\": \"windows-latest\", \
\"python-version\": \"3.13.0-rc.1\", \
\"package_level\": \"minimum\" \
}, \
{ \
\"os\": \"windows-latest\", \
\"python-version\": \"3.13.0-rc.1\", \
\"package_level\": \"latest\" \
} \
] \
}" >> $GITHUB_OUTPUT; \
Expand Down
2 changes: 1 addition & 1 deletion base-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@
pip>=23.3
setuptools>=70.0.0
setuptools-scm[toml]>=8.1.0
wheel>=0.38.1
wheel>=0.41.3
1 change: 1 addition & 0 deletions changes/612.feature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added support for and tests on Python 3.13.0-rc.1.
2 changes: 2 additions & 0 deletions changes/612.fix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Increased minimum versions of PyYAML to 6.0.2 and pyrsistent to 0.20.0 to fix
install errors with Python 3.13 on Windows.
4 changes: 2 additions & 2 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ sphinxcontrib-serializinghtml>=1.1.5; python_version == '3.8'
sphinxcontrib-serializinghtml>=1.1.9; python_version >= '3.9'
sphinxcontrib-websupport>=1.2.4
autodocsumm>=0.2.12
Babel>=2.9.1
Babel>=2.11.0

# PyLint (no imports, invoked via pylint script)
pylint>=3.0.1
astroid>=3.0.1
lazy-object-proxy>=1.4.3
wrapt>=1.14
wrapt>=1.15
# platformdirs is also used by tox
platformdirs>=4.1.0
# isort 4.3.8 fixes an issue with py310 and works on py310 (Note that isort 5.10.0 has official support for py310)
Expand Down
4 changes: 2 additions & 2 deletions minimum-constraints-develop.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,13 +69,13 @@ sphinxcontrib-serializinghtml==1.1.5; python_version == '3.8'
sphinxcontrib-serializinghtml==1.1.9; python_version >= '3.9'
sphinxcontrib-websupport==1.2.4
autodocsumm==0.2.12
Babel==2.9.1
Babel==2.11.0

# PyLint (no imports, invoked via pylint script):
pylint==3.0.1
astroid==3.0.1
lazy-object-proxy==1.4.3
wrapt==1.14
wrapt==1.15
platformdirs==4.1.0
isort==4.3.8
tomlkit==0.10.1
Expand Down
6 changes: 3 additions & 3 deletions minimum-constraints-install.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pip==23.3
setuptools==70.0.0
# Note on not specifying 'setuptools-scm[toml]': Extras cannot be in constraints files
setuptools-scm==8.1.0
wheel==0.38.1
wheel==0.41.3


# Direct dependencies for install (must be consistent with requirements.txt)
Expand All @@ -28,7 +28,7 @@ click-option-group==0.5.6
prompt-toolkit==3.0.13

# PyYAML is pulled in by zhmccli, zhmcclient, yamlloader
PyYAML==5.3.1
PyYAML==6.0.2

jsonschema==3.1.0
yamlloader==0.5.5
Expand All @@ -39,7 +39,7 @@ urllib3==1.26.19

# Indirect dependencies for install that are needed for some reason (must be consistent with requirements.txt)

pyrsistent==0.15.1
pyrsistent==0.20.0


# All other indirect dependencies for install that are not in requirements.txt
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
requires-python = ">=3.8"
dynamic = ["version", "dependencies", "optional-dependencies"]
Expand Down
13 changes: 6 additions & 7 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,12 @@ click-option-group>=0.5.6

prompt-toolkit>=3.0.13

# PyYAML 5.3.x has wheel archives for Python 2.7, 3.5 - 3.9
# PyYAML 5.4.x has wheel archives for Python 2.7, 3.6 - 3.9
# PyYAML 6.0.0 has wheel archives for Python 3.6 - 3.11
# PyYAML 6.0.1 has wheel archives for Python 3.6 - 3.12
# PyYAML is pulled in by zhmccli, zhmcclient, yamlloader
# PyYAML 6.0 has wheel archives for Python 3.6 - 3.11
# PyYAML versions without wheel archives fail install since Cython 3 was
# released, see https://github.com/yaml/pyyaml/issues/724.
PyYAML>=5.3.1,!=5.4.0,!=5.4.1; python_version <= '3.11'
PyYAML>=5.3.1,!=5.4.0,!=5.4.1,!=6.0.0; python_version >= '3.12'
# PyYAML 6.0.2 provides wheel archives for Python 3.13 on Windows
PyYAML>=6.0.2

jsonschema>=3.1.0
yamlloader>=0.5.5
Expand All @@ -44,4 +42,5 @@ urllib3>=1.26.19
# Indirect dependencies for install that are needed for some reason (must be consistent with minimum-constraints-install.txt)

# pyrsistent is used by jsonschema 3.x (no longer by jsonschema 4.x)
pyrsistent>=0.15.1
# pyrsistent 0.20.0 has official support for Python 3.12
pyrsistent>=0.20.0
19 changes: 19 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ envlist =
py310
py311
py312
py313
win64_py38_32
win64_py38_64
win64_py39_32
Expand All @@ -24,6 +25,8 @@ envlist =
win64_py311_64
win64_py312_32
win64_py312_64
win64_py313_32
win64_py313_64

skip_missing_interpreters = true

Expand Down Expand Up @@ -82,6 +85,10 @@ basepython = python3.11
platform = linux2|darwin
basepython = python3.12

[testenv:py313]
platform = linux2|darwin
basepython = python3.13

# Note: The basepython file paths for the win64* tox environments may need to
# be customized.

Expand Down Expand Up @@ -144,3 +151,15 @@ platform = win32
basepython = python
setenv =
PATH = C:\Python312-x64;{env:PATH}

[testenv:win64_py313_32]
platform = win32
basepython = python
setenv =
PATH = C:\Python313;{env:PATH}

[testenv:win64_py313_64]
platform = win32
basepython = python
setenv =
PATH = C:\Python313-x64;{env:PATH}

0 comments on commit 107ce96

Please sign in to comment.