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  (un‐
19       less  --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 op‐
33       tionally  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. Al‐
40       ternatively, a revision can be released by amending one or more  exist‐
41       ing  commits  using  the --amend and --squash options. In this case the
42       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-* op‐
46       tions 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  de‐
49       scribed above.
50
51       In all the modes that perform a commit, if the project's repository in‐
52       dex already contains other changes, then the commit message is automat‐
53       ically opened for editing unless --no-edit is specified. The editing of
54       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 us‐
76              ing 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  ex‐
89              amining  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  op‐
106              tion 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 re‐
126              lease 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  op‐
148              tion 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 op‐
214       tions files. For the release command the search start directory is  the
215       project directory. The following options files are searched for in each
216       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  de‐
223       fault 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-2021 the build2 authors.
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.14.0                      October 2021                  bdep-release(1)
Impressum