home | help
bdep-release(1) 	     General Commands Manual		 bdep-release(1)

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 = (pkg | (--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  speci-
     fied,  pushing them to the remote. Note that committing, tagging, and push-
     ing 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,  com-
     mits these changes (unless --no-commit is specified), tags this commit (un-
     less  --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 revi-
     sion (--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.	Alterna-
     tively, 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 com-
     pletion 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  per-
     forms 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 ex-
     plicitly 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
     --revision
	    Release a new package revision instead of a new version.

     --no-commit
	    Don't commit the changes. Implies --no-tag and, in the  version  re-
	    lease mode, --no-open.

     --no-tag
	    Don't  tag	the release commit. Tagging can be performed later using
	    the --tag mode option.

     --tag  Tag the already released version instead of releasing a new one.

     --current-tag action
	    Specify what to do with an existing tag for the current version when
	    tagging a new revision. Valid values for this option are  keep  (de-
	    fault), update, and remove.

     --push Push the committed changes and tags to the remote.

     --show-push
	    Print  the push command instead of executing it. This allows examin-
	    ing the committed changes and tags before pushing them  to	the  re-
	    mote. Note that the command is printed to stdout.

     --no-open
	    Don't  open  the  next  development  cycle. Opening can be performed
	    later using the --open mode option.

     --open Open the next development cycle instead of releasing a new version.

     --amendRelease a revision by amending the latest commit instead of making a
	    new one.

     --squash num
	    Release a revision by squashing the  specified  number  of	previous
	    commits and then amending the result. Requires the --amend option to
	    be specified.

     --alphaRelease an alpha instead of the final version.

     --beta Release a beta version instead of the final version.

     --minorRelease the next minor version instead of the current patch.

     --majorRelease  the  next	major  version	instead  of the current minor or
	    patch.

     --open-beta
	    Open the development cycle with the next beta version.

     --open-patch
	    Open the development cycle with the next patch version. This is  the
	    default  if  the  current patch version is not 0 (bugfix release se-
	    ries).

     --open-minor
	    Open the development cycle with the next minor version. This is  the
	    default if the current patch version is 0 (feature release series).

     --open-major
	    Open the development cycle with the next major version.

     --open-base version
	    Open the development cycle with the specified version. The base ver-
	    sion should be in the major.minor.patch form with the opened version
	    becoming major.minor.patch-a.0.z.

     --edit Open the commit message for editing.

     --no-edit
	    Don't open the commit message for editing.

     --force check
	    Force  releasing,  disabling the specified check. Repeat this option
	    to disable multiple checks.

     --yes|-y
	    Don't prompt for confirmation before releasing.

     --directory|-d dir
	    Assume project/package is in the specified directory rather than  in
	    the current working directory.

COMMON OPTIONS
     The  common  options  are summarized below with a more detailed description
     available in bdep-common-options(1).

     -v     Print essential underlying commands being executed.

     -V     Print all underlying commands being executed.

     --quiet|-q
	    Run quietly, only printing error messages.

     --verbose level
	    Set the diagnostics verbosity to level between 0 and 6.

     --stdout-format format
	    Representation format to use for printing to stdout.

     --jobs|-j num
	    Number of jobs to perform in parallel.

     --progress
	    Display progress indicators for  long-lasting  operations,	such  as
	    network transfers, building, etc.

     --no-progress
	    Suppress  progress	indicators  for long-lasting operations, such as
	    network transfers, building, etc.

     --diag-color
	    Use color in diagnostics.

     --no-diag-color
	    Don't use color in diagnostics.

     --bpkg path
	    The package manager program to be used for build configuration  man-
	    agement.

     --bpkg-option opt
	    Additional option to be passed to the package manager program.

     --build path
	    The build program to be used to build packages.

     --build-option opt
	    Additional option to be passed to the build program.

     --curl path
	    The curl program to be used for network operations.

     --curl-option opt
	    Additional option to be passed to the curl program.

     --offline
	    Do not attempt to download resources (packages, repository metadata,
	    etc),  instead  taking  them from the local fetch cache if available
	    and failing otherwise.

     --no-fetch-cache
	    Disable local caching of download  resources  (packages,  repository
	    metadata, etc).

     --fetch-cache mode
	    Comma-separated list of local fetch cache modes.

     --fetch-cache-session id
	    The local fetch cache session.

     --sqlite-synchronous mode
	    Filesystem synchronization mode for the project SQLite database.

     --pager path
	    The pager program to be used to show long text.

     --pager-option opt
	    Additional option to be passed to the pager program.

     --options-file file
	    Read additional options from file.

     --default-options dir
	    The directory to load additional default options files from.

     --no-default-options
	    Don't load default options files.

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.

COPYRIGHT
     Copyright (c) 2014-2026 the build2 authors.

     Permission is granted to copy, distribute and/or modify this document under
     the terms of the MIT License.

bdep 0.18.0			   April 2026			 bdep-release(1)

home | help