1bdep-release(1)             General Commands Manual            bdep-release(1)
2
3
4

NAME

6       bdep-release - manage project's version during release
7

SYNOPSIS

9       bdep release [options] [prj-spec]
10
11       prj-spec = --directory|-d prj-dir | pkg-spec
12       pkg-spec = (--directory|-d pkg-dir)...
13

DESCRIPTION

15       The  release  command manages the project's version during the release.
16       Specifically, it first changes the snapshot version to the  correspond‐
17       ing  release  version  in each project package's manifest file, commits
18       these changes (unless  --no-commit  is  specified),  tags  this  commit
19       (unless --no-tag is specified), and, if --push is specified, pushes the
20       changes to the remote. Unless --no-open is specified, the release  com‐
21       mand then opens the next development cycle by changing the version to a
22       snapshot, committing these changes (unless --no-commit  is  specified),
23       and, if --push is specified, pushing them to the remote. Note that com‐
24       mitting, tagging, and pushing is currently only  supported  for  git(1)
25       project repositories.
26
27       The  release command can also be used to release a new package revision
28       by passing the --revision option. In this mode release  increments  the
29       current version's revision component in each project package's manifest
30       file, commits these changes (unless  --no-commit  is  specified),  tags
31       this  commit  (unless  --no-tag is specified), and, if --push is speci‐
32       fied, pushes the changes to the remote. In this  mode  release  can  be
33       optionally instructed to update an existing tag for the current version
34       to point to the latest revision (--current-tag=update) or to remove  it
35       (--current-tag=remove).
36
37       When  releasing  a revision, the project's repository index is expected
38       to already contain other changes since for a revision all  the  associ‐
39       ated  changes,  including  to  version, must belong to a single commit.
40       Alternatively, a revision can be  released  by  amending  one  or  more
41       existing  commits  using the --amend and --squash options. In this case
42       the index may still contain additional changes but is not required to.
43
44       The release command also has a number of continue modes that allow  the
45       completion  of  steps  that  were previously suppressed with the --no-*
46       options in the above main modes. These are --tag which tags the release
47       commit  and, if --push is specified, pushes it to the remote as well as
48       --open which performs the opening of  the  next  development  cycle  as
49       described above.
50
51       In  all  the  modes  that perform a commit, if the project's repository
52       index already contains other changes, then the commit message is  auto‐
53       matically opened for editing unless --no-edit is specified. The editing
54       of the commit message in the absence of other changes can be  requested
55       with the --edit option.
56
57       Normally,  release  operates  on  all  the packages in a project. If no
58       project directory is specified, then the current working  directory  is
59       assumed  and  all the packages are released, even if the current direc‐
60       tory is a package directory. If, however, one or more package  directo‐
61       ries are specified explicitly with --directory|-d, then release assumes
62       you know what you are doing and only releases these packages.  All  the
63       packages being released must have the same version but may have differ‐
64       ent revisions.
65

RELEASE OPTIONS

67       --revision
68              Release a new package revision instead of a new version.
69
70       --no-commit
71              Don't commit the changes. Implies --no-tag and, in  the  version
72              release mode, --no-open.
73
74       --no-tag
75              Don't  tag  the  release  commit. Tagging can be performed later
76              using the --tag mode option.
77
78       --tag  Tag the already released version instead of releasing a new one.
79
80       --current-tag action
81              Specify what to do with an existing tag for the current  version
82              when  tagging  a  new revision. Valid values for this option are
83              keep (default), update, and remove.
84
85       --push Push the committed changes and tags to the remote.
86
87       --show-push
88              Print the push command instead  of  executing  it.  This  allows
89              examining  the committed changes and tags before pushing them to
90              the remote. Note that the command is printed to stdout.
91
92       --no-open
93              Don't open the next development cycle. Opening can be  performed
94              later using the --open mode option.
95
96       --open Open  the next development cycle instead of releasing a new ver‐
97              sion.
98
99       --amend
100              Release a revision by amending the latest commit instead of mak‐
101              ing a new one.
102
103       --squash num
104              Release a revision by squashing the specified number of previous
105              commits and then  amending  the  result.  Requires  the  --amend
106              option to be specified.
107
108       --alpha
109              Release an alpha instead of the final version.
110
111       --beta Release a beta version instead of the final version.
112
113       --minor
114              Release the next minor version instead of the current patch.
115
116       --major
117              Release  the  next major version instead of the current minor or
118              patch.
119
120       --open-beta
121              Open the development cycle with the next beta version.
122
123       --open-patch
124              Open the development cycle with the next patch version. This  is
125              the  default  if  the  current  patch  version  is not 0 (bugfix
126              release series).
127
128       --open-minor
129              Open the development cycle with the next minor version. This  is
130              the  default  if the current patch version is 0 (feature release
131              series).
132
133       --open-major
134              Open the development cycle with the next major version.
135
136       --open-base version
137              Open the development cycle with the specified version. The  base
138              version  should be in the major.minor.patch form with the opened
139              version becoming major.minor.patch-a.0.z.
140
141       --edit Open the commit message for editing.
142
143       --no-edit
144              Don't open the commit message for editing.
145
146       --force check
147              Force releasing, disabling  the  specified  check.  Repeat  this
148              option to disable multiple checks.
149
150       --yes|-y
151              Don't prompt for confirmation before releasing.
152
153       --directory|-d dir
154              Assume project/package is in the specified directory rather than
155              in the current working directory.
156

COMMON OPTIONS

158       The common options are summarized below with a more  detailed  descrip‐
159       tion available in bdep-common-options(1).
160
161       -v     Print essential underlying commands being executed.
162
163       -V     Print all underlying commands being executed.
164
165       --quiet|-q
166              Run quietly, only printing error messages.
167
168       --verbose level
169              Set the diagnostics verbosity to level between 0 and 6.
170
171       --jobs|-j num
172              Number of jobs to perform in parallel.
173
174       --no-progress
175              Suppress  progress  indicators for long-lasting operations, such
176              as network transfers, building, etc.
177
178       --bpkg path
179              The package manager program to be used for  build  configuration
180              management.
181
182       --bpkg-option opt
183              Additional option to be passed to the package manager program.
184
185       --build path
186              The build program to be used to build packages.
187
188       --build-option opt
189              Additional option to be passed to the build program.
190
191       --curl path
192              The curl program to be used for network operations.
193
194       --curl-option opt
195              Additional option to be passed to the curl program.
196
197       --pager path
198              The pager program to be used to show long text.
199
200       --pager-option opt
201              Additional option to be passed to the pager program.
202
203       --options-file file
204              Read additional options from file.
205
206       --default-options dir
207              The directory to load additional default options files from.
208
209       --no-default-options
210              Don't load default options files.
211

DEFAULT OPTIONS FILES

213       See  bdep-default-options-files(1)  for  an  overview  of  the  default
214       options files. For the release command the search  start  directory  is
215       the  project directory. The following options files are searched for in
216       each directory and, if found, loaded in the order listed:
217
218       bdep.options
219       bdep-release.options
220       bdep-release-{version|revision|open|tag}.options # (mode-dependent)
221
222       The following release  command  options  cannot  be  specified  in  the
223       default options files:
224
225       --directory|-d
226       --revision
227       --open
228       --tag
229

BUGS

231       Send bug reports to the users@build2.org mailing list.
232
234       Copyright (c) 2014-2019 Code Synthesis Ltd
235
236       Permission  is  granted to copy, distribute and/or modify this document
237       under the terms of the MIT License.
238
239
240
241bdep 0.12.0                      November 2019                 bdep-release(1)
Impressum