Preserve extras when building local Linux requirements.#2702
Open
freakboy3742 wants to merge 2 commits intobeeware:mainfrom
Open
Preserve extras when building local Linux requirements.#2702freakboy3742 wants to merge 2 commits intobeeware:mainfrom
freakboy3742 wants to merge 2 commits intobeeware:mainfrom
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
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.
As Linux installs need to work with Docker, any reference to a local package is converted into a wheel, and the install requirement converted into a reference to a local wheel install (relative to the bundle).
However, if a package specified as a local source package references extras (e.g.,
../path/to/code[extra]), this fails, because the[extra]part isn't part of the file name, so the project can't be found.This PR modifies the lookup strategy to split off the extras, and perform wheel/path lookups based on the "base" part of the name. The install requirements are then re-written on the fly, appending the extra definition, and passed to the underlying install tooling.
This also modifies the build to use wheels for local builds, since all Python installs will be PEP517 builds now anyway.
PR Checklist: