This is an automated email from the ASF dual-hosted git repository. juergbi pushed a commit to branch juerg/python-3.13 in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 68b56b2c41c41667a3764d5674922a37a2e4c7ce Author: Jürg Billeter <[email protected]> AuthorDate: Fri Nov 22 14:17:58 2024 +0100 Add support for Python 3.13 --- .github/common.env | 4 ++-- .github/compose/ci.docker-compose.yml | 5 +++++ .github/workflows/ci.yml | 1 + .github/workflows/release.yml | 1 + setup.py | 1 + tox.ini | 40 +++++++++++++++++------------------ 6 files changed, 30 insertions(+), 22 deletions(-) diff --git a/.github/common.env b/.github/common.env index b7e088416..c7f3f9f2b 100644 --- a/.github/common.env +++ b/.github/common.env @@ -1,6 +1,6 @@ # Shared common variables CI_IMAGE_VERSION=master-1408971201 -CI_TOXENV_MAIN=py39,py310,py311,py312 -CI_TOXENV_PLUGINS=py39-plugins,py310-plugins,py311-plugins,py312-plugins +CI_TOXENV_MAIN=py39,py310,py311,py312,py313 +CI_TOXENV_PLUGINS=py39-plugins,py310-plugins,py311-plugins,py312-plugins,py313-plugins CI_TOXENV_ALL="${CI_TOXENV_MAIN},${CI_TOXENV_PLUGINS}" diff --git a/.github/compose/ci.docker-compose.yml b/.github/compose/ci.docker-compose.yml index bba3d3d88..3f3d36913 100644 --- a/.github/compose/ci.docker-compose.yml +++ b/.github/compose/ci.docker-compose.yml @@ -109,3 +109,8 @@ services: <<: *tests-template image: quay.io/pypa/manylinux_2_28_x86_64 command: .github/wheel-helpers/test-wheel-manylinux.sh cp312 /opt/python/cp312-cp312/bin/python3 + + wheels-manylinux_2_28-cp313: + <<: *tests-template + image: quay.io/pypa/manylinux_2_28_x86_64 + command: .github/wheel-helpers/test-wheel-manylinux.sh cp313 /opt/python/cp313-cp313/bin/python3 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 041584264..1afc46548 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -146,6 +146,7 @@ jobs: - wheels-manylinux_2_28-cp310 - wheels-manylinux_2_28-cp311 - wheels-manylinux_2_28-cp312 + - wheels-manylinux_2_28-cp313 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 712be2834..303e0251a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -90,6 +90,7 @@ jobs: - wheels-manylinux_2_28-cp310 - wheels-manylinux_2_28-cp311 - wheels-manylinux_2_28-cp312 + - wheels-manylinux_2_28-cp313 steps: - uses: actions/checkout@v3 diff --git a/setup.py b/setup.py index e86194a1e..17707454c 100755 --- a/setup.py +++ b/setup.py @@ -371,6 +371,7 @@ setup( "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Topic :: Software Development :: Build Tools", ], description="A framework for modelling build pipelines in YAML", diff --git a/tox.ini b/tox.ini index c8544a1c8..c996db41b 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ # Tox global configuration # [tox] -envlist = py{39,310,311,312} +envlist = py{39,310,311,312,313} skip_missing_interpreters = true isolated_build = true @@ -33,30 +33,30 @@ BST_PLUGINS_VERSION = db71610b7ae9884f6d8cbe0d3cc5a1c657c19edb # 2.2.0 [testenv] usedevelop = # This is required by Cython in order to get coverage for cython files. - py{39,310,311,312}-!nocover: True + py{39,310,311,312,313}-!nocover: True commands = # Running with coverage reporting enabled - py{39,310,311,312}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} + py{39,310,311,312,313}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} # Running with coverage reporting disabled - py{39,310,311,312}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} + py{39,310,311,312,313}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} # Running external plugins tests with coverage reporting enabled - py{39,310,311,312}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} + py{39,310,311,312,313}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} # Running external plugins tests with coverage disabled - py{39,310,311,312}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} + py{39,310,311,312,313}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} commands_post: - py{39,310,311,312}-!nocover: mkdir -p .coverage-reports - py{39,310,311,312}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} + py{39,310,311,312,313}-!nocover: mkdir -p .coverage-reports + py{39,310,311,312,313}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} deps = - py{39,310,311,312}: -rrequirements/requirements.txt - py{39,310,311,312}: -rrequirements/dev-requirements.txt - py{39,310,311,312}: git+https://github.com/apache/buildstream-plugins.git@{env:BST_PLUGINS_VERSION:{[config]BST_PLUGINS_VERSION}} + py{39,310,311,312,313}: -rrequirements/requirements.txt + py{39,310,311,312,313}: -rrequirements/dev-requirements.txt + py{39,310,311,312,313}: git+https://github.com/apache/buildstream-plugins.git@{env:BST_PLUGINS_VERSION:{[config]BST_PLUGINS_VERSION}} # Install local sample plugins for testing pip plugin origins - py{39,310,311,312}: {toxinidir}/tests/plugins/sample-plugins + py{39,310,311,312,313}: {toxinidir}/tests/plugins/sample-plugins # Install external plugins for plugin tests - py{39,310,311,312}-plugins: git+https://gitlab.com/buildstream/buildstream-plugins-community.git@{env:BST_PLUGINS_COMMUNITY_VERSION:{[config]BST_PLUGINS_COMMUNITY_VERSION}}#egg=bst_plugins_community[deb] + py{39,310,311,312,313}-plugins: git+https://gitlab.com/buildstream/buildstream-plugins-community.git@{env:BST_PLUGINS_COMMUNITY_VERSION:{[config]BST_PLUGINS_COMMUNITY_VERSION}}#egg=bst_plugins_community[deb] # Only require coverage and pytest-cov when using it !nocover: -rrequirements/cov-requirements.txt @@ -84,21 +84,21 @@ passenv = # These keys are not inherited by any other sections # setenv = - py{39,310,311,312}: COVERAGE_FILE = {envtmpdir}/.coverage - py{39,310,311,312}: BST_TEST_HOME = {envtmpdir} - py{39,310,311,312}: BST_TEST_XDG_CACHE_HOME = {envtmpdir}/cache - py{39,310,311,312}: BST_TEST_XDG_CONFIG_HOME = {envtmpdir}/config - py{39,310,311,312}: BST_TEST_XDG_DATA_HOME = {envtmpdir}/share + py{39,310,311,312,313}: COVERAGE_FILE = {envtmpdir}/.coverage + py{39,310,311,312,313}: BST_TEST_HOME = {envtmpdir} + py{39,310,311,312,313}: BST_TEST_XDG_CACHE_HOME = {envtmpdir}/cache + py{39,310,311,312,313}: BST_TEST_XDG_CONFIG_HOME = {envtmpdir}/config + py{39,310,311,312,313}: BST_TEST_XDG_DATA_HOME = {envtmpdir}/share # This is required to run tests with python 3.7 py37: SETUPTOOLS_ENABLE_FEATURES = "legacy-editable" # This is required to get coverage for Cython - py{39,310,311,312}-!nocover: BST_CYTHON_TRACE = 1 + py{39,310,311,312,313}-!nocover: BST_CYTHON_TRACE = 1 randomized: PYTEST_ADDOPTS="--random-order-bucket=global" allowlist_externals = - py{39,310,311,312}: + py{39,310,311,312,313}: mv mkdir
