Open rtaycher opened 8 months ago
Possibly it could be use a separate autosync_run setting if people prefer to have it for add/remove but not run (or vice versa).
It's worth mentioning that rye test
already integrates autosync, but it does regenerate the lock, which is not the desirable behaviour.
it does regenerate the lock, which is not the desirable behaviour
After some research, I found that autosync invokes sync with update_all == false
, which prompts both pip-sync
and uv
to avoid updating the locked dependencies. This does look like a good option for command-specific autosync.
However, for rye run
and run test
, I'd prefer to only invoke the locking backend if the lock file is not present, and otherwise skip to simply installing the dependencies.
A special SyncMode
could be added to accommodate for this.
@mitsuhiko @charliermarsh Let me know if you want me to rebase my PR(s) so we can close this?
These have already been added for
rye add
/rye remove
when using uv as a backend.It's really useful to be able to install all the dependencies when running python via
rye run python
orrye run
ipython/an app/etc. And thanks to uv it will be super fast.Basically I'd like for it to be possible for everyone working on the project to git pull/git checkout $branch and then
rye run python script.py
/rye run uvicorn main:app --reload
/etc and have everything install from the latest/appropriate checked in lock files(probably no need to regenerate the lock file cause you're not modifying them with the run command).I'm also not quite certain how the python shim at $HOME/.rye/shims/python works. It's not the python binary right? I think it calls shims.rs execute_shim/get_shim_target right? If so it would be even nicer to add autosync to the shim so that before running a script "directly"/ as python script.py you'd still get the automatically sync-ed environment.
I maintain the python "environment" for our team at work and this would be really helpful.