-
Notifications
You must be signed in to change notification settings - Fork 22
proto: try to build a pixi backend #406
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
base: main
Are you sure you want to change the base?
Conversation
Overall, I really like this — I'm biased ofc :) |
|
Overall I think this just needs to be a built-in feature in Pixi — being able to depend on other Pixi packages. |
I agree, I'm right now not planning to continue this backend. This was just for testing purpose, as all the logic was already prepared to make it work. |
|
Any plans to implement this feature directly in Pixi anytime soon? Because I'm about to do some pretty ugly stuff to work around this (more on that below) 😅, so if there was something built in — it would be so much easier. This has become a big deal-breaker for us to switch our setup from Nix to Pixi, as all the existing build backends don't have good caching and are too aggressive with rebuilds. We have quite a few tools that we don't want to build proper Conda packages for, so we really want to be able to deterministically build/download them via Pixi. If you're interested, my idea to work around the limitation is the following: First, I'd have an activation script in the main workspace, that would execute pixi tasks to build or download the necessary tools, using Because activation scripts are executed before pixi tasks, and before the environment is configured, we need to avoid the infinite recursion, so the script would set an environment variable, such that when it's called recursively it would simply exit. This way the script should be able to call pixi tasks, with all the tools available, and also guaranteed to execute without the developers needing to do an extra "install/configure" call. Of course this is all very ugly and hard to reason about, but it seems to do the job. |
|
@burdiyan I can't promise that we will do that soon. We are prototyping this proposal next week: prefix-dev/pixi#4721 Please leave your idea there, and the whole idea of |
Based on the idea #404.
The magic is that we do almost nothing in the backend. We just run a Pixi task in the build script, and use all dependencies directly from the
pixi.tomlI don't really see the need for this to be a backend, this was just the easiest way for me to set it up.
Draft because I build this in 1 hour to try something, don't merge!
My test
pixi.toml:Things I like about this:
pixi.toml.pixi-build-rattler-buildto do "crazy" setups as long as the commands can be run as apixi task