-
Notifications
You must be signed in to change notification settings - Fork 0
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
Compile build dependencies independently #174
Merged
Merged
Conversation
This file contains 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
bruno-fs
force-pushed
the
independent-versions
branch
10 times, most recently
from
August 12, 2024 22:03
84b8aa0
to
5b65c60
Compare
bruno-fs
force-pushed
the
independent-versions
branch
from
August 12, 2024 22:41
a3541d6
to
f24e852
Compare
bruno-fs
changed the title
Independent versions
Compile build dependencies independently
Aug 12, 2024
bruno-fs
force-pushed
the
independent-versions
branch
2 times, most recently
from
August 13, 2024 13:13
84fd44c
to
6baafcb
Compare
Revisiting the code I had to remember year old decisions. Hopefully adding comments might help future contributors.
Also, dial coverage up to 100% again.
- use piptools key_from_ireq as the key for cache and uniqueness internal dicts - move all the code handling the conversion of results from find_build_deps to ireq to a dedicated method
Found a bug with typeguard that's theoritically already solved (agronholm/typeguardi#373). Maybe this is a edge-case. Not sure. Given the current maintainer don't have time to dedicate to the project (agronholm/typeguard#198), let's just remove these checks. We can later add [pytest-beartype][pytest-beartype] as an alternative. [pytest-beartype]: https://github.com/beartype/pytest-beartype
bruno-fs
force-pushed
the
independent-versions
branch
from
August 13, 2024 13:27
6baafcb
to
95ba3db
Compare
infinitewarp
approved these changes
Aug 13, 2024
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.
I don't have a deep understanding of this project, but from what I can tell, this LGTM. Tested it with Cachi2 0.7.0, which previously failed with a build dependencies conflict, and now pybuild-deps is able to properly resolve it 🎉
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.
pybuild-deps used to try to attempt to solve all build dependencies together, which was a design flaw and was causing issues.
Transitive dependencies aren't necessarily consistent. When pip is building packages it will build each in an isolated environment. Transitive dependencies won't be required for the prepared wheel.
With this PR this behavior is completely modified. Now build dependencies will be resolved independently. In order to avoid generating a longer list of dependencies, it will use the supplied requirements as optional constraints.