donder-release-cli 1.5.4 → 2.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -29
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
<br />
|
|
8
8
|
|
|
9
|
+
> Upgrading from v1? See the [migration guide](docs/MIGRATION_V2.md).
|
|
10
|
+
|
|
9
11
|
## Installation
|
|
10
12
|
|
|
11
13
|
#### With Cargo
|
|
@@ -22,13 +24,15 @@ npm install -g donder-release-cli
|
|
|
22
24
|
|
|
23
25
|
## Quick start
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
Set up a configuration file in your project:
|
|
26
28
|
|
|
27
29
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
# Interactive wizard
|
|
31
|
+
donder-release --setup
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
# Or write a default config without prompts
|
|
34
|
+
donder-release --skip-interactive
|
|
35
|
+
```
|
|
32
36
|
|
|
33
37
|
Preview a release without publishing:
|
|
34
38
|
|
|
@@ -45,18 +49,34 @@ donder-release
|
|
|
45
49
|
## CLI options
|
|
46
50
|
|
|
47
51
|
```
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
--
|
|
53
|
-
-
|
|
52
|
+
-s, --setup Interactive configuration setup wizard
|
|
53
|
+
--skip-interactive Write default configuration file without prompts
|
|
54
|
+
-c, --config <FILE> Configuration file path [default: donder-release.yaml]
|
|
55
|
+
-p, --packages Comma-separated list of monorepo packages to release
|
|
56
|
+
--pre-id <ID> Pre-release identifier (e.g. alpha, beta, rc)
|
|
57
|
+
--dry-run Preview a pending release without publishing
|
|
58
|
+
-v, --version Output CLI version
|
|
54
59
|
```
|
|
55
60
|
|
|
56
61
|
## Configuration
|
|
57
62
|
|
|
58
63
|
All configuration is done in `donder-release.yaml`.
|
|
59
64
|
|
|
65
|
+
### versioning
|
|
66
|
+
|
|
67
|
+
Versioning scheme for your project. Defaults to `semver`.
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
# Semantic versioning (default)
|
|
71
|
+
versioning: semver
|
|
72
|
+
|
|
73
|
+
# Calendar versioning
|
|
74
|
+
versioning: calver
|
|
75
|
+
calver_format: YYYY.MM.MICRO
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
See [CalVer](#calendar-versioning-calver) for details.
|
|
79
|
+
|
|
60
80
|
### release_message
|
|
61
81
|
|
|
62
82
|
The commit message for the release commit. Use `%s` as a placeholder for the version.
|
|
@@ -118,6 +138,8 @@ For example, a release of `1.2.0-beta.3` sets:
|
|
|
118
138
|
- `MARKETING_VERSION = 1.2.0`
|
|
119
139
|
- `CURRENT_PROJECT_VERSION = 2.3`
|
|
120
140
|
|
|
141
|
+
In CalVer mode, `CURRENT_PROJECT_VERSION` is always incremented from the current value in the file.
|
|
142
|
+
|
|
121
143
|
#### Build metadata
|
|
122
144
|
|
|
123
145
|
Append an auto-incrementing build number to the version:
|
|
@@ -139,7 +161,7 @@ changelog_file: CHANGELOG.md
|
|
|
139
161
|
|
|
140
162
|
### clean_pre_releases
|
|
141
163
|
|
|
142
|
-
Delete pre-release tags and GitHub releases when a stable release is published:
|
|
164
|
+
Delete pre-release tags and GitHub releases when a stable release is published (semver only):
|
|
143
165
|
|
|
144
166
|
```yaml
|
|
145
167
|
clean_pre_releases: true
|
|
@@ -161,9 +183,48 @@ Release specific packages:
|
|
|
161
183
|
donder-release --packages api,web
|
|
162
184
|
```
|
|
163
185
|
|
|
186
|
+
#### Per-package versioning
|
|
187
|
+
|
|
188
|
+
In monorepos, each package can use its own versioning scheme:
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
versioning: semver
|
|
192
|
+
bump_files:
|
|
193
|
+
- { target: npm, path: packages/api, package: true }
|
|
194
|
+
- { target: npm, path: packages/app, package: true, versioning: calver, calver_format: YYYY.MM.MICRO }
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Packages without a versioning override inherit the global setting.
|
|
198
|
+
|
|
199
|
+
## Calendar versioning (CalVer)
|
|
200
|
+
|
|
201
|
+
Date-based versioning for projects where releases are time-driven (mobile apps, services, infrastructure).
|
|
202
|
+
|
|
203
|
+
```yaml
|
|
204
|
+
versioning: calver
|
|
205
|
+
calver_format: YYYY.MM.MICRO
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Supported format segments:
|
|
209
|
+
|
|
210
|
+
| Segment | Description | Example |
|
|
211
|
+
|---|---|---|
|
|
212
|
+
| `YYYY` | Full year | 2026 |
|
|
213
|
+
| `YY` | Short year | 26 |
|
|
214
|
+
| `0Y` | Zero-padded year | 06 |
|
|
215
|
+
| `MM` | Short month | 1-12 |
|
|
216
|
+
| `0M` | Zero-padded month | 01-12 |
|
|
217
|
+
| `WW` | Week number | 1-52 |
|
|
218
|
+
| `0W` | Zero-padded week | 01-52 |
|
|
219
|
+
| `MICRO` | Auto-incrementing counter | 0, 1, 2... |
|
|
220
|
+
|
|
221
|
+
The format must have exactly 3 dot-separated segments, one of which must be `MICRO`. MICRO resets to 0 when the calendar segment changes (e.g. new month).
|
|
222
|
+
|
|
223
|
+
Pre-releases are not supported with CalVer. Breaking changes are tracked in the changelog but do not affect the version number.
|
|
224
|
+
|
|
164
225
|
## Pre-releases
|
|
165
226
|
|
|
166
|
-
Create pre-release versions with the `--pre-id` flag:
|
|
227
|
+
Create pre-release versions with the `--pre-id` flag (semver only):
|
|
167
228
|
|
|
168
229
|
```bash
|
|
169
230
|
donder-release --pre-id alpha # 1.0.1-alpha.0
|
|
@@ -175,13 +236,13 @@ Subsequent pre-releases auto-increment: `1.0.1-alpha.0` -> `1.0.1-alpha.1`.
|
|
|
175
236
|
|
|
176
237
|
## Environment variables
|
|
177
238
|
|
|
178
|
-
| Variable
|
|
179
|
-
|
|
180
|
-
| `GH_TOKEN`
|
|
181
|
-
| `GIT_AUTHOR_NAME`
|
|
182
|
-
| `GIT_AUTHOR_EMAIL`
|
|
183
|
-
| `GIT_COMMITTER_NAME`
|
|
184
|
-
| `GIT_COMMITTER_EMAIL` | Git committer email
|
|
239
|
+
| Variable | Description | Default |
|
|
240
|
+
|---|---|---|
|
|
241
|
+
| `GH_TOKEN` | GitHub personal access token (required for publishing) | |
|
|
242
|
+
| `GIT_AUTHOR_NAME` | Git author name | `sbayw-bot` |
|
|
243
|
+
| `GIT_AUTHOR_EMAIL` | Git author email | `<sbayw-bot current primary email>` |
|
|
244
|
+
| `GIT_COMMITTER_NAME` | Git committer name | Falls back to `GIT_AUTHOR_NAME` |
|
|
245
|
+
| `GIT_COMMITTER_EMAIL` | Git committer email | Falls back to `GIT_AUTHOR_EMAIL` |
|
|
185
246
|
|
|
186
247
|
Environment variables can be set in a `donder-release.env` file in your project root.
|
|
187
248
|
|
|
@@ -247,15 +308,12 @@ donder-release follows the [Conventional Commits 1.0.0](https://www.conventional
|
|
|
247
308
|
[optional footer(s)]
|
|
248
309
|
```
|
|
249
310
|
|
|
250
|
-
Version bumps are determined by commit type:
|
|
251
|
-
|
|
252
|
-
| Commit | Version bump |
|
|
253
|
-
| ------------------------- | ---------------------- |
|
|
254
|
-
| `fix: ...` | Patch (1.0.0 -> 1.0.1) |
|
|
255
|
-
| `feat: ...` | Minor (1.0.0 -> 1.1.0) |
|
|
256
|
-
| `BREAKING CHANGE:` footer | Major (1.0.0 -> 2.0.0) |
|
|
311
|
+
Version bumps are determined by commit type (semver only):
|
|
257
312
|
|
|
258
|
-
|
|
313
|
+
| Commit | Version bump |
|
|
314
|
+
|---|---|
|
|
315
|
+
| `fix: ...` | Patch (1.0.0 -> 1.0.1) |
|
|
316
|
+
| `feat: ...` | Minor (1.0.0 -> 1.1.0) |
|
|
317
|
+
| `feat!: ...` or `BREAKING CHANGE:` footer | Major (1.0.0 -> 2.0.0) |
|
|
259
318
|
|
|
260
|
-
|
|
261
|
-
- Add support to other git providers(?)
|
|
319
|
+
In CalVer mode, all releasable commits increment the MICRO counter regardless of type.
|