allow output of conda recipes with pinned run_constraints - #823
Draft
msarahan wants to merge 3 commits into
Draft
Conversation
✅ Deploy Preview for conda-lock ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
|
Wow, that's quite an elaborate scheme! 😂 Good luck with the implementation, and let me know when you'd like me to take a look. Thanks! |
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.
Description
The motivation here is that we have wanted a way to pin the build environment such that our developers can consciously choose when to fight the fight we all love of adjusting to breaking changes in our dependencies. Pip has PIP_CONSTRAINT, but conda-build and rattler-build don't have equivalents.
The (rough) idea is to use conda-lock to generate the build environment (for us, this will be a superset of all of our projects), and then save that environment as a recipe with everything in the run_constraints dependencies. This metapackage will then be included in the host dependencies for each project, which should have the effect of constraining host dependencies, which will then cascade via run_exports as appropriate.
This also includes a way to filter out some packages from the dependencies, because we only want to pin our dependencies, not our projects. Our projects need to float, as they are changing version with each commit.
It's a little indirect, but I think it might work. I'm attaching a couple of files to show what the anticipated input and output of this code would be. This is a draft, and aside from currently not actually saving recipe files, I'm sure it's rough in other ways. I would not review this too closely (yet?)
input-env.yml.txt
Generated recipe (to be used to build metapackage, which then needs to be uploaded to appropriate channel)