ADR Suggestion Use Pixi for Project and Environment Management
#43
Replies: 2 comments 1 reply
-
|
Versioning policy. Should pixi.lock be committed? We should point out that it should. What about .pixi/? We should point out that this dir should NOT be commited. Migration plan - What happens to existing projects and workflows? We should mention that the new templating system (link to its ADR) will help sorting things out for EasyScience project. However, it would be wise to add a deadline - let's assume July 1, 2026 as the cutoff date for switching to pixi for all the projects. (date provided to foster discussion more than impose) Rollback criteria. Under what circumstances would you abandon Pixi and revert? Maybe it would be useful to document rollback mechanisms to something else if/when Prefix-dev starts charging money or goes bust. Scope clarity. Is this mandatory for all EasyScience repos? Or just the production ones? |
Beta Was this translation helpful? Give feedback.
-
|
At first I was going to write walls of complaints about pixi.lock, but it works well in my repo with the last update. So, instead, my full-fledged support. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Across EasyScience projects, we rely on a mix of tools and conventions to manage Python versions, environments, dependencies, and project-specific commands. While this approach works, it often introduces unnecessary complexity - especially for onboarding new contributors.
A typical “traditional” setup usually involves the following steps:
While there are tools that address individual parts of this workflow, Pixi appears to be the only tool that covers all of these aspects in a single solution.
Suggestion
Use Pixi as the recommended tool for environment management, dependency management, and task execution across EasyScience projects.
This does not replace
pyproject.tomlas the source of truth for Python package metadata. Rather, Pixi complements it by providing a unified, reproducible development environment.Main Benefits
One tool handles Python versions, environments, dependencies, and tasks, reducing setup friction.
Python versions are explicitly declared per project, ensuring consistent behavior.
Each project gets its own isolated environment with no risk of conflicts.
Pixi installs packages from both ecosystems cleanly, avoiding fragile pip + conda mixing.
Fast dependency resolution and environment creation compared to traditional workflows.
Common tasks (tests, docs, formatting, CI commands) can be declared once and run consistently via
pixi run.Example Workflow
Installing Pixi
https://pixi.prefix.dev/latest/installation
Setting up a new project
Updating dependencies and Pixi
Uninstalling Pixi
Integration with Existing Projects
pyproject.tomlto allow:This keeps Pixi as an environment and workflow tool, not a replacement for Python packaging standards.
Beta Was this translation helpful? Give feedback.
All reactions