Get ready for the first release
Requirements
Verso requires Node.js 22.18 or newer and supports these platforms:
| Operating system | CPU |
|---|---|
| macOS | arm64 or x64 |
| Linux (GNU) | arm64 or x64 |
| Windows | x64 |
The target repository also needs Git, at least one supported package manifest, and a named branch with an upstream. A real release is rejected when the local branch is behind that upstream.
Install Verso
Add Verso at the project root with your preferred package manager:
pnpm add -D @amamo/versonpm install -D @amamo/versoyarn add -D @amamo/versobun add -d @amamo/versoThe reference pages write commands as verso ... so their arguments stay independent of a package
manager. Invoke the locally installed executable through your package manager or an existing project
task.
Decide whether a config is needed
For a single package, a root package.json, package.json5, package.yaml, or package.yml is
enough. With no explicit --config, Verso uses built-in single-package defaults.
For a workspace, generate verso.toml:
verso initThe initializer selects workspace mode only when it finds packages/*/package.json; otherwise it
creates a single-package config. Override that narrow detection when necessary:
verso init --workspaceverso init --singleinit refuses to replace an existing file. Use --force only when replacing it is intentional.
Inspect release readiness
Run the first check through the package manager that installed Verso:
pnpm exec verso doctornpm exec --package=@amamo/verso -- verso doctoryarn exec verso doctorbunx --no-install verso doctordoctor checks config loading, package discovery, the current version, shared package and Cargo
versions, the changelog parent directory, and the named branch's upstream. It returns a nonzero exit
status when any check fails. The remaining examples use verso as shorthand for the same local
executable. Automation can consume the checks as JSON:
verso doctor --jsonPreview one exact version
Start with an explicit target so the preview is reproducible:
verso --dry-run --version 1.4.0The plan lists version files, the optional changelog, configured hooks, warnings, commit and tag templates, and the exact shape of the Git commands. It performs no writes, hooks, commits, tags, or pushes. JSON output is available only in dry-run mode:
verso --dry-run --version 1.4.0 --jsonRun the release
Interactive mode offers stable and prerelease choices, then asks before files, commit, tag, and push:
versoAutomation should provide the exact SemVer and opt into all confirmations:
verso --version 1.4.0 --yes--yes skips confirmations; it never chooses a version. Read Release workflow
before automating a repository with hooks or a relaxed worktree policy.