pixi icon indicating copy to clipboard operation
pixi copied to clipboard

start work on next gen global envs

Open wolfv opened this issue 1 year ago • 1 comments

The ideas are as follows:

  • we create a new "manifest" file that contains all the state for all the global environments
  • we add some new commands like pixi global sync
  • users can add multiple packages to global environemnts (aka inject)
  • users can selectively expose binaries
  • we map all the binaries in the file (the manifest file should be edited mostly from CLI)

Current WIP manifest file (in YAML, because we didn't yet figure out how to make it look nice in TOML):

envs:
  python:
    dependencies:
      python:
        spec: "3.11.*"
        expose_binaries:
          python: python
          python3: python3
          python3.8: python3.8
      pip:

wolfv avatar Jul 23 '24 09:07 wolfv

Would you need to expose binaries per dependency? Other wise I could imagine the following toml format:

[environments.ENVNAME]
dependencies = { python = "3.8.1", pip = "1.2.3" }
expose = { python = "python", python3 = python3, "python3.8" = "python3.8", pip = "pip", pip3 = "pip3"}

equal to:

[environments.ENVNAME.dependencies]
python = "3.8.1"
pip = "1.2.3" 
[environments.ENVNAME.expose]
python = "python"
python3 = python3
"python3.8" = "python3.8"
pip = "pip"
pip3 = "pip3"

I would agree the yaml looks more natural but this mix of config files feel kinda strange to me.

ruben-arts avatar Jul 23 '24 13:07 ruben-arts

Closing as this was a prototype for the coming implementation follow milestone: https://github.com/prefix-dev/pixi/milestone/9

ruben-arts avatar Aug 20 '24 05:08 ruben-arts