From b5394bc3deefd3d2edb0d9504becd2d1f7e1aed1 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 16 Feb 2026 23:53:42 +0000 Subject: [PATCH 1/3] Add CentOS Stream 9 build and test support - tests.yml: Add test-centos-stream-9 job that builds from source and runs the full CI check suite (lint + C++/Python tests) in a CentOS Stream 9 container with Python 3.11 and 3.12 - release.yml: Add test_wheels_centos_stream_9 job that downloads the manylinux wheels and verifies they install and import correctly on CentOS Stream 9; publish_pypi now depends on this validation passing Co-authored-by: Andrey G --- .github/workflows/release.yml | 23 ++++++++++++++++++++++- .github/workflows/tests.yml | 28 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a17f5c5..109327c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,9 +61,30 @@ jobs: name: cibw-sdist path: dist/*.tar.gz + test_wheels_centos_stream_9: + name: Test wheels (CentOS Stream 9) + needs: [build_wheels] + runs-on: ubuntu-latest + container: quay.io/centos/centos:stream9 + steps: + - name: Install Python + run: dnf install -y python3.11 python3.11-pip + + - uses: actions/download-artifact@v4 + with: + pattern: cibw-wheels-ubuntu-* + path: wheelhouse + merge-multiple: true + + - name: Install and test wheel + run: | + python3.11 -m pip install --upgrade pip + python3.11 -m pip install netgraph-core --no-index --find-links wheelhouse/ + python3.11 -c "import netgraph_core; print('CentOS Stream 9:', netgraph_core.__version__)" + publish_pypi: name: Publish to PyPI - needs: [build_wheels, build_sdist] + needs: [build_wheels, build_sdist, test_wheels_centos_stream_9] runs-on: ubuntu-latest environment: pypi permissions: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fa09e97..27bd795 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,6 +27,34 @@ jobs: - name: Run CI checks (lint + C++/Python tests) run: make check-ci + test-centos-stream-9: + name: CentOS Stream 9 (py${{ matrix.python-version }}) + runs-on: ubuntu-latest + container: quay.io/centos/centos:stream9 + strategy: + fail-fast: false + matrix: + python-version: ["3.11", "3.12"] + steps: + - name: Install system dependencies + run: | + dnf install -y \ + gcc gcc-c++ make cmake ninja-build git \ + python${{ matrix.python-version }} \ + python${{ matrix.python-version }}-devel \ + python${{ matrix.python-version }}-pip \ + libatomic + + - uses: actions/checkout@v4 + + - name: Install Python deps + run: | + python${{ matrix.python-version }} -m pip install -U pip wheel + python${{ matrix.python-version }} -m pip install -e .[dev] + + - name: Run CI checks + run: PYTHON=python${{ matrix.python-version }} make check-ci + coverage: name: Coverage (ubuntu, py3.11) runs-on: ubuntu-22.04 From 698bbc4f901f2ec4d165de7d1f8912530a6c1b80 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 16 Feb 2026 23:58:17 +0000 Subject: [PATCH 2/3] Fix CentOS Stream 9 CI: remove ninja-build (not in default repos) ninja-build is not available in the CentOS Stream 9 BaseOS/AppStream repositories. It is only available via CRB or EPEL. Since cmake falls back to Unix Makefiles when ninja is not found, removing it is the simplest fix. Co-authored-by: Andrey G --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 27bd795..dd1f625 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -39,7 +39,7 @@ jobs: - name: Install system dependencies run: | dnf install -y \ - gcc gcc-c++ make cmake ninja-build git \ + gcc gcc-c++ make cmake git \ python${{ matrix.python-version }} \ python${{ matrix.python-version }}-devel \ python${{ matrix.python-version }}-pip \ From 06c989dd3b7dd59dc41abc650410f86bfd92bf42 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 17 Feb 2026 00:11:28 +0000 Subject: [PATCH 3/3] Fix CentOS Stream 9 wheel test: allow PyPI access for numpy dependency The --no-index flag prevented pip from fetching the numpy dependency from PyPI. Using --find-links alone lets pip find netgraph-core from the local wheelhouse while resolving numpy from PyPI. Co-authored-by: Andrey G --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 109327c..b00519d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -79,7 +79,7 @@ jobs: - name: Install and test wheel run: | python3.11 -m pip install --upgrade pip - python3.11 -m pip install netgraph-core --no-index --find-links wheelhouse/ + python3.11 -m pip install netgraph-core --find-links wheelhouse/ python3.11 -c "import netgraph_core; print('CentOS Stream 9:', netgraph_core.__version__)" publish_pypi: