Conversation
- 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 <networmix@gmail.com>
|
Cursor Agent can help with this pull request. Just |
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 <networmix@gmail.com>
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 <networmix@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 06c989dd3b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - name: Install and test wheel | ||
| run: | | ||
| python3.11 -m pip install --upgrade pip | ||
| python3.11 -m pip install netgraph-core --find-links wheelhouse/ |
There was a problem hiding this comment.
Restrict wheel test to local artifacts
This install command does not disable package indexes, so the CentOS validation step can succeed by installing netgraph-core from PyPI instead of the wheel built earlier in this workflow. pip install --help documents --no-index as required to “ignore package index (only looking at --find-links URLs instead),” so without it this job may miss a broken generated wheel whenever the same version is already available on an index (for example on PR runs or release reruns).
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Pull request overview
This PR adds CentOS Stream 9 support to the CI pipeline by introducing build-from-source testing in the main test workflow and wheel validation in the release workflow. The changes expand platform coverage to ensure compatibility with CentOS Stream 9, a key enterprise Linux distribution.
Changes:
- Added a new test job that builds and tests on CentOS Stream 9 with Python 3.11 and 3.12
- Added a wheel validation job to verify pre-built wheels work on CentOS Stream 9
- Updated the publish job dependency chain to include the new CentOS Stream 9 wheel test
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/tests.yml | Adds test-centos-stream-9 job that builds from source and runs full CI checks on CentOS Stream 9 container with Python 3.11 and 3.12 |
| .github/workflows/release.yml | Adds test_wheels_centos_stream_9 job to validate pre-built manylinux wheels on CentOS Stream 9 and updates publish_pypi to depend on this new test |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - name: Install Python | ||
| run: dnf install -y python3.11 python3.11-pip |
There was a problem hiding this comment.
The test job only installs Python 3.11, but wheels are built for Python 3.11, 3.12, and 3.13 (as specified in line 33). Consider testing with all three Python versions to ensure the wheels work correctly across all supported versions. The corresponding test job in tests.yml already tests Python 3.11 and 3.12.
| container: quay.io/centos/centos:stream9 | ||
| steps: | ||
| - name: Install Python | ||
| run: dnf install -y python3.11 python3.11-pip |
There was a problem hiding this comment.
The libatomic system dependency is missing but may be required at runtime. The build-from-source test job in tests.yml installs libatomic (line 46), and the wheel build configuration also ensures libatomic is available during the Linux build (line 43). Consider adding 'dnf install -y libatomic' to ensure the pre-built wheel can run correctly if it was linked against this library.
| run: dnf install -y python3.11 python3.11-pip | |
| run: dnf install -y python3.11 python3.11-pip libatomic |
Add CentOS Stream 9 build and wheel validation to CI workflows.
This expands testing coverage by adding a build-from-source job in
tests.ymland a wheel validation job inrelease.ymlfor CentOS Stream 9.