Provide a Rust-based Node.js version manager with predictable channel resolution, deterministic shell completions, and shim-based execution.
nodeup
crates/nodeup
docs/crates-nodeup-foundation.md
- Stable channel naming and runtime dispatch semantics must be preserved.
- Shim behavior must remain deterministic across supported operating systems.
package.jsonpackageManagersupport foryarn|pnpmmust remain strict and deterministic.- Shell completion generation must remain deterministic for supported shells and top-level command scopes.
- Human output styling controls (
--color,NODEUP_COLOR, andNO_COLORprecedence) must remain stable across CLI and public documentation. - Release automation must publish both standalone prebuilt binaries and archive assets for
linux/amd64,linux/arm64,darwin/amd64,darwin/arm64,windows/amd64, andwindows/arm64, plus Sigstore bundle sidecars (*.sigstore.json) for each artifact andSHA256SUMS. - Direct installers must verify
SHA256SUMSentries and Sigstore bundle sidecars, requirecosign, and only support bundle-enabled releases. - Direct installers must remain available at
scripts/install/nodeup.shandscripts/install/nodeup.ps1. cargo-binstallmetadata must resolve only first-party GitHub Release assets and disable third-party quick-install and compile fallback strategies.- Homebrew installation must use prebuilt
nodeuprelease archives fordarwin/amd64,darwin/arm64,linux/amd64, andlinux/arm64. nodeupruntime installation and shim dispatch must supportmacOS,Linux, andWindowsx64/arm64 hosts while leaving x86 hosts out of scope.
- Update this index and
docs/crates-nodeup-foundation.mdin the same change for behavior or storage contract updates. - Keep
scripts/install/nodeup.sh,scripts/install/nodeup.ps1, andcrates/nodeup/Cargo.tomlsynchronized with release asset names and signing contracts. - Keep release and install contracts synchronized with root and
crates/AGENTS.mdrules.
docs/project-template.mddocs/domain-template.mddocs/README.md