-
Notifications
You must be signed in to change notification settings - Fork 56
Packaging Pygrackle #320
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
Merged
Merged
Packaging Pygrackle #320
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
92ed798 to
55fb5f8
Compare
mabruzzo
added a commit
to mabruzzo/grackle
that referenced
this pull request
May 19, 2025
Prior to this PR, our test suite would fail unless we had an editable install. In reality, all test-cases outside of test_models infer the location of the data files based on the location of the test-files, which are never part of the wheel.[^1] Therefore, this PR introduces a few small tweaks to support testing all test-cases outside of test_models. Overall, this will be really useful for providing a more rigorous check of the correctness of our precompiled wheels (see PR grackle-project#320). [^1]: I know that some packages do ship their test-suites as part of the wheel, but that currently makes absolutely no sense for us unless we provide users with an easy way to get the datafiles. We can always revisit this choice in the future after we merge PRs grackle-project#235 & grackle-project#237 (or come up with an equivalent)
(We can enable this now that we rebased this branch to include the changes from PR grackle-project#335)
cc67fbf to
710c51f
Compare
c578901 to
bc5092e
Compare
This verifies that all libraries included in the wheel have a license entry and confirm that we didn't include any unnecessary licenses This is invoked as part of building the binary wheels
I changed 2 parts: - HDF5: I added the HDF5 SPDX identifier. - GCC runtime library: I made a change reflecting a recent numpy commit
Collaborator
Author
|
@brittonsmith this is ready for review. |
brittonsmith
approved these changes
Jun 10, 2025
Contributor
brittonsmith
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.
It looks fine to me to the extend I could follow it without seeing it in action. I'm fine to merge it and we can work out any kinks in testing.
mabruzzo
added a commit
to mabruzzo/grackle
that referenced
this pull request
Jun 10, 2025
…#320 and grackle-project#350 introduced conflicting changes
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EDIT: This is ready to go
Note
The large number of changed lines is misleading. Most of the lines are for the licenses that are bundled with the wheels (since the binary wheels uploaded to PyPI need to include some shared libraries)
This PR set up the continuous integration to test creation and uploading of wheels.
Here is the test.pypi page for pygrackle.
You can try installing pygrackle from PyPI by invoking
We are going to need to do a followup PR after this one (I want to test uploading to test.pypi from the main grackle repository before uploading a wheel to pypi).
Checklist:
Future Thoughts
It might be useful to refactor the logic to download and setup HDF5 so that the sdist can use the logic:
In the future, it might be cool to ship wheels using the CPython's Limited API:
Footnotes
This won't be a significant burden and should be easy for everyone to do. But the point still stands that some platforms may not ship this by default. ↩