Skip to main content
Version: 1.1

The changelog command

Run dispat changelog to write the pending changelog entry for each covered package, exactly as the release stage's recorder would write it. If an entry already exists, dispat skips it and logs W226, and this same check tells the release stage to skip entries you already wrote. Run this command early so a changelog written in a beforePublish script, before dispat commit, lands inside the tagged commit.

dispat writes these entries inside each package's own folder. The command rides your 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. You can run a step from a stage script at the exact moment your flow needs it. The release stage later finds the work done and skips it.

All four commands share the run command's selection and its window. Run them with no terms to cover every releasing package in dependency order. You can narrow this list with --package, --space, --group, or your invocation folder, adjust the window with --since or --consumers, and handle failures with --on-error.

Two rules govern what a selection may contain. A term matching no package causes an error, but a selected package that is not releasing becomes a logged no-op. This means your flow never fails over a converged or held package, which is 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. Each command name wins the dispat <script> shorthand over a script of the same name, so dispat commit always runs the command. You can still reach your script by spelling it out as dispat run commit.

Every config value these commands consume is also a flag. You can use these flags to override the config for a single invocation. See the flags table for details.

Flags

Beside the global flags:

FlagDefaultEffect
--package, -pNarrow every package-selecting command (release, status, run, preview, changelog, autoversion, autowriter, autoreplacer, commit, github, compute) to the named packages. This repeatable, comma-separated flag matches case-insensitively and accepts * globs, so -p '*' selects every package. See Choosing the packages.
--space, -sNarrow the same eleven commands to every package of the named spaces. This flag uses the same spellings as the package flag, and a standalone package belongs to no space. See Choosing the packages.
--group, -gNarrow the same eleven commands to every package of the named versioning groups. This flag uses the same spellings, and a group is a versionGroups entry or a space that versions as one, so it may cross spaces. See Choosing the packages.
--sinceCover the packages addressed by commits since a git revision for the same seven commands. This replaces the default release window. Pass all to cover every package, and see the run command for details.
--consumersTell the same seven commands to additionally cover every package that transitively depends on a selected one. See the run command.
--on-errorskipDecide what a failed package does to its dependents during every sweeping command (run, autowriter, autoreplacer, changelog, autoversion, commit, github). Set this to skip for transitive skipping or continue. The command always exits 1 on any failure.
--file, -f, --file-title, --date-formatfrom configOverride the matching changelog.* values for every package in a changelog invocation. Use --file-title to state the whole title as one line.
--release-namefrom configOverride releaseName for a changelog or github invocation. Variables like $VAR and ${VAR} expand exactly as they do in the config.