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 --diag-color
186 Use color in diagnostics.
187
188 --no-diag-color
189 Don't use color in diagnostics.
190
191 --bpkg path
192 The package manager program to be used for build configuration
193 management.
194
195 --bpkg-option opt
196 Additional option to be passed to the package manager program.
197
198 --build path
199 The build program to be used to build packages.
200
201 --build-option opt
202 Additional option to be passed to the build program.
203
204 --curl path
205 The curl program to be used for network operations.
206
207 --curl-option opt
208 Additional option to be passed to the curl program.
209
210 --pager path
211 The pager program to be used to show long text.
212
213 --pager-option opt
214 Additional option to be passed to the pager program.
215
216 --options-file file
217 Read additional options from file.
218
219 --default-options dir
220 The directory to load additional default options files from.
221
222 --no-default-options
223 Don't load default options files.
224
226 See bdep-default-options-files(1) for an overview of the default op‐
227 tions files. For the release command the search start directory is the
228 project directory. The following options files are searched for in each
229 directory and, if found, loaded in the order listed:
230
231 bdep.options
232 bdep-release.options
233 bdep-release-{version|revision|open|tag}.options # (mode-dependent)
234
235 The following release command options cannot be specified in the de‐
236 fault options files:
237
238 --directory|-d
239 --revision
240 --open
241 --tag
242
244 Send bug reports to the users@build2.org mailing list.
245
247 Copyright (c) 2014-2023 the build2 authors.
248
249 Permission is granted to copy, distribute and/or modify this document
250 under the terms of the MIT License.
251
252
253
254bdep 0.16.0 June 2023 bdep-release(1)