-
Notifications
You must be signed in to change notification settings - Fork 9
Update build process with cibuildwheel
#88
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
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅ 📢 Thoughts on this report? Let us know! |
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.
Why is it required we move to minimum Python 3.11? From what I found cibuildwheel
supports Python 3.10: https://cibuildwheel.pypa.io/en/stable/
Right now qBraid-SDK supports Python 3.9, so incorporating PyQASM as a core dependency we're already having to bump SDK to minimum Python 3.10. This is ok because Python 3.9 EOL is October 31, 2025, which isn't too far away, so justifiable. But Python 3.10 EOL isn't until October 31, 2026. So I think we should definitely still provide support for Python 3.10.
Think about not just the qBraid-SDK, but other Python packages in the open-source ecosystem as well. If any of those packages want to use PyQASM as a dependency, they'll also have to bump their minimum Python requirement to match ours. Which could be a deal breaker for many.
dcd13cb
to
fdc73b7
Compare
2b59d49
to
73dd767
Compare
73dd767
to
3dc92bc
Compare
Thanks pointing this out @ryanhill1 . I was wrongly thinking that the The project specific wheels can still be built for any lower version supported by |
652a234
to
dfb4202
Compare
dfb4202
to
00437ca
Compare
@ryanhill1 I think all changes are done, thanks a ton for the review! |
Summary of changes
This PR helps set up a template for any future integrations with
Cython
in our build pipelines. Have added platform and arch specific builds for each supported OS. Wheels are now built withcibuildwheel
tool.Reference for
yaml
structure and scripts : Scikit Learn GitHub repoCI/CD Workflow Updates:
.github/workflows/main.yml
: Added support for multiple OS and Python versions, and introduced a newbuild_sdist
job for source distribution. Added acode-coverage
job to handle test coverage outside of Docker containers..github/workflows/release.yml
: Added abuild_wheels
job similar to the main workflow, along with abuild_sdist
job. Updated thepypi-publish
job to depend on these new jobs and download their artifacts.Test Suite Improvements:
tests/cli/test_cli_commands.py
: Introduced anormalize_output
function to standardize test output by stripping whitespace and replacing multiple spaces with a single space. Updated existing tests to use this function. [1] [2] [3] [4]tests/qasm3/test_entrypoint.py
: Consolidated resource paths by definingQASM_RESOURCES_DIR
and updating file paths accordingly.