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 8130998e62c19036b063df8e5ac9f7b6e62f11dc Author: Jürg Billeter <[email protected]> AuthorDate: Fri Nov 22 14:41:25 2024 +0100 Drop support for Python 3.8 Python 3.8 is no longer maintained upstream and some Python packages have dropped support for it. --- .github/common.env | 4 ++-- .github/compose/ci.docker-compose.yml | 5 ----- .github/workflows/ci.yml | 1 - .github/workflows/release.yml | 1 - doc/source/main_install.rst | 2 +- pyproject.toml | 3 ++- setup.py | 5 ++--- tox.ini | 40 +++++++++++++++++------------------ 8 files changed, 27 insertions(+), 34 deletions(-) diff --git a/.github/common.env b/.github/common.env index b7cb7ec5c..b7e088416 100644 --- a/.github/common.env +++ b/.github/common.env @@ -1,6 +1,6 @@ # Shared common variables CI_IMAGE_VERSION=master-1408971201 -CI_TOXENV_MAIN=py38,py39,py310,py311,py312 -CI_TOXENV_PLUGINS=py38-plugins,py39-plugins,py310-plugins,py311-plugins,py312-plugins +CI_TOXENV_MAIN=py39,py310,py311,py312 +CI_TOXENV_PLUGINS=py39-plugins,py310-plugins,py311-plugins,py312-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 d5b783c35..bba3d3d88 100644 --- a/.github/compose/ci.docker-compose.yml +++ b/.github/compose/ci.docker-compose.yml @@ -90,11 +90,6 @@ services: # on the PyPA official 'manylinux' images that define the base ABI for # Python binary packages. - wheels-manylinux_2_28-cp38: - <<: *tests-template - image: quay.io/pypa/manylinux_2_28_x86_64 - command: .github/wheel-helpers/test-wheel-manylinux.sh cp38 /opt/python/cp38-cp38/bin/python3 - wheels-manylinux_2_28-cp39: <<: *tests-template image: quay.io/pypa/manylinux_2_28_x86_64 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43e6ab876..041584264 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -142,7 +142,6 @@ jobs: # The names here should map to a valid service defined in # "../compose/ci.docker-compose.yml" test-name: - - wheels-manylinux_2_28-cp38 - wheels-manylinux_2_28-cp39 - wheels-manylinux_2_28-cp310 - wheels-manylinux_2_28-cp311 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5b100eb63..712be2834 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -86,7 +86,6 @@ jobs: # The names here should map to a valid service defined in # "../compose/ci.docker-compose.yml" test-name: - - wheels-manylinux_2_28-cp38 - wheels-manylinux_2_28-cp39 - wheels-manylinux_2_28-cp310 - wheels-manylinux_2_28-cp311 diff --git a/doc/source/main_install.rst b/doc/source/main_install.rst index edc0abb0d..6bf635811 100644 --- a/doc/source/main_install.rst +++ b/doc/source/main_install.rst @@ -35,7 +35,7 @@ Runtime requirements BuildStream requires the following Python environment to run: -- python3 >= 3.8 +- python3 >= 3.9 - PyPI packages as specified in `requirements.in <https://github.com/apache/buildstream/blob/master/requirements/requirements.in>`_. diff --git a/pyproject.toml b/pyproject.toml index cf3e3dde3..afc4674f8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,9 +53,10 @@ environment = { BST_BUNDLE_BUILDBOX = "1" } manylinux-x86_64-image = "manylinux_2_28" skip = [ - # BuildStream supports Python >= 3.8 + # BuildStream supports Python >= 3.9 "cp36-*", "cp37-*", + "cp38-*", # PyPy may work, but nobody is testing it so avoid distributing prebuilt binaries. "pp*", # Skipping this niche archicture ~halves overall build time. diff --git a/setup.py b/setup.py index 78b71a546..e86194a1e 100755 --- a/setup.py +++ b/setup.py @@ -44,10 +44,10 @@ if version.startswith("0+untagged"): # Python requirements ################################################################## REQUIRED_PYTHON_MAJOR = 3 -REQUIRED_PYTHON_MINOR = 8 +REQUIRED_PYTHON_MINOR = 9 if sys.version_info[0] != REQUIRED_PYTHON_MAJOR or sys.version_info[1] < REQUIRED_PYTHON_MINOR: - print("BuildStream requires Python >= 3.8") + print("BuildStream requires Python >= 3.9") sys.exit(1) try: @@ -367,7 +367,6 @@ setup( "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", diff --git a/tox.ini b/tox.ini index 4a067feb9..c8544a1c8 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ # Tox global configuration # [tox] -envlist = py{38,39,310,311,312} +envlist = py{39,310,311,312} 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{38,39,310,311,312}-!nocover: True + py{39,310,311,312}-!nocover: True commands = # Running with coverage reporting enabled - py{38,39,310,311,312}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} + py{39,310,311,312}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} # Running with coverage reporting disabled - py{38,39,310,311,312}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} + py{39,310,311,312}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} # Running external plugins tests with coverage reporting enabled - py{38,39,310,311,312}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} + py{39,310,311,312}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} # Running external plugins tests with coverage disabled - py{38,39,310,311,312}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} + py{39,310,311,312}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} commands_post: - py{38,39,310,311,312}-!nocover: mkdir -p .coverage-reports - py{38,39,310,311,312}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} + 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} deps = - py{38,39,310,311,312}: -rrequirements/requirements.txt - py{38,39,310,311,312}: -rrequirements/dev-requirements.txt - py{38,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}: -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}} # Install local sample plugins for testing pip plugin origins - py{38,39,310,311,312}: {toxinidir}/tests/plugins/sample-plugins + py{39,310,311,312}: {toxinidir}/tests/plugins/sample-plugins # Install external plugins for plugin tests - py{38,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}-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{38,39,310,311,312}: COVERAGE_FILE = {envtmpdir}/.coverage - py{38,39,310,311,312}: BST_TEST_HOME = {envtmpdir} - py{38,39,310,311,312}: BST_TEST_XDG_CACHE_HOME = {envtmpdir}/cache - py{38,39,310,311,312}: BST_TEST_XDG_CONFIG_HOME = {envtmpdir}/config - py{38,39,310,311,312}: BST_TEST_XDG_DATA_HOME = {envtmpdir}/share + 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 # 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{38,39,310,311,312}-!nocover: BST_CYTHON_TRACE = 1 + py{39,310,311,312}-!nocover: BST_CYTHON_TRACE = 1 randomized: PYTEST_ADDOPTS="--random-order-bucket=global" allowlist_externals = - py{38,39,310,311,312}: + py{39,310,311,312}: mv mkdir
