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
 

Reply via email to