Repository navigation
GEN-30: default package overrides - #10
Conversation
1fc86e0 to
04b677c
Compare
04b677c to
ae573d6
Compare
|
|
||
| **Acceptance Scenarios**: | ||
|
|
||
| 1. **Given** the user's `.condarc` configures `create_default_packages` to a list, and no per-invocation packages are named, **When** an ephemeral environment is created, **Then** its Effective Package Set is exactly that list. |
There was a problem hiding this comment.
This differs from my thought process. I was thinking that the effective package list would be a merge of allez defaults plus create_default_packages.
Concretely, this would be my suggestion
Baseline, allez has a default package list of something like this: python, pydantic, openai, numpy
Scenario 1: I often do work with data science and want some packages broadly available.
User adds polars etc to their create_default_packages. This is merged, so the final list is python, pydantic, openai, numpy when the agent runs allez oneshot -- python -c "my_command"
Scenario 2: The user wants to override the version of python for their default environment
The user adds python=3.13 as their create_default_packages
When the agent runs allez oneshot -- python -c "my_command" then the final install list is [python, pydantic, openai, numpy, python=3.13] - note that the user's list is last and has higher precedence (not intersection, we would probably need to pre-filter the list before sending it to rattler)
Scenario 3: The AI wants to use the default environment but add one or two things
The agent (which cannot modify .condarc) runs allez oneshot --default-environment python=3.14 -- python -c "my_command". This would generate the following list [python, pydantic, openai, numpy, python=3.13, python=3.14] Note that the user's create_default_packages takes higher precedence than allez' default, but the agent takes even higher precedence. In this case the final package list would be [pydantic, openai, numpy, python=3.14]
as opposed to allez oneshot python=3.13 -- python -c "my_command". The former command says "start with the default environment, then add my things as-if I were the create_default_packages. The second command says "no default environment, only my packages"
Scenario 4 - The user also wants to use conda
We should investigate this more. I wonder if mixing allez with conda and create_default_packages is going to cause problems. Maybe we also need to have the .condarc set --no-default-packages (whatever the correct .condarc entry for that looks like - if it exists - in order to override this for conda vs allez. This latter part might be - to use claude's favored language - "load bearing". If we can't have allez and conda play well together then we probably shouldn't use the same config variable. And if that is the case maybe we go back to having our own variables in .condarc (or our own .config/allez file).
Sorry for all the back and forth on this and honestly it's not the most important ticket. Whatever you decide to go with after considering all of this I'll sign off on
There was a problem hiding this comment.
This isn't what we talked about on Friday, which was: allez has no config file, it gets its defaults from the user's .condarc via the condarc crate which it consumes, full stop. If the user wants anything as their defaults, then they add it to their .condarc. If their .condarc is broken then allez is the least of their problems because conda is also broken.
What is currently specified is exactly this, and it happens to be the lowest common denominator of all possible implementations, so I will go with that for now. We may revisit it later. This project needs to move forward, we can't keep rewriting specs forever.
Beyond that, I don't see any issue with any of the scenarios you listed above, except where they directly contradict what we talked about on Friday.
There was a problem hiding this comment.
From my point of view this is what we talked about on Friday :) Otherwise the whole conversation about create_default_packages having a higher precedence is moot.
The primary conflict if you keep things the way they are in your current spec is that create_default_packages ends up having vastly different meanings between allez and conda, to the point that a user trying to share both on the machine is going to be in for pain.
create_default_packages is supposed to be extra packages, that you want in addition to your normal stuff when used with conda
As your spec is written create_default_packages is supposed to be all of your packages. So you would need to specify python, and every tool you might think to use (or that allez might include by default for convenience).
That's fine for allez, but if you switch between conda and allez all of a sudden your conda environments are going to get everything. This is a footgun no matter what, but the more packages you add here the bigger the footgun becomes. This is why I mentioned scenario 4 above.
1c206b0 to
1db899e
Compare
|
Implementation is ready |
No description provided.