Release Notes
This release adds support for generating lockfiles from Jupyter notebooks using inline metadata, as defined in PEP 723. It is based on uv's recent support for locking standalone scripts, except instead of writing a separate lockfile, juv
embeds (and updates) a lockfile in the Jupyter notebook metadata.
By default, notebooks remain unlocked. To lock a notebook, run juv lock /path/to/notebook.ipynb
, which generates and embeds a lockfile in the notebook's metadata under the "uv.lock"
key. The lockfile is respected and updated automatically when using juv run
, uv add
, or uv remove
.
Additional commands:
juv export
: Outputs an alternative lockfile format (requirements.txt
style) to stdout.uv tree
: Displays the dependency tree for a script.
Both commands work with notebooks, whether locked or unlocked.
This release is considered breaking due to the lockfile support, which requires a minimum uv
0.5.18 and modifies execution.
Breaking changes
Enhancements
- Add
--clear
flag tolock
to clear lockfile metadata (#69) - Add
export
command (#70) - Add
lock
command (#64) - Add
tree
command (#68) - Sync lockfile during
add
command (#65) - Sync lockfile during
remove
command (#66)
Bug fixes
- Require at least one package for
add
andremove
(#73) - Support relative paths in the
run
command (#72)