Skip to main content
Version: 1.0

The autoversion command

dispat autoversion runs the native manifest reconciliation of the version stage: declared workspace ranges rewritten to the planned versions, own versions updated, and the space's syncLock scripts run for each package whose manifests actually changed. Rewriting already-reconciled manifests changes nothing, so re-running is safe. A space without an autoVersion block is skipped unless a policy flag forces one, which then starts from the defaults. --only-updated narrows the rewrites to declarations naming a package this run releases, so a range that had fallen behind a provider released earlier is left as it is instead of caught up (W197).

It writes inside each package's own folder and rides the build concurrency budget.

The selection it shares

dispat changelog, dispat autoversion, dispat commit and dispat github expose the release pipeline's native steps to custom flows. A stage script can run a step at the moment the flow needs it, and the release stage later finds the work done and skips it.

All four share the run command's selection and its window. With no terms they cover every releasing package in dependency order. --package, --space, --group or the invocation folder narrows that, --since replaces the window, --consumers expands it downstream, and --on-error decides what a failed package does to its dependents.

Two rules about what a selection may contain. A term matching no package is an error. A selected package that is not releasing is a logged no-op, so a flow never fails over a converged or held package. That second rule is also why a step run after dispat commit --tag covers nothing until --since all puts the tagged package back on the table.

The four command words are reserved. Like every command name, each wins the dispat <script> shorthand over a script of the same name, so dispat commit is always the command. Spelling it out as dispat run commit still reaches the script.

Every config value the commands consume is also a flag that overrides it for the invocation, listed in the flags table.

Flags

Beside the global flags:

FlagDefaultEffect
--package, -pEvery package-selecting command (release, status, run, preview, changelog, autoversion, autowriter, autoreplacer, commit, github, compute): narrow to the named packages. Repeatable and comma-separated, matched case-insensitively, * globs (-p '*' is every package); see Choosing the packages.
--space, -sThe same eleven commands: narrow to every package of the named spaces, with the same spellings. A standalone package belongs to no space; see Choosing the packages.
--group, -gThe same eleven commands: narrow to every package of the named versioning groups, with the same spellings. A group is a versionGroups entry or a space that versions as one, so it may cross spaces; see Choosing the packages.
--sinceThe same seven commands: cover the packages the commits since a git revision address, instead of the release window. all covers every package; see the run command.
--consumersThe same seven commands: additionally cover every package that transitively depends on a selected one; see the run command.
--on-errorskipEvery sweeping command (run, autowriter, autoreplacer, changelog, autoversion, commit, github): what a failed package does to its dependents, skip (transitive) or continue. Either way the command exits 1 on any failure.
--match, --write-versionfrom configautoversion only: override the matching autoVersion.* policy for the invocation.
--rangefrom configautoversion and autowriter: override the autoVersion.range write policy, which is how a reconciled range is spelled (caret, tilde, exact, a {version} template, or a literal).
--manifestsfrom configautoversion and autowriter: which of a package's manifests are rewritten, root (the ones in the package folder) or all (every manifest under it). autoversion also takes none, which turns its parsing strategy off.
--only-updatedautoversion and autowriter: rewrite only the declarations naming a package this run updates, leaving a range that had fallen behind a provider released earlier as it is.
--no-replaceautoversion only: skip the autoVersion.replace rules for this invocation.
--sync-locktrueautoversion and autowriter: run the syncLock scripts for packages whose manifests changed; --sync-lock=false skips them.