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 -V foo:1.0.0
# To manually version multiple packages
melos version --manual-version=foo:patch --manual-version=bar:major
melos version --manual-version=foo:1.0.0 --manual-version=bar:1.0.0
melos version -V foo:1.0.0 -V bar:2.0.0