-
Notifications
You must be signed in to change notification settings - Fork 82
feat(python): build python wheel and public #813
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(python): build python wheel and public #813
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #813 +/- ##
============================================
+ Coverage 77.10% 77.19% +0.08%
Complexity 607 607
============================================
Files 84 85 +1
Lines 8912 8854 -58
Branches 1045 1043 -2
============================================
- Hits 6872 6835 -37
+ Misses 1800 1779 -21
Partials 240 240
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements automated Python wheel building and publishing infrastructure for GraphAr, enabling users to install the package via pip install graphar. The implementation targets macOS (arm64) and Linux (x86_64, aarch64) platforms with conditional publishing to TestPyPI (automatic on main branch commits) and PyPI (manual workflow dispatch).
Key changes:
- Added GitHub Actions workflow for building wheels using cibuildwheel across multiple platforms
- Implemented automatic version management for TestPyPI releases while preserving manual control for PyPI releases
- Enhanced CMake build system to support bundled C++ sources for isolated Python wheel builds, with macOS-specific rpath handling for dependency resolution
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/python-wheel-workflow.yml | Workflow orchestrating sdist/wheel builds for multiple platforms with conditional PyPI/TestPyPI publishing |
| .github/scripts/update_version.py | Script to automatically increment version numbers based on latest published releases |
| python/pyproject.toml | Updated package metadata, dependencies, and sdist configuration to support wheel distribution |
| python/CMakeLists.txt | Added support for bundled C++ sources and enhanced macOS rpath configuration for wheel builds |
| cpp/CMakeLists.txt | Added MSVC compatibility for future Windows support and improved cross-platform build handling |
| python/README.md | Added PyPI installation instructions |
| python/src/cli/README.md | Added PyPI installation instructions for CLI tool |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
yangxk1
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Solved copilot comment
lixueclaire
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Reason for this PR
#804
What changes are included in this PR?
This PR provides an initial solution for automatically building Python wheels and publishing them to PyPI. The current build targets macOS and Linux.
Trigger conditions:
main, the workflow uploads to TestPyPI only (it does not upload to PyPI).Versioning:
.github/scripts/update_version.py.python/pyproject.toml.Possible improvements:
Are these changes tested?
yes
Are there any user-facing changes?
Yes, we can use
pip install grapharfrom now on.