reboot_env¶
Upgrading venv: full vs partial¶
A user should be able to specify reboot arg to bootstrap everything from scratch.
To re-create the venv, re-install the deps, and re-pin the versions, run:
./prime reboot
See the difference between full vs partial upgrade:
Full (auto): upgrade all dependency versions (respecting version ranges specified in
pyproject.toml).The
rebootsub command automates the removal of the oldconstraints.txtfile (to repopulate it).A missing
constraints.txtallows re-capturing a new outcome of the dependency resolution for all dependencies.NOTE: This approach also destroys the old
venv(any manual changes to thevenvwill be lost).Partial (manual): upgrade a version only for one specific dependency.
Remove only the line for that dependency from the
constraints.txtfile.Re-run the normal bootstrap:
./prime
NOTE: This approach re-uses the old
venv(and retains any manual changes).
Implementation¶
Remove local_env_link to re-select the env.
TODO: TODO_41_10_50_01.implement_env_selector.md: implement automatic env selection.
Re-select
python.TODO: TODO_41_10_50_01.implement_env_selector.md: create FT (feature_topic) for
pythonselector and reference it here.Remove
venv(including the extra one used byuv).Remove
constraints.txtto re-compute dependency versions (only via spec inpyproject.toml).
This feature also addresses upgrade_venv.
See also requirements_lock.