This is an automated email from the ASF dual-hosted git repository. juergbi pushed a commit to branch juerg/python-3.7 in repository https://gitbox.apache.org/repos/asf/buildstream.git
commit 0bc3220195129511aec17bb1834ea6284b6ad134 Author: Jürg Billeter <[email protected]> AuthorDate: Thu Jul 18 20:39:10 2024 +0200 Drop support for Python 3.7 Python 3.7 is no longer maintained upstream and many 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 ++- requirements/dev-requirements.in | 3 --- setup.py | 7 +++--- tox.ini | 40 +++++++++++++++++------------------ 9 files changed, 29 insertions(+), 37 deletions(-) diff --git a/.github/common.env b/.github/common.env index ceb8adef4..ca15c0bed 100644 --- a/.github/common.env +++ b/.github/common.env @@ -1,6 +1,6 @@ # Shared common variables CI_IMAGE_VERSION=master-1361451963 -CI_TOXENV_MAIN=py37,py38,py39,py310,py311,py312 -CI_TOXENV_PLUGINS=py37-plugins,py38-plugins,py39-plugins,py310-plugins,py311-plugins,py312-plugins +CI_TOXENV_MAIN=py38,py39,py310,py311,py312 +CI_TOXENV_PLUGINS=py38-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 050940fa2..320ffe7dc 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-cp37: - <<: *tests-template - image: quay.io/pypa/manylinux_2_28_x86_64 - command: .github/wheel-helpers/test-wheel-manylinux.sh cp37 /opt/python/cp37-cp37m/bin/python3 - wheels-manylinux_2_28-cp38: <<: *tests-template image: quay.io/pypa/manylinux_2_28_x86_64 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ca77cf42..77918509c 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-cp37 - wheels-manylinux_2_28-cp38 - wheels-manylinux_2_28-cp39 - wheels-manylinux_2_28-cp310 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cc0457296..19146c77d 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-cp37 - wheels-manylinux_2_28-cp38 - wheels-manylinux_2_28-cp39 - wheels-manylinux_2_28-cp310 diff --git a/doc/source/main_install.rst b/doc/source/main_install.rst index e553f28bb..edc0abb0d 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.7 +- python3 >= 3.8 - 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 989fb08d3..cf3e3dde3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -53,8 +53,9 @@ environment = { BST_BUNDLE_BUILDBOX = "1" } manylinux-x86_64-image = "manylinux_2_28" skip = [ - # BuildStream supports Python >= 3.7 + # BuildStream supports Python >= 3.8 "cp36-*", + "cp37-*", # 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/requirements/dev-requirements.in b/requirements/dev-requirements.in index e077709e8..aa86c12fc 100644 --- a/requirements/dev-requirements.in +++ b/requirements/dev-requirements.in @@ -7,6 +7,3 @@ pytest-env pytest-xdist pytest-timeout pyftpdlib -# isort is an indirect requirement, but it must be constrained -# as 5.12 is not available for python 3.7 -isort < 5.12 diff --git a/setup.py b/setup.py index de8b1725e..b1a61887f 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 = 7 +REQUIRED_PYTHON_MINOR = 8 if sys.version_info[0] != REQUIRED_PYTHON_MAJOR or sys.version_info[1] < REQUIRED_PYTHON_MINOR: - print("BuildStream requires Python >= 3.7") + print("BuildStream requires Python >= 3.8") sys.exit(1) try: @@ -368,10 +368,11 @@ setup( "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "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", "Topic :: Software Development :: Build Tools", ], description="A framework for modelling build pipelines in YAML", diff --git a/tox.ini b/tox.ini index cf603926f..e5fd88b0b 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ # Tox global configuration # [tox] -envlist = py{37,38,39,310,311,312} +envlist = py{38,39,310,311,312} skip_missing_interpreters = true isolated_build = true @@ -33,30 +33,30 @@ BST_PLUGINS_VERSION = ed65975aa3b0629a36112d474366ac86d4da8261 [testenv] usedevelop = # This is required by Cython in order to get coverage for cython files. - py{37,38,39,310,311,312}-!nocover: True + py{38,39,310,311,312}-!nocover: True commands = # Running with coverage reporting enabled - py{37,38,39,310,311,312}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} + py{38,39,310,311,312}-!plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} # Running with coverage reporting disabled - py{37,38,39,310,311,312}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} + py{38,39,310,311,312}-!plugins-nocover: pytest --basetemp {envtmpdir} {posargs} # Running external plugins tests with coverage reporting enabled - py{37,38,39,310,311,312}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} + py{38,39,310,311,312}-plugins-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc --plugins {posargs} # Running external plugins tests with coverage disabled - py{37,38,39,310,311,312}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} + py{38,39,310,311,312}-plugins-nocover: pytest --basetemp {envtmpdir} --plugins {posargs} commands_post: - py{37,38,39,310,311,312}-!nocover: mkdir -p .coverage-reports - py{37,38,39,310,311,312}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} + 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} deps = - py{37,38,39,310,311,312}: -rrequirements/requirements.txt - py{37,38,39,310,311,312}: -rrequirements/dev-requirements.txt - py{37,38,39,310,311,312}: git+https://github.com/apache/buildstream-plugins.git@{env:BST_PLUGINS_VERSION:{[config]BST_PLUGINS_VERSION}} + 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}} # Install local sample plugins for testing pip plugin origins - py{37,38,39,310,311,312}: {toxinidir}/tests/plugins/sample-plugins + py{38,39,310,311,312}: {toxinidir}/tests/plugins/sample-plugins # Install external plugins for plugin tests - py{37,38,39,310,311,312}-plugins: git+https://gitlab.com/buildstream/bst-plugins-experimental.git@{env:BST_PLUGINS_EXPERIMENTAL_VERSION:{[config]BST_PLUGINS_EXPERIMENTAL_VERSION}}#egg=bst_plugins_experimental[deb] + py{38,39,310,311,312}-plugins: git+https://gitlab.com/buildstream/bst-plugins-experimental.git@{env:BST_PLUGINS_EXPERIMENTAL_VERSION:{[config]BST_PLUGINS_EXPERIMENTAL_VERSION}}#egg=bst_plugins_experimental[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{37,38,39,310,311,312}: COVERAGE_FILE = {envtmpdir}/.coverage - py{37,38,39,310,311,312}: BST_TEST_HOME = {envtmpdir} - py{37,38,39,310,311,312}: BST_TEST_XDG_CACHE_HOME = {envtmpdir}/cache - py{37,38,39,310,311,312}: BST_TEST_XDG_CONFIG_HOME = {envtmpdir}/config - py{37,38,39,310,311,312}: BST_TEST_XDG_DATA_HOME = {envtmpdir}/share + 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 # 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{37,38,39,310,311,312}-!nocover: BST_CYTHON_TRACE = 1 + py{38,39,310,311,312}-!nocover: BST_CYTHON_TRACE = 1 randomized: PYTEST_ADDOPTS="--random-order-bucket=global" allowlist_externals = - py{37,38,39,310,311,312}: + py{38,39,310,311,312}: mv mkdir
