From 73c7c85f001c07534475771972a37b2b63904ae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Fri, 28 Aug 2026 12:47:13 +0100 Subject: [PATCH 1/2] ci: Add Fedora 44, remove other Fedora images Fedora 42 is EOL for a while, python 3.14 is already tested with F44 --- .github/common.env | 2 +- .github/compose/ci.docker-compose.yml | 10 +++------- .github/run-ci.sh | 2 +- .github/workflows/ci.yml | 3 +-- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/.github/common.env b/.github/common.env index 9c72ffc..f9730b2 100644 --- a/.github/common.env +++ b/.github/common.env @@ -1,5 +1,5 @@ # Shared common variables -CI_IMAGE_VERSION=master-2310077904 +CI_IMAGE_VERSION=master-2779642792 CI_TOXENV_ALL=py310,py311,py312,py313,py314 CI_TOXENV_MASTER=py310-bst-master,py311-bst-master,py312-bst-master,py313-bst-master,py314-bst-master diff --git a/.github/compose/ci.docker-compose.yml b/.github/compose/ci.docker-compose.yml index d073f18..de79d0b 100644 --- a/.github/compose/ci.docker-compose.yml +++ b/.github/compose/ci.docker-compose.yml @@ -1,7 +1,7 @@ version: '3.4' x-tests-template: &tests-template - image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:42-${CI_IMAGE_VERSION:-latest} + image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:44-${CI_IMAGE_VERSION:-latest} command: tox -vvvvv -- --color=yes --integration environment: TOXENV: ${CI_TOXENV_ALL} @@ -30,13 +30,9 @@ services: <<: *tests-template image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-debian:13-${CI_IMAGE_VERSION:-latest} - fedora-42: + fedora-44: <<: *tests-template - image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:42-${CI_IMAGE_VERSION:-latest} - - fedora-43: - <<: *tests-template - image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:43-${CI_IMAGE_VERSION:-latest} + image: registry.gitlab.com/buildstream/buildstream-docker-images/testsuite-fedora:44-${CI_IMAGE_VERSION:-latest} ubuntu-22.04: <<: *tests-template diff --git a/.github/run-ci.sh b/.github/run-ci.sh index caae267..6b931f1 100755 --- a/.github/run-ci.sh +++ b/.github/run-ci.sh @@ -67,7 +67,7 @@ function runTest() { if [ -z "${test_names}" ]; then - for test_name in "mypy debian-12 debian-13 fedora-42 fedora-43 fedora-missing-deps ubuntu-22.04"; do + for test_name in "mypy debian-12 debian-13 fedora-44 fedora-missing-deps ubuntu-22.04"; do if ! runTest "${test_name}"; then echo "Tests failed" exit 1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7f6b4d7..afb2e22 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,8 +38,7 @@ jobs: test-name: - debian-12 - debian-13 - - fedora-42 - - fedora-43 + - fedora-44 - fedora-missing-deps - ubuntu-22.04 - lint From 7c4c05bb34521a0ecda8c0741ef5b589bd628bd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Jard=C3=B3n?= Date: Fri, 28 Aug 2026 15:52:05 +0100 Subject: [PATCH 2/2] tests: put setuptools on the mock file:// PyPI index pip 25 isolate-builds sdists and resolves setuptools from --index-url. The mock repo only had the packages under test. --- tests/testutils/python_repo.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/testutils/python_repo.py b/tests/testutils/python_repo.py index 7b80acb..a7687db 100644 --- a/tests/testutils/python_repo.py +++ b/tests/testutils/python_repo.py @@ -144,5 +144,33 @@ def add_packages(packages, pypi_repo): ) for dependency, dependency_dependencies in dependencies.items(): add_packages({dependency: dependency_dependencies}, pypi_repo) + _add_setuptools(pypi_repo) return add_packages + + +def _add_setuptools(pypi_repo): + # pip 25 isolate-builds sdists and resolves setuptools from --index-url. + # --no-binary :all: is inherited, so this must be an sdist. + dest = os.path.join(pypi_repo, "setuptools") + if os.path.isdir(dest) and os.listdir(dest): + return + os.makedirs(dest, exist_ok=True) + subprocess.run( + [ + sys.executable, + "-m", + "pip", + "download", + "setuptools>=40.8.0", + "--dest", + dest, + "--no-deps", + "--no-binary", + ":all:", + ], + check=True, + ) + links = "".join(HTML_LINK_TEMPLATE.format(dist=name) for name in sorted(os.listdir(dest)) if name != "index.html") + with open(os.path.join(dest, "index.html"), "w", encoding="utf-8") as handle: + handle.write(HTML_TEMPLATE.format(name="setuptools", links=links))