Open jhheider opened 1 month ago
I have thought this was right many times.
I guess the issue is “magic” where you don’t know what will happen because you don’t know what pkgx
will decide particularly.
I would also be interested in "partial" dev environments. We have git
around, python
is managed by virtual environments managed with uv
, and node
might be handled with volta
.
I would be happy to explicitly exclude some integrations to avoid "magic".
Or the way around: Something like dev +pnpm +curl +yy
- the same as env
but using the logic dev
uses to resolve versions.
Or maybe an opt-out with something like dev -python.org -git
.
Currently,
pkgx
uses this loop to bring in dependencies automatically to a dev environment, based on contents. This can cause some surprising behaviors like #1041 .It would probably be better to bring in dependencies only when missing. This could potentially be generalized into a
async function load_implicit_deps(binname: string, dep: PackageRequirement)
. This would add some load time to a dev env, unfortunately, but it means not loading ourgit
in if it is already present on the path.Since dependencies can always be explicit in the YAML file, this should be a less surprising at the cost of checking the path on load, and result in fewer instances where a user needs to forcibly "unload" a
pkgx
package from their environment due to conflicts.