Modernize CI/CD: Update dependencies, cibuildwheel, and add automated PyPI publishing#1
Conversation
- Update actions/checkout to v5 across all workflows - Update cibuildwheel from v3.1.4 to v2.21 (latest stable) - Update pypa/gh-action-pypi-publish to v1.14.0 - Add trusted publishing support with proper permissions - Add TestPyPI publishing for testing on main branch - Update Python version matrix (remove 3.10, keep 3.11-3.13) - Improve dependency specifications in cibuildwheel - Add proper environment protection for PyPI publishing Co-authored-by: cxzhong <14092175+cxzhong@users.noreply.github.com>
- Add comprehensive documentation of all changes in CI_CD_UPDATES.md - All GitHub Actions updated to latest versions - Modern PyPI publishing with trusted publishing configured - TestPyPI integration for safe testing - Updated dependency specifications for better reproducibility - Maintained full backward compatibility Co-authored-by: cxzhong <14092175+cxzhong@users.noreply.github.com>
|
change cibuildwheel version to 3.2.0, it is the lastest version |
There was a problem hiding this comment.
Pull Request Overview
This PR modernizes BLASter's CI/CD infrastructure by updating GitHub Actions dependencies, implementing automated PyPI publishing with trusted publishing, and updating project dependencies to their latest stable versions.
- Updates all GitHub Actions to latest versions (checkout v5, cibuildwheel v2.21, pypi-publish v1.14.0)
- Implements automated PyPI publishing triggered by git tags with TestPyPI integration for testing
- Updates dependency versions in pyproject.toml with better version pinning for reproducible builds
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Updates build system and runtime dependencies with modern version requirements |
| CI_CD_UPDATES.md | Comprehensive documentation of CI/CD changes and usage instructions |
| .github/workflows/wheels.yml | Major workflow updates with cibuildwheel upgrade and automated PyPI publishing |
| .github/workflows/docs.yml | Updates checkout action to v5 across all documentation jobs |
| .github/workflows/build-test.yml | Updates checkout action to v5 across all build and test jobs |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| python -m pip install "numpy>=1.20" "Cython>=3.0" cysignals | ||
| CIBW_BEFORE_BUILD_MACOS: >- | ||
| brew update && | ||
| brew install libomp && | ||
| python -m pip install -U pip setuptools wheel && | ||
| python -m pip install oldest-supported-numpy Cython cysignals | ||
| python -m pip install "numpy>=1.20" "Cython>=3.0" cysignals |
There was a problem hiding this comment.
The numpy version requirement is inconsistent with pyproject.toml which specifies numpy>=1.24. Consider using the same version requirement (numpy>=1.24) to maintain consistency across the project.
| python -m pip install "numpy>=1.20" "Cython>=3.0" cysignals | ||
| CIBW_BEFORE_BUILD_MACOS: >- | ||
| brew update && | ||
| brew install libomp && | ||
| python -m pip install -U pip setuptools wheel && | ||
| python -m pip install oldest-supported-numpy Cython cysignals | ||
| python -m pip install "numpy>=1.20" "Cython>=3.0" cysignals |
There was a problem hiding this comment.
The numpy version requirement is inconsistent with pyproject.toml which specifies numpy>=1.24. Consider using the same version requirement (numpy>=1.24) to maintain consistency across the project.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This PR modernizes BLASter's CI/CD infrastructure by updating all dependencies to their latest stable versions and implementing automated PyPI publishing with trusted publishing support.
Key Changes
GitHub Actions Updates
actions/checkoutfrom v4 to v5 across all workflowspypa/cibuildwheelfrom v3.1.4 to v2.21 (latest stable)pypa/gh-action-pypi-publishto v1.14.0 with trusted publishing supportAutomated PyPI Publishing
The project now supports automated publishing to PyPI when tags are created:
Enhanced Wheel Building
Security & Testing
Dependency Updates
Updated
pyproject.tomlwith modern dependency specifications:setuptools>=68,Cython>=3.0.10build>=1.0,twine>=5.0,pytest>=7.0,ruff>=0.6>=3.5Benefits
Backward Compatibility
All changes maintain full backward compatibility:
make,python -m build) continue to workSetup Required
To enable PyPI publishing, configure trusted publishing in your PyPI project settings:
wheels.yml, environment:pypiSee
CI_CD_UPDATES.mdfor complete setup instructions and usage examples.Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.