Version Command
Automatically version and generate changelogs for all packages.
melos version
To learn more, visit the Automated Releases documentation.
Hooks#
The version
command supports the following hooks in addition to the
common hooks:
preCommit
: Runs before the version commit is created. Allows you to make your own changes as part of versioning. You need to stage changes that you make yourself.
command:
version:
hooks:
preCommit: |
# Make changes to the version commit here.
# You need to stage changes that you make yourself.
--prerelease (-p)#
Version any packages with changes as a prerelease. Cannot be combined with
graduate flag. Defaults to false
.
melos version --prerelease
melos version -p
--graduate (-g)#
Graduate current prerelease versioned packages to stable versions, e.g.
"0.10.0-dev.1" becomes "0.10.0". Cannot be combined with prerelease flag.
Defaults to false
.
melos version --graduate
melos version -g
--[no-]changelog (-c)#
Update CHANGELOG.md files (based on conventional commit messages). Defaults to
true
.
melos version --changelog
melos version -c
Use --no-changelog
to disable.
--[no-]git-tag-version (-t)#
Create a git tag. Defaults to true
.
melos version --git-tag-version
melos version -t
Use --no-git-tag-version
to disable.
--[no-]release-url (-r)#
Generate and print a link to the prefilled release creation page for each
package after versioning. Defaults to false
.
melos version --release-url
melos version -r
Use --no-release-url
to disable.
The default for this option can be configured in
command/version/releaseUrl in your
melos.yaml
file.
--[no-]dependent-constraints#
Update dependency version constraints of packages in this workspace that depend on any of the packages that will be updated with this versioning run. (defaults to on)
melos version --no-dependent-constraints
Use --no-dependent-constraints
to disable.
--[no-]dependent-versions#
Make a new patch version and changelog entry in packages that are updated due to "--dependent-constraints" changes. Only usable with "--dependent-constraints" enabled and Conventional Commits based versioning. (defaults to on)
melos version --no-dependent-versions
Use --no-dependent-versions
to disable.
--all (-a)#
Version private packages that are skipped by default.
melos version --all
melos version -a
--preid#
When run with this option, melos version
will increment prerelease versions
using the specified prerelease identifier, e.g. using a "beta" preid along with
the --prerelease flag would result in a version in the format
"1.0.0-1.0.beta.0". Applies only to Conventional Commits based versioning.
melos version --prerelease --preid=beta
--dependent-preid#
This option is the same as --preid, but only applies to packages that are versioned due to a change in a dependency version. When this option is not provided but the --preid option is, the value of the --preid option will be used instead.
melos version --prerelease --dependent-preid=beta
--message (-m)#
Override the release's commit message. If the message contains
{new_package_versions}
, it will be replaced by the list of newly versioned
package names. If --message is not provided, the message will default to:
chore(release): publish packages
{new_package_versions}
Example:
melos version --message="chore(release): publish new versions"
--manual-version (-V)#
Manually specify a version change for a package. Can be used multiple times.
Each value must be in the format
<package name>:<major|patch|minor|build|exactVersion>
. Cannot be combined with
--graduate or --prerelease flag.
melos version --manual-version=foo:patch
melos version --manual-version=foo:1.0.0
melos version -Vfoo:1.0.0