1bdep-release(1) General Commands Manual bdep-release(1)
2
3
4
6 bdep-release - manage project's version during release
7
9 bdep release [options] [prj-spec]
10
11 prj-spec = --directory|-d prj-dir | pkg-spec
12 pkg-spec = (--directory|-d pkg-dir)...
13
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
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
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 --stdout-format format
172 Representation format to use for printing to stdout.
173
174 --jobs|-j num
175 Number of jobs to perform in parallel.
176
177 --progress
178 Display progress indicators for long-lasting operations, such as
179 network transfers, building, etc.
180
181 --no-progress
182 Suppress progress indicators for long-lasting operations, such
183 as network transfers, building, etc.
184
185 --bpkg path
186 The package manager program to be used for build configuration
187 management.
188
189 --bpkg-option opt
190 Additional option to be passed to the package manager program.
191
192 --build path
193 The build program to be used to build packages.
194
195 --build-option opt
196 Additional option to be passed to the build program.
197
198 --curl path
199 The curl program to be used for network operations.
200
201 --curl-option opt
202 Additional option to be passed to the curl program.
203
204 --pager path
205 The pager program to be used to show long text.
206
207 --pager-option opt
208 Additional option to be passed to the pager program.
209
210 --options-file file
211 Read additional options from file.
212
213 --default-options dir
214 The directory to load additional default options files from.
215
216 --no-default-options
217 Don't load default options files.
218
220 See bdep-default-options-files(1) for an overview of the default op‐
221 tions files. For the release command the search start directory is the
222 project directory. The following options files are searched for in each
223 directory and, if found, loaded in the order listed:
224
225 bdep.options
226 bdep-release.options
227 bdep-release-{version|revision|open|tag}.options # (mode-dependent)
228
229 The following release command options cannot be specified in the de‐
230 fault options files:
231
232 --directory|-d
233 --revision
234 --open
235 --tag
236
238 Send bug reports to the users@build2.org mailing list.
239
241 Copyright (c) 2014-2022 the build2 authors.
242
243 Permission is granted to copy, distribute and/or modify this document
244 under the terms of the MIT License.
245
246
247
248bdep 0.15.0 July 2022 bdep-release(1)