super-release 0.14.0 → 0.15.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 +27 -11
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,6 +35,8 @@ pnpm add -D super-release
|
|
|
35
35
|
|
|
36
36
|
The npm package automatically downloads the prebuilt native binary for your platform on first run.
|
|
37
37
|
|
|
38
|
+
Supported platforms: Linux (x86_64, aarch64, musl/Alpine), macOS (x86_64, Apple Silicon), Windows (x86_64).
|
|
39
|
+
|
|
38
40
|
Alternatively, build from source:
|
|
39
41
|
|
|
40
42
|
```bash
|
|
@@ -127,6 +129,7 @@ branches:
|
|
|
127
129
|
prerelease: beta
|
|
128
130
|
- name: "test-*"
|
|
129
131
|
prerelease: true
|
|
132
|
+
packages: [ "@acme/core" ] # only release core on test branches
|
|
130
133
|
- name: "1.x"
|
|
131
134
|
maintenance: true
|
|
132
135
|
|
|
@@ -182,6 +185,17 @@ exits cleanly.
|
|
|
182
185
|
| `- name: "test-*"`<br>` prerelease: true` | Prerelease (branch name as channel) | `2.0.0-test-my-feature.1` |
|
|
183
186
|
| `- name: "1.x"`<br>` maintenance: true` | Maintenance | `1.5.1`, `1.6.0` (major capped) |
|
|
184
187
|
|
|
188
|
+
Branches can also filter which packages they release with `packages`:
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
branches:
|
|
192
|
+
- name: "test-*"
|
|
193
|
+
prerelease: true
|
|
194
|
+
packages: # only release these on test branches
|
|
195
|
+
- "@acme/core"
|
|
196
|
+
- "@acme/utils"
|
|
197
|
+
```
|
|
198
|
+
|
|
185
199
|
**Tag filtering by branch**: Stable branches only see stable tags. Prerelease branches see their own channel's tags plus
|
|
186
200
|
stable tags. Tags on other branches that haven't been merged are ignored.
|
|
187
201
|
|
|
@@ -253,6 +267,7 @@ plugins:
|
|
|
253
267
|
tag: next # dist-tag (default: auto from prerelease channel)
|
|
254
268
|
publish_args: [ "--otp=123456" ]
|
|
255
269
|
package_manager: yarn # force specific PM (default: auto-detect)
|
|
270
|
+
check_registry: true # check if version exists before publishing (default: true)
|
|
256
271
|
|
|
257
272
|
- name: exec
|
|
258
273
|
packages: [ "my-rust-lib" ]
|
|
@@ -262,12 +277,13 @@ plugins:
|
|
|
262
277
|
files: [ Cargo.toml, Cargo.lock ] # include in git commit
|
|
263
278
|
```
|
|
264
279
|
|
|
265
|
-
| Plugin | Prepare
|
|
266
|
-
|
|
267
|
-
| `changelog` | Generates/updates changelog per package (parallel)
|
|
268
|
-
| `npm` |
|
|
269
|
-
| `exec` | Runs custom shell command per package
|
|
280
|
+
| Plugin | Prepare | Publish |
|
|
281
|
+
|-------------|----------------------------------------------------|--------------------------------------------------------|
|
|
282
|
+
| `changelog` | Generates/updates changelog per package (parallel) | -- |
|
|
283
|
+
| `npm` | -- | Publishes packages (parallel within dependency levels) |
|
|
284
|
+
| `exec` | Runs custom shell command per package | Runs custom shell command per package |
|
|
270
285
|
|
|
286
|
+
Package version bumps (`package.json`) happen automatically before plugins run (part of core).
|
|
271
287
|
Plugins return the files they modified. The core git step stages exactly those files for the commit -- no `git add .`.
|
|
272
288
|
|
|
273
289
|
Default: `[changelog, npm]`
|
|
@@ -291,13 +307,13 @@ Commit message placeholders:
|
|
|
291
307
|
|
|
292
308
|
The git step:
|
|
293
309
|
|
|
294
|
-
1. Stages
|
|
295
|
-
2.
|
|
296
|
-
3.
|
|
297
|
-
4.
|
|
298
|
-
5. Pushes commit + tags if `push: true`
|
|
310
|
+
1. Stages files reported by plugins (changelogs, exec `files`, package.json bumps)
|
|
311
|
+
2. Commits (or skips if nothing changed)
|
|
312
|
+
3. Creates annotated tags for each release
|
|
313
|
+
4. Pushes commit + tags if `push: true`
|
|
299
314
|
|
|
300
|
-
Tags are idempotent -- existing tags are skipped.
|
|
315
|
+
Tags are idempotent -- existing tags are skipped. The npm plugin checks the registry before publishing (`npm view`) and
|
|
316
|
+
skips versions that already exist. Non-404 errors (auth, network) abort the release to prevent partial publishes.
|
|
301
317
|
|
|
302
318
|
## Monorepo Structure
|
|
303
319
|
|