NAME
bdep-release
– manage project's version during release
SYNOPSIS
bdep release [options]
[prj-spec]
prj-spec = --directory|-d
prj-dir | pkg-spec
pkg-spec = (--directory|-d
pkg-dir)...
DESCRIPTION
The release
command manages the project's version
during the release. Specifically, it first changes the snapshot version to
the corresponding release version in each project package's
manifest
file, commits these changes (unless
--no-commit
is specified), tags this commit (unless
--no-tag
is specified), and, if
--push
is specified, pushes the changes to the remote.
Unless --no-open
is specified, the
release
command then opens the next development cycle by
changing the version to a snapshot, committing these changes (unless
--no-commit
is specified), and, if
--push
is specified, pushing them to the remote. Note
that committing, tagging, and pushing is currently only supported for
git(1)
project repositories.
The release
command can also be used to release a new
package revision by passing the --revision
option. In
this mode release
increments the current version's
revision component in each project package's manifest
file, commits these changes (unless --no-commit
is
specified), tags this commit (unless --no-tag
is
specified), and, if --push
is specified, pushes the
changes to the remote. In this mode release
can be
optionally instructed to update an existing tag for the current version to
point to the latest revision (--current-tag=update
) or
to remove it (--current-tag=remove
).
When releasing a revision, the project's repository index is expected to
already contain other changes since for a revision all the associated
changes, including to version, must belong to a single commit.
Alternatively, a revision can be released by amending one or more existing
commits using the --amend
and
--squash
options. In this case the index may still
contain additional changes but is not required to.
The release
command also has a number of continue
modes that allow the completion of steps that were previously suppressed
with the --no-*
options in the above main modes. These
are --tag
which tags the release commit and, if
--push
is specified, pushes it to the remote as well as
--open
which performs the opening of the next
development cycle as described above.
In all the modes that perform a commit, if the project's repository index
already contains other changes, then the commit message is automatically
opened for editing unless --no-edit
is specified. The
editing of the commit message in the absence of other changes can be
requested with the --edit
option.
Normally, release
operates on all the packages in a
project. If no project directory is specified, then the current working
directory is assumed and all the packages are released, even if the current
directory is a package directory. If, however, one or more package
directories are specified explicitly with
--directory|-d
, then release
assumes you know what you are doing and only releases these packages. All
the packages being released must have the same version but may have
different revisions.
RELEASE OPTIONS
COMMON OPTIONS
The common options are summarized below with a more detailed description
available in bdep-common-options(1)
.
DEFAULT OPTIONS FILES
See bdep-default-options-files(1)
for an overview of the default options files. For the
release
command the search start directory is the
project directory. The following options files are searched for in each
directory and, if found, loaded in the order listed:
bdep.options bdep-release.options bdep-release-{version|revision|open|tag}.options # (mode-dependent)
The following release
command options cannot be
specified in the default options files:
--directory|-d --revision --open --tag
BUGS
Send bug reports to the users@build2.org mailing list.