Skip to content

Conversation

@joshrotenberg
Copy link
Collaborator

Summary

Improve the Python package CI/CD pipeline for more robust releases and testing.

Changes

1. Enable abi3-py39 (pyproject.toml)

  • Builds a single wheel per platform that works with Python 3.9+
  • Reduces the number of wheels to build and publish
  • Ensures compatibility across all supported Python versions

2. Release Tag Filtering (python-publish.yml)

  • Added check-release job that filters releases
  • Only triggers publish on tags containing python (e.g., v0.1.0-python, python-v0.1.0)
  • Manual workflow_dispatch always runs
  • Prevents accidental publish on CLI-only releases

3. Python Version Test Matrix (python.yml)

  • Tests now run against Python 3.9, 3.10, 3.11, 3.12, and 3.13
  • Uses fail-fast: false to see all version failures
  • Validates abi3 wheel works across all versions

4. Concurrency Control

  • Added concurrency group to prevent duplicate publish runs

Testing

  • CI will validate the workflow syntax
  • Python tests will run with the new version matrix

- Enable abi3-py39 feature for broader Python version compatibility
  (single wheel works for Python 3.9+)
- Add release tag filtering to python-publish workflow
  (only triggers on tags containing 'python', e.g., v0.1.0-python)
- Add Python version test matrix (3.9, 3.10, 3.11, 3.12, 3.13)
- Add concurrency control to prevent duplicate runs
@joshrotenberg joshrotenberg merged commit 3b2d553 into main Jan 23, 2026
26 checks passed
@joshrotenberg joshrotenberg deleted the ci/python-publish-improvements branch January 23, 2026 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants