Verso

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/verso

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.

StageVerso doesYour project does
ValidateChecks config, package versions, Git state, and upstream readinessRuns any checks attached to hooks
PrepareUpdates manifests and configured Cargo files; prepends the changelogBuilds or tests if configured
RecordCreates the release commit and exact version tagPublishes packages from CI
PushAtomically pushes the current upstream branch and tagReacts to the pushed tag

Safe before fast

  • verso --dry-run plans 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.

On this page