Verso
Release every package in a JavaScript workspace as one version.
Verso updates package manifests, writes an Angular-style conventional changelog, creates a release commit and tag, then atomically pushes the current upstream branch and release tag.
pnpm add -D @amamo/versoStart a release
Install Verso, generate a config, validate the repository, and preview the plan.
Configure the workspace
Control package discovery, version files, changelog output, Git behavior, and hooks.
Understand the safety model
See what Verso writes, when it rolls back, and what remains after a push failure.
A deliberately narrow release tool
Verso is designed for repositories where JavaScript packages share one version. It handles the release boundary itself: version files, changelog, commit, tag, and atomic push. It does not try to replace package publishing, CI orchestration, or project-specific build steps.
| Stage | Verso does | Your project does |
|---|---|---|
| Validate | Checks config, package versions, Git state, and upstream readiness | Runs any checks attached to hooks |
| Prepare | Updates manifests and configured Cargo files; prepends the changelog | Builds or tests if configured |
| Record | Creates the release commit and exact version tag | Publishes packages from CI |
| Push | Atomically pushes the current upstream branch and tag | Reacts to the pushed tag |
Safe before fast
verso --dry-runplans the release without writing files or running mutating Git commands.- Local failures roll back release files and unstage Verso's changes.
- The branch and tag are pushed together with
git push --atomic. - A push failure keeps the local commit and tag so the repository does not hide completed work.
Continue with Getting started, or open the full CLI reference.