DRAFT: create pixi config #3919
Draft
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.
This represents a maximal, fully-specified pixi config, encompassing all of our current CI environments. Took some inspiration from geovista.
Why?
All of this could lead to some performance and convenience in CI and local development. Similarly, this could shrink the barrier to setting up a local dev environment and contributing, and shrink our (already small) support load there.
Current limitations & tradeoffs
-e <env>or using the CLI interactive selector. If you include these in the default feature then egpixi r pytestwill "just work"..pixisize on disk ballooning quickly. It doesn't install more than you ask for, but if you start to cross out oflatestyou're chomping away at disk space and bandwidth.linux-64, as tested in CI, but pixi can not currently lock cross-platform when the host platform is excluded. Minimum osx-arm64 currently does not resolve, so thanks for the help rosetta (you will be missed.)diff-to-markdowntool that can be used in a workflow to similar effect. Ticket is open for official support.Todos
pyproject.toml > project.dependenciesautomatically in pixi features is possible, but hasn't quite gotten me to where I'd want to be. I'd like to play around with this more and update. Geovista works the other way: export to environment.yml, parse to requirements.txt, list as dynamic project metadata.Play around with it and share thoughts. I'll poke around with CI in the future.