Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

devenv maintenance

The same commands accept --skill devenv-project; omitting --skill retains all existing Nix behavior:

python3 scripts/check.py --skill devenv-project
python3 scripts/update.py --skill devenv-project --check
python3 scripts/update.py --skill devenv-project --release v2.3.1
python3 scripts/update.py --skill devenv-project --latest

Devenv updates use stable GitHub Releases, not unreleased main. The updater converts selected Markdown/MDX sections, preserving tab labels, version notices, warning meaning, and fenced executable text. Unsupported forms or renamed paths fail for review. It reads the committed options JSON at the same revision and records generator/template provenance; it does not rebuild the full website or option catalogue. Declaration links into devenv are checked and pinned; foreign links retain their distinct origin. Public devenv.sh links are checked but follow the moving site, while exact source citations and hashes remain revision-pinned.

--check obtains the matching CLI from the pinned upstream flake and evaluates matching modules in a disposable project using the reviewed auxiliary pins in tests/devenv/devenv.lock. It compares representative defaults against upstream option data and runs harmless shell/script/task/enterTest assertions. Language and service enablement is evaluated without starting services. The test does not run devenv allow or modify user trust. A candidate update changes only the module pin in its temporary fixture; unrelated input changes fail for review. Local builds can use configured substitutes; CI explicitly uses upstream’s published devenv/Cachix cache keys. There is no fallback to the host CLI.