release-monorepo-semantically 1.13.0 → 1.14.1
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 +10 -1
- package/dist/domain/ConventionalCommit.d.ts.map +1 -1
- package/dist/domain/ConventionalCommit.js +5 -2
- package/dist/domain/ConventionalCommit.js.map +1 -1
- package/dist/features/changelog/ChangelogConfig.js +3 -3
- package/dist/features/changelog/ChangelogConfig.js.map +1 -1
- package/dist/features/packageJson/PackageJsonConfig.js +1 -1
- package/dist/features/packageJson/PackageJsonConfig.js.map +1 -1
- package/dist/features/packageManager/PackageManagerConfig.js +2 -2
- package/dist/features/packageManager/PackageManagerConfig.js.map +1 -1
- package/dist/features/releaseNotes/ReleaseNotesConfig.d.ts.map +1 -1
- package/dist/features/releaseNotes/ReleaseNotesConfig.js +11 -5
- package/dist/features/releaseNotes/ReleaseNotesConfig.js.map +1 -1
- package/dist/features/report/ReportConfig.d.ts.map +1 -1
- package/dist/features/report/ReportConfig.js +23 -9
- package/dist/features/report/ReportConfig.js.map +1 -1
- package/dist/features/vcs/VCSConfig.js +3 -3
- package/dist/features/vcs/VCSConfig.js.map +1 -1
- package/dist/release.schema.json +305 -0
- package/dist/schema/releaseConfigSchema.d.ts +73 -0
- package/dist/schema/releaseConfigSchema.d.ts.map +1 -0
- package/dist/schema/releaseConfigSchema.js +30 -0
- package/dist/schema/releaseConfigSchema.js.map +1 -0
- package/llms.txt +120 -0
- package/package.json +28 -6
package/README.md
CHANGED
|
@@ -84,6 +84,8 @@ Non-release types: `docs`, `test`, `ci`, `chore`, `refactor`, `style`.
|
|
|
84
84
|
|
|
85
85
|
Package scope is matched by package name.
|
|
86
86
|
|
|
87
|
+
To force a level regardless of rules, put `[major]`, `[minor]`, `[patch]`, or `[skip-bump]` in the commit subject, e.g. `chore: drop node 18 [major]`. The tag is stripped from the subject and overrides the rule-based level for that commit. A scoped tag (for example, `feat(pkg-a): ... [major]`) applies only to the package matching the scope; an unscoped tag (for example, `[major] feat: ...`) applies to every public package.
|
|
88
|
+
|
|
87
89
|
This mapping is `report`'s default configuration, not a fixed rule — see [Configuring release rules](#configuring-release-rules) to change or extend it.
|
|
88
90
|
|
|
89
91
|
## Steps
|
|
@@ -128,14 +130,17 @@ Steps read settings from a `release` section in the root `package.json`, a root
|
|
|
128
130
|
}
|
|
129
131
|
```
|
|
130
132
|
|
|
131
|
-
`.release.json` uses the same shape without the `release` wrapper:
|
|
133
|
+
`.release.json` uses the same shape without the `release` wrapper. Point `$schema` at the JSON Schema shipped with the package to get editor validation and autocompletion:
|
|
132
134
|
|
|
133
135
|
```json
|
|
134
136
|
{
|
|
137
|
+
"$schema": "./node_modules/release-monorepo-semantically/dist/release.schema.json",
|
|
135
138
|
"vcs": { "template": "templates/release-commit-msg.hbs" }
|
|
136
139
|
}
|
|
137
140
|
```
|
|
138
141
|
|
|
142
|
+
The schema is generated from the same definitions the CLI validates with, and is also importable as `release-monorepo-semantically/release.schema.json`.
|
|
143
|
+
|
|
139
144
|
`dryRun: true` in any section makes that step always preview, equivalent to always passing `--dry-run` to it.
|
|
140
145
|
|
|
141
146
|
## Configuring release rules
|
|
@@ -235,6 +240,10 @@ Default templates ship with the package and are used automatically. Override per
|
|
|
235
240
|
|
|
236
241
|
Templates are [Handlebars](https://handlebarsjs.com/), with `now`, `hasBreakingChanges`, `hasFeatures`, `hasFixes`, `hasPerformance`, `hasOthers`, `findBreakingChanges`, `findFeatures`, `findFixes`, `findPerformance`, `findOthers`, `lookup`, and `call` helpers registered. `hasOthers`/`findOthers` cover any commit type that isn't `feat`, `fix`, or `perf` — the bucket a custom `report.bumps` matcher (e.g. `docs`) lands in.
|
|
237
242
|
|
|
243
|
+
## For AI agents
|
|
244
|
+
|
|
245
|
+
The package ships [`llms.txt`](llms.txt), a compact guide for coding agents: the pipeline, the release context format, config, and every error code with its fix. After installation it is at `node_modules/release-monorepo-semantically/llms.txt`. Point your agent at it (e.g. from your `AGENTS.md` or `CLAUDE.md`) when it sets up or debugs a release pipeline.
|
|
246
|
+
|
|
238
247
|
## Development
|
|
239
248
|
|
|
240
249
|
```bash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConventionalCommit.d.ts","sourceRoot":"","sources":["../../src/domain/ConventionalCommit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAGD,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAAyB,CAAC;AAC9E,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAA6C,CAAC;AAClG,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAGnD,CAAC;AAEF,qBAAa,kBAAkB;IAU3B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC5B,QAAQ,CAAC,YAAY,EAAE,cAAc,GAAG,SAAS;IAdnD,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;gBAS9D,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,YAAY,GAAE,cAAc,GAAG,SAAqB;IAG/D,MAAM,IAAI,sBAAsB;IAQhC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAIjE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAmB7C,oGAAoG;IACpG,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc;
|
|
1
|
+
{"version":3,"file":"ConventionalCommit.d.ts","sourceRoot":"","sources":["../../src/domain/ConventionalCommit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAGD,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAAyB,CAAC;AAC9E,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAA6C,CAAC;AAClG,eAAO,MAAM,sBAAsB,EAAE,eAAe,EAGnD,CAAC;AAEF,qBAAa,kBAAkB;IAU3B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,UAAU,EAAE,OAAO;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAC5B,QAAQ,CAAC,YAAY,EAAE,cAAc,GAAG,SAAS;IAdnD,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;gBAS9D,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,IAAI,GAAE,MAAM,GAAG,IAAW,EAC1B,YAAY,GAAE,cAAc,GAAG,SAAqB;IAG/D,MAAM,IAAI,sBAAsB;IAQhC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,GAAG,kBAAkB;IAIjE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAmB7C,oGAAoG;IACpG,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc;IAWxE,mFAAmF;IACnF,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,kBAAkB;CAM3B;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,kBAAkB,EAAE,EAAE,MAAM,MAAM,KAAG,kBAAkB,EAAsD,CAAC;AAE3J,eAAO,MAAM,2BAA2B,GAAI,SAAS,kBAAkB,EAAE,EAAE,OAAO,MAAM,EAAE,KAAG,kBAAkB,EACrD,CAAC"}
|
|
@@ -60,8 +60,11 @@ export class ConventionalCommit {
|
|
|
60
60
|
}
|
|
61
61
|
/** Highest bump level this commit triggers for the given package, or NONE if it matches nothing. */
|
|
62
62
|
bumpMatch(bumpConfig, packageName) {
|
|
63
|
-
if (this.explicitBump !== undefined)
|
|
64
|
-
|
|
63
|
+
if (this.explicitBump !== undefined) {
|
|
64
|
+
if (this.scope === null || this.scope === packageName)
|
|
65
|
+
return this.explicitBump;
|
|
66
|
+
return SemVerBumpType.NONE;
|
|
67
|
+
}
|
|
65
68
|
if (this.matchesAny(bumpConfig.major, packageName))
|
|
66
69
|
return SemVerBumpType.MAJOR;
|
|
67
70
|
if (this.matchesAny(bumpConfig.minor, packageName))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConventionalCommit.js","sourceRoot":"","sources":["../../src/domain/ConventionalCommit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ConventionalCommit.js","sourceRoot":"","sources":["../../src/domain/ConventionalCommit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export const CONFIG_KEY = 'changelog';
|
|
3
3
|
export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
4
|
-
dryRun: z.boolean().default(false),
|
|
5
|
-
template: z.string().optional(),
|
|
6
|
-
changelogName: z.string().trim().default('CHANGELOG.md'),
|
|
4
|
+
dryRun: z.boolean().default(false).describe('Always preview this step (same as passing --dry-run): no file, git, or registry mutation.'),
|
|
5
|
+
template: z.string().optional().describe('Path (relative to the working directory) to a Handlebars template for each changelog entry.'),
|
|
6
|
+
changelogName: z.string().trim().default('CHANGELOG.md').describe('Changelog file name inside each released package directory.'),
|
|
7
7
|
});
|
|
8
8
|
//# sourceMappingURL=ChangelogConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangelogConfig.js","sourceRoot":"","sources":["../../../src/features/changelog/ChangelogConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ChangelogConfig.js","sourceRoot":"","sources":["../../../src/features/changelog/ChangelogConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2FAA2F,CAAC;IACxI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6FAA6F,CAAC;IACvI,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,6DAA6D,CAAC;CACjI,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export const CONFIG_KEY = 'package-json';
|
|
3
3
|
export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
4
|
-
dryRun: z.boolean().default(false),
|
|
4
|
+
dryRun: z.boolean().default(false).describe('Always preview this step (same as passing --dry-run): no file, git, or registry mutation.'),
|
|
5
5
|
});
|
|
6
6
|
//# sourceMappingURL=PackageJsonConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageJsonConfig.js","sourceRoot":"","sources":["../../../src/features/packageJson/PackageJsonConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"PackageJsonConfig.js","sourceRoot":"","sources":["../../../src/features/packageJson/PackageJsonConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2FAA2F,CAAC;CACzI,CAAC,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { IPluginsConfigServiceKey } from '../../services/PluginsConfigService.js
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
export const CONFIG_KEY = 'package-manager';
|
|
5
5
|
export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
6
|
-
dryRun: z.boolean().default(false),
|
|
7
|
-
kind: z.enum(['npm', 'pnpm', 'yarn']).default('pnpm'),
|
|
6
|
+
dryRun: z.boolean().default(false).describe('Always preview this step (same as passing --dry-run): no file, git, or registry mutation.'),
|
|
7
|
+
kind: z.enum(['npm', 'pnpm', 'yarn']).default('pnpm').describe('Package manager used to refresh the lockfile and publish.'),
|
|
8
8
|
});
|
|
9
9
|
export const whenPackageManagerConfigEqual = (key, value) => scope((c, prev = true) => {
|
|
10
10
|
const config = IPluginsConfigServiceKey.resolve(c).getConfig(CONFIG_KEY, PLUGIN_CONFIG_SCHEMA);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageManagerConfig.js","sourceRoot":"","sources":["../../../src/features/packageManager/PackageManagerConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"PackageManagerConfig.js","sourceRoot":"","sources":["../../../src/features/packageManager/PackageManagerConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,iBAAiB,CAAC;AAE5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2FAA2F,CAAC;IACxI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;CAC5H,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAA+B,GAAM,EAAE,KAAsB,EAAE,EAAE,CAC5G,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE;IACvB,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC/F,OAAO,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACvC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseNotesConfig.d.ts","sourceRoot":"","sources":["../../../src/features/releaseNotes/ReleaseNotesConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAE1C,eAAO,MAAM,oBAAoB;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ReleaseNotesConfig.d.ts","sourceRoot":"","sources":["../../../src/features/releaseNotes/ReleaseNotesConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAE1C,eAAO,MAAM,oBAAoB;;;;;;;;iBAkB/B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAChE,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,oFAInF,CAAC"}
|
|
@@ -9,11 +9,17 @@ export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
|
9
9
|
.string()
|
|
10
10
|
.trim()
|
|
11
11
|
.regex(/^[^/\s]+\/[^/\s]+$/)
|
|
12
|
-
.optional()
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('GitHub repository as owner/name. Falls back to the GITHUB_REPOSITORY environment variable.'),
|
|
14
|
+
token: z
|
|
15
|
+
.string()
|
|
16
|
+
.trim()
|
|
17
|
+
.min(1)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe('GitHub token. Falls back to the GITHUB_TOKEN environment variable; prefer the env var over committing a token.'),
|
|
20
|
+
dryRun: z.boolean().default(false).describe('Always preview this step (same as passing --dry-run): no file, git, or registry mutation.'),
|
|
21
|
+
template: z.string().optional().describe('Path (relative to the working directory) to a Handlebars template for the release notes body.'),
|
|
22
|
+
kind: z.enum(['github']).default('github').describe('Release notes provider.'),
|
|
17
23
|
});
|
|
18
24
|
export const whenConfig = (key, value) => scope((c, prev = true) => {
|
|
19
25
|
const config = IPluginsConfigServiceKey.resolve(c).getConfig(CONFIG_KEY, PLUGIN_CONFIG_SCHEMA);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReleaseNotesConfig.js","sourceRoot":"","sources":["../../../src/features/releaseNotes/ReleaseNotesConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,4EAA4E;IAC5E,kEAAkE;IAClE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,IAAI,EAAE;SACN,KAAK,CAAC,oBAAoB,CAAC;SAC3B,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"ReleaseNotesConfig.js","sourceRoot":"","sources":["../../../src/features/releaseNotes/ReleaseNotesConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;AAE1C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,4EAA4E;IAC5E,kEAAkE;IAClE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,IAAI,EAAE;SACN,KAAK,CAAC,oBAAoB,CAAC;SAC3B,QAAQ,EAAE;SACV,QAAQ,CAAC,4FAA4F,CAAC;IACzG,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,gHAAgH,CAAC;IAC7H,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2FAA2F,CAAC;IACxI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+FAA+F,CAAC;IACzI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CAC/E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA+B,GAAM,EAAE,KAAsB,EAAE,EAAE,CACzF,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE;IACvB,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC/F,OAAO,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACvC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportConfig.d.ts","sourceRoot":"","sources":["../../../src/features/report/ReportConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,eAAO,MAAM,UAAU,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ReportConfig.d.ts","sourceRoot":"","sources":["../../../src/features/report/ReportConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,eAAO,MAAM,UAAU,WAAW,CAAC;AAmCnC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc/B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -2,12 +2,17 @@ import { z } from 'zod';
|
|
|
2
2
|
import { DEFAULT_MAJOR_MATCHERS, DEFAULT_MINOR_MATCHERS, DEFAULT_PATCH_MATCHERS } from '../../domain/ConventionalCommit.js';
|
|
3
3
|
import { SquashCommitPattern } from '../../domain/SquashCommitPattern.js';
|
|
4
4
|
export const CONFIG_KEY = 'report';
|
|
5
|
-
const BUMP_MATCHER_SCHEMA = z
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
const BUMP_MATCHER_SCHEMA = z
|
|
6
|
+
.object({
|
|
7
|
+
type: z.string().optional().describe('Conventional-commit type (feat, fix, docs, ...). Omitted: any type.'),
|
|
8
|
+
scope: z.string().optional().describe('Literal scope, or "<package>" meaning "equals the name of the package being considered". Omitted: any scope.'),
|
|
9
|
+
breaking: z.boolean().optional().describe('true matches "!" or a BREAKING CHANGE body, false matches its absence. Omitted: not considered.'),
|
|
10
|
+
packages: z
|
|
11
|
+
.union([z.literal('*'), z.array(z.string())])
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Packages a match releases: "*" for every public package, or a list of names. Ignored when scope is "<package>".'),
|
|
14
|
+
})
|
|
15
|
+
.describe('A commit matching every given field triggers the bump level this matcher is listed under.');
|
|
11
16
|
const isValidRegExp = (source) => {
|
|
12
17
|
try {
|
|
13
18
|
new RegExp(source);
|
|
@@ -18,7 +23,13 @@ const isValidRegExp = (source) => {
|
|
|
18
23
|
}
|
|
19
24
|
};
|
|
20
25
|
const REGEXP_SCHEMA = z.string().min(1).refine(isValidRegExp, 'must be a valid regular expression');
|
|
21
|
-
const SQUASH_SCHEMA = z.union([
|
|
26
|
+
const SQUASH_SCHEMA = z.union([
|
|
27
|
+
z.literal('github'),
|
|
28
|
+
z.object({
|
|
29
|
+
detect: REGEXP_SCHEMA.describe('Regex tested against a commit subject; a match marks it as a squash commit.'),
|
|
30
|
+
entry: REGEXP_SCHEMA.describe('Regex tested against each body line of a squash commit; a match is one squashed commit header (capture group 1 if present).'),
|
|
31
|
+
}),
|
|
32
|
+
]);
|
|
22
33
|
export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
23
34
|
bumps: z
|
|
24
35
|
.object({
|
|
@@ -26,7 +37,10 @@ export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
|
26
37
|
minor: z.array(BUMP_MATCHER_SCHEMA).default(DEFAULT_MINOR_MATCHERS),
|
|
27
38
|
patch: z.array(BUMP_MATCHER_SCHEMA).default(DEFAULT_PATCH_MATCHERS),
|
|
28
39
|
})
|
|
29
|
-
.default({ major: DEFAULT_MAJOR_MATCHERS, minor: DEFAULT_MINOR_MATCHERS, patch: DEFAULT_PATCH_MATCHERS })
|
|
30
|
-
|
|
40
|
+
.default({ major: DEFAULT_MAJOR_MATCHERS, minor: DEFAULT_MINOR_MATCHERS, patch: DEFAULT_PATCH_MATCHERS })
|
|
41
|
+
.describe("Matchers per bump level. A configured level replaces that level's defaults entirely (no merging); unconfigured levels keep their defaults."),
|
|
42
|
+
squash: SQUASH_SCHEMA.optional()
|
|
43
|
+
.describe('How to recognize squash-merge commits and read the conventional commits listed in their body: "github" for GitHub\'s default squash message, or { detect, entry } regexes. Omitted: squash commits are read by their subject only.')
|
|
44
|
+
.transform((squash) => (squash === undefined ? undefined : SquashCommitPattern.fromConfig(squash))),
|
|
31
45
|
});
|
|
32
46
|
//# sourceMappingURL=ReportConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportConfig.js","sourceRoot":"","sources":["../../../src/features/report/ReportConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC,MAAM,mBAAmB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"ReportConfig.js","sourceRoot":"","sources":["../../../src/features/report/ReportConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAEnC,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAC3G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8GAA8G,CAAC;IACrJ,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC5I,QAAQ,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC5C,QAAQ,EAAE;SACV,QAAQ,CAAC,iHAAiH,CAAC;CAC/H,CAAC;KACD,QAAQ,CAAC,2FAA2F,CAAC,CAAC;AAEzG,MAAM,aAAa,GAAG,CAAC,MAAc,EAAW,EAAE;IAChD,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC,CAAC;AAEpG,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnB,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,6EAA6E,CAAC;QAC7G,KAAK,EAAE,aAAa,CAAC,QAAQ,CAC3B,6HAA6H,CAC9H;KACF,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC;SACL,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACnE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACnE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC;KACpE,CAAC;SACD,OAAO,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;SACxG,QAAQ,CAAC,4IAA4I,CAAC;IACzJ,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CACP,oOAAoO,CACrO;SACA,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;CACtG,CAAC,CAAC"}
|
|
@@ -3,9 +3,9 @@ import { IPluginsConfigServiceKey } from '../../services/PluginsConfigService.js
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
export const CONFIG_KEY = 'vcs';
|
|
5
5
|
export const PLUGIN_CONFIG_SCHEMA = z.object({
|
|
6
|
-
dryRun: z.boolean().default(false),
|
|
7
|
-
template: z.string().optional(),
|
|
8
|
-
kind: z.enum(['git']).default('git'),
|
|
6
|
+
dryRun: z.boolean().default(false).describe('Always preview this step (same as passing --dry-run): no file, git, or registry mutation.'),
|
|
7
|
+
template: z.string().optional().describe('Path (relative to the working directory) to a Handlebars template for the release commit message.'),
|
|
8
|
+
kind: z.enum(['git']).default('git').describe('Version control system.'),
|
|
9
9
|
});
|
|
10
10
|
export const whenConfig = (key, value) => scope((c, prev = true) => {
|
|
11
11
|
const config = IPluginsConfigServiceKey.resolve(c).getConfig(CONFIG_KEY, PLUGIN_CONFIG_SCHEMA);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VCSConfig.js","sourceRoot":"","sources":["../../../src/features/vcs/VCSConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEhC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"VCSConfig.js","sourceRoot":"","sources":["../../../src/features/vcs/VCSConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEhC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2FAA2F,CAAC;IACxI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mGAAmG,CAAC;IAC7I,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;CACzE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAA+B,GAAM,EAAE,KAAsB,EAAE,EAAE,CACzF,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE;IACvB,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IAC/F,OAAO,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACvC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"$schema": {
|
|
6
|
+
"type": "string"
|
|
7
|
+
},
|
|
8
|
+
"report": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"bumps": {
|
|
12
|
+
"default": {
|
|
13
|
+
"major": [
|
|
14
|
+
{
|
|
15
|
+
"breaking": true
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"minor": [
|
|
19
|
+
{
|
|
20
|
+
"type": "feat",
|
|
21
|
+
"scope": "<package>"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"patch": [
|
|
25
|
+
{
|
|
26
|
+
"type": "fix",
|
|
27
|
+
"scope": "<package>"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"type": "perf",
|
|
31
|
+
"scope": "<package>"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
"description": "Matchers per bump level. A configured level replaces that level's defaults entirely (no merging); unconfigured levels keep their defaults.",
|
|
36
|
+
"type": "object",
|
|
37
|
+
"properties": {
|
|
38
|
+
"major": {
|
|
39
|
+
"default": [
|
|
40
|
+
{
|
|
41
|
+
"breaking": true
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"properties": {
|
|
48
|
+
"type": {
|
|
49
|
+
"description": "Conventional-commit type (feat, fix, docs, ...). Omitted: any type.",
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"scope": {
|
|
53
|
+
"description": "Literal scope, or \"<package>\" meaning \"equals the name of the package being considered\". Omitted: any scope.",
|
|
54
|
+
"type": "string"
|
|
55
|
+
},
|
|
56
|
+
"breaking": {
|
|
57
|
+
"description": "true matches \"!\" or a BREAKING CHANGE body, false matches its absence. Omitted: not considered.",
|
|
58
|
+
"type": "boolean"
|
|
59
|
+
},
|
|
60
|
+
"packages": {
|
|
61
|
+
"description": "Packages a match releases: \"*\" for every public package, or a list of names. Ignored when scope is \"<package>\".",
|
|
62
|
+
"anyOf": [
|
|
63
|
+
{
|
|
64
|
+
"type": "string",
|
|
65
|
+
"const": "*"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"type": "array",
|
|
69
|
+
"items": {
|
|
70
|
+
"type": "string"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"description": "A commit matching every given field triggers the bump level this matcher is listed under."
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"minor": {
|
|
80
|
+
"default": [
|
|
81
|
+
{
|
|
82
|
+
"type": "feat",
|
|
83
|
+
"scope": "<package>"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"type": "array",
|
|
87
|
+
"items": {
|
|
88
|
+
"type": "object",
|
|
89
|
+
"properties": {
|
|
90
|
+
"type": {
|
|
91
|
+
"description": "Conventional-commit type (feat, fix, docs, ...). Omitted: any type.",
|
|
92
|
+
"type": "string"
|
|
93
|
+
},
|
|
94
|
+
"scope": {
|
|
95
|
+
"description": "Literal scope, or \"<package>\" meaning \"equals the name of the package being considered\". Omitted: any scope.",
|
|
96
|
+
"type": "string"
|
|
97
|
+
},
|
|
98
|
+
"breaking": {
|
|
99
|
+
"description": "true matches \"!\" or a BREAKING CHANGE body, false matches its absence. Omitted: not considered.",
|
|
100
|
+
"type": "boolean"
|
|
101
|
+
},
|
|
102
|
+
"packages": {
|
|
103
|
+
"description": "Packages a match releases: \"*\" for every public package, or a list of names. Ignored when scope is \"<package>\".",
|
|
104
|
+
"anyOf": [
|
|
105
|
+
{
|
|
106
|
+
"type": "string",
|
|
107
|
+
"const": "*"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "array",
|
|
111
|
+
"items": {
|
|
112
|
+
"type": "string"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"description": "A commit matching every given field triggers the bump level this matcher is listed under."
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"patch": {
|
|
122
|
+
"default": [
|
|
123
|
+
{
|
|
124
|
+
"type": "fix",
|
|
125
|
+
"scope": "<package>"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"type": "perf",
|
|
129
|
+
"scope": "<package>"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"type": "array",
|
|
133
|
+
"items": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"type": {
|
|
137
|
+
"description": "Conventional-commit type (feat, fix, docs, ...). Omitted: any type.",
|
|
138
|
+
"type": "string"
|
|
139
|
+
},
|
|
140
|
+
"scope": {
|
|
141
|
+
"description": "Literal scope, or \"<package>\" meaning \"equals the name of the package being considered\". Omitted: any scope.",
|
|
142
|
+
"type": "string"
|
|
143
|
+
},
|
|
144
|
+
"breaking": {
|
|
145
|
+
"description": "true matches \"!\" or a BREAKING CHANGE body, false matches its absence. Omitted: not considered.",
|
|
146
|
+
"type": "boolean"
|
|
147
|
+
},
|
|
148
|
+
"packages": {
|
|
149
|
+
"description": "Packages a match releases: \"*\" for every public package, or a list of names. Ignored when scope is \"<package>\".",
|
|
150
|
+
"anyOf": [
|
|
151
|
+
{
|
|
152
|
+
"type": "string",
|
|
153
|
+
"const": "*"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"type": "array",
|
|
157
|
+
"items": {
|
|
158
|
+
"type": "string"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"description": "A commit matching every given field triggers the bump level this matcher is listed under."
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
"squash": {
|
|
170
|
+
"description": "How to recognize squash-merge commits and read the conventional commits listed in their body: \"github\" for GitHub's default squash message, or { detect, entry } regexes. Omitted: squash commits are read by their subject only.",
|
|
171
|
+
"anyOf": [
|
|
172
|
+
{
|
|
173
|
+
"type": "string",
|
|
174
|
+
"const": "github"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"type": "object",
|
|
178
|
+
"properties": {
|
|
179
|
+
"detect": {
|
|
180
|
+
"type": "string",
|
|
181
|
+
"minLength": 1,
|
|
182
|
+
"description": "Regex tested against a commit subject; a match marks it as a squash commit."
|
|
183
|
+
},
|
|
184
|
+
"entry": {
|
|
185
|
+
"type": "string",
|
|
186
|
+
"minLength": 1,
|
|
187
|
+
"description": "Regex tested against each body line of a squash commit; a match is one squashed commit header (capture group 1 if present)."
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"required": [
|
|
191
|
+
"detect",
|
|
192
|
+
"entry"
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
"package-json": {
|
|
200
|
+
"type": "object",
|
|
201
|
+
"properties": {
|
|
202
|
+
"dryRun": {
|
|
203
|
+
"default": false,
|
|
204
|
+
"description": "Always preview this step (same as passing --dry-run): no file, git, or registry mutation.",
|
|
205
|
+
"type": "boolean"
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"package-manager": {
|
|
210
|
+
"type": "object",
|
|
211
|
+
"properties": {
|
|
212
|
+
"dryRun": {
|
|
213
|
+
"default": false,
|
|
214
|
+
"description": "Always preview this step (same as passing --dry-run): no file, git, or registry mutation.",
|
|
215
|
+
"type": "boolean"
|
|
216
|
+
},
|
|
217
|
+
"kind": {
|
|
218
|
+
"default": "pnpm",
|
|
219
|
+
"description": "Package manager used to refresh the lockfile and publish.",
|
|
220
|
+
"type": "string",
|
|
221
|
+
"enum": [
|
|
222
|
+
"npm",
|
|
223
|
+
"pnpm",
|
|
224
|
+
"yarn"
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
"changelog": {
|
|
230
|
+
"type": "object",
|
|
231
|
+
"properties": {
|
|
232
|
+
"dryRun": {
|
|
233
|
+
"default": false,
|
|
234
|
+
"description": "Always preview this step (same as passing --dry-run): no file, git, or registry mutation.",
|
|
235
|
+
"type": "boolean"
|
|
236
|
+
},
|
|
237
|
+
"template": {
|
|
238
|
+
"description": "Path (relative to the working directory) to a Handlebars template for each changelog entry.",
|
|
239
|
+
"type": "string"
|
|
240
|
+
},
|
|
241
|
+
"changelogName": {
|
|
242
|
+
"default": "CHANGELOG.md",
|
|
243
|
+
"description": "Changelog file name inside each released package directory.",
|
|
244
|
+
"type": "string"
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
"vcs": {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"properties": {
|
|
251
|
+
"dryRun": {
|
|
252
|
+
"default": false,
|
|
253
|
+
"description": "Always preview this step (same as passing --dry-run): no file, git, or registry mutation.",
|
|
254
|
+
"type": "boolean"
|
|
255
|
+
},
|
|
256
|
+
"template": {
|
|
257
|
+
"description": "Path (relative to the working directory) to a Handlebars template for the release commit message.",
|
|
258
|
+
"type": "string"
|
|
259
|
+
},
|
|
260
|
+
"kind": {
|
|
261
|
+
"default": "git",
|
|
262
|
+
"description": "Version control system.",
|
|
263
|
+
"type": "string",
|
|
264
|
+
"enum": [
|
|
265
|
+
"git"
|
|
266
|
+
]
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
"release-notes": {
|
|
271
|
+
"type": "object",
|
|
272
|
+
"properties": {
|
|
273
|
+
"repository": {
|
|
274
|
+
"description": "GitHub repository as owner/name. Falls back to the GITHUB_REPOSITORY environment variable.",
|
|
275
|
+
"type": "string",
|
|
276
|
+
"pattern": "^[^/\\s]+\\/[^/\\s]+$"
|
|
277
|
+
},
|
|
278
|
+
"token": {
|
|
279
|
+
"description": "GitHub token. Falls back to the GITHUB_TOKEN environment variable; prefer the env var over committing a token.",
|
|
280
|
+
"type": "string",
|
|
281
|
+
"minLength": 1
|
|
282
|
+
},
|
|
283
|
+
"dryRun": {
|
|
284
|
+
"default": false,
|
|
285
|
+
"description": "Always preview this step (same as passing --dry-run): no file, git, or registry mutation.",
|
|
286
|
+
"type": "boolean"
|
|
287
|
+
},
|
|
288
|
+
"template": {
|
|
289
|
+
"description": "Path (relative to the working directory) to a Handlebars template for the release notes body.",
|
|
290
|
+
"type": "string"
|
|
291
|
+
},
|
|
292
|
+
"kind": {
|
|
293
|
+
"default": "github",
|
|
294
|
+
"description": "Release notes provider.",
|
|
295
|
+
"type": "string",
|
|
296
|
+
"enum": [
|
|
297
|
+
"github"
|
|
298
|
+
]
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"title": "release-monorepo-semantically configuration",
|
|
304
|
+
"description": "Contents of .release.json, or the \"release\" section of the workspace root package.json. Each key configures one step; CLI flags win over both."
|
|
305
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* The whole `.release.json` file (or `release` section of the root
|
|
4
|
+
* package.json): one optional section per step, keyed by that step's
|
|
5
|
+
* CONFIG_KEY. Built from the same zod schemas the steps validate with, so the
|
|
6
|
+
* published JSON Schema can't drift from what the CLI accepts.
|
|
7
|
+
*/
|
|
8
|
+
export declare const RELEASE_CONFIG_SCHEMA: z.ZodObject<{
|
|
9
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
10
|
+
report: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
bumps: z.ZodDefault<z.ZodObject<{
|
|
12
|
+
major: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
13
|
+
type: z.ZodOptional<z.ZodString>;
|
|
14
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
15
|
+
breaking: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
packages: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>>;
|
|
17
|
+
}, z.core.$strip>>>;
|
|
18
|
+
minor: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
19
|
+
type: z.ZodOptional<z.ZodString>;
|
|
20
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
21
|
+
breaking: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
packages: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>>;
|
|
23
|
+
}, z.core.$strip>>>;
|
|
24
|
+
patch: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
25
|
+
type: z.ZodOptional<z.ZodString>;
|
|
26
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
27
|
+
breaking: z.ZodOptional<z.ZodBoolean>;
|
|
28
|
+
packages: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"*">, z.ZodArray<z.ZodString>]>>;
|
|
29
|
+
}, z.core.$strip>>>;
|
|
30
|
+
}, z.core.$strip>>;
|
|
31
|
+
squash: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"github">, z.ZodObject<{
|
|
32
|
+
detect: z.ZodString;
|
|
33
|
+
entry: z.ZodString;
|
|
34
|
+
}, z.core.$strip>]>>, z.ZodTransform<import("../domain/SquashCommitPattern.js").SquashCommitPattern | undefined, "github" | {
|
|
35
|
+
detect: string;
|
|
36
|
+
entry: string;
|
|
37
|
+
} | undefined>>;
|
|
38
|
+
}, z.core.$strip>>;
|
|
39
|
+
"package-json": z.ZodOptional<z.ZodObject<{
|
|
40
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
41
|
+
}, z.core.$strip>>;
|
|
42
|
+
"package-manager": z.ZodOptional<z.ZodObject<{
|
|
43
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
44
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
45
|
+
npm: "npm";
|
|
46
|
+
pnpm: "pnpm";
|
|
47
|
+
yarn: "yarn";
|
|
48
|
+
}>>;
|
|
49
|
+
}, z.core.$strip>>;
|
|
50
|
+
changelog: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
52
|
+
template: z.ZodOptional<z.ZodString>;
|
|
53
|
+
changelogName: z.ZodDefault<z.ZodString>;
|
|
54
|
+
}, z.core.$strip>>;
|
|
55
|
+
vcs: z.ZodOptional<z.ZodObject<{
|
|
56
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
57
|
+
template: z.ZodOptional<z.ZodString>;
|
|
58
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
59
|
+
git: "git";
|
|
60
|
+
}>>;
|
|
61
|
+
}, z.core.$strip>>;
|
|
62
|
+
"release-notes": z.ZodOptional<z.ZodObject<{
|
|
63
|
+
repository: z.ZodOptional<z.ZodString>;
|
|
64
|
+
token: z.ZodOptional<z.ZodString>;
|
|
65
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
66
|
+
template: z.ZodOptional<z.ZodString>;
|
|
67
|
+
kind: z.ZodDefault<z.ZodEnum<{
|
|
68
|
+
github: "github";
|
|
69
|
+
}>>;
|
|
70
|
+
}, z.core.$strip>>;
|
|
71
|
+
}, z.core.$strip>;
|
|
72
|
+
export declare function releaseConfigJsonSchema(): Record<string, unknown>;
|
|
73
|
+
//# sourceMappingURL=releaseConfigSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseConfigSchema.d.ts","sourceRoot":"","sources":["../../src/schema/releaseConfigSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQhC,CAAC;AAEH,wBAAgB,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOjE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import * as changelog from '../features/changelog/ChangelogConfig.js';
|
|
3
|
+
import * as packageJson from '../features/packageJson/PackageJsonConfig.js';
|
|
4
|
+
import * as packageManager from '../features/packageManager/PackageManagerConfig.js';
|
|
5
|
+
import * as releaseNotes from '../features/releaseNotes/ReleaseNotesConfig.js';
|
|
6
|
+
import * as report from '../features/report/ReportConfig.js';
|
|
7
|
+
import * as vcs from '../features/vcs/VCSConfig.js';
|
|
8
|
+
/**
|
|
9
|
+
* The whole `.release.json` file (or `release` section of the root
|
|
10
|
+
* package.json): one optional section per step, keyed by that step's
|
|
11
|
+
* CONFIG_KEY. Built from the same zod schemas the steps validate with, so the
|
|
12
|
+
* published JSON Schema can't drift from what the CLI accepts.
|
|
13
|
+
*/
|
|
14
|
+
export const RELEASE_CONFIG_SCHEMA = z.object({
|
|
15
|
+
$schema: z.string().optional(),
|
|
16
|
+
[report.CONFIG_KEY]: report.PLUGIN_CONFIG_SCHEMA.optional(),
|
|
17
|
+
[packageJson.CONFIG_KEY]: packageJson.PLUGIN_CONFIG_SCHEMA.optional(),
|
|
18
|
+
[packageManager.CONFIG_KEY]: packageManager.PLUGIN_CONFIG_SCHEMA.optional(),
|
|
19
|
+
[changelog.CONFIG_KEY]: changelog.PLUGIN_CONFIG_SCHEMA.optional(),
|
|
20
|
+
[vcs.CONFIG_KEY]: vcs.PLUGIN_CONFIG_SCHEMA.optional(),
|
|
21
|
+
[releaseNotes.CONFIG_KEY]: releaseNotes.PLUGIN_CONFIG_SCHEMA.optional(),
|
|
22
|
+
});
|
|
23
|
+
export function releaseConfigJsonSchema() {
|
|
24
|
+
return {
|
|
25
|
+
...z.toJSONSchema(RELEASE_CONFIG_SCHEMA, { io: 'input', target: 'draft-7' }),
|
|
26
|
+
title: 'release-monorepo-semantically configuration',
|
|
27
|
+
description: 'Contents of .release.json, or the "release" section of the workspace root package.json. Each key configures one step; CLI flags win over both.',
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=releaseConfigSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"releaseConfigSchema.js","sourceRoot":"","sources":["../../src/schema/releaseConfigSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,SAAS,MAAM,0CAA0C,CAAC;AACtE,OAAO,KAAK,WAAW,MAAM,8CAA8C,CAAC;AAC5E,OAAO,KAAK,cAAc,MAAM,oDAAoD,CAAC;AACrF,OAAO,KAAK,YAAY,MAAM,gDAAgD,CAAC;AAC/E,OAAO,KAAK,MAAM,MAAM,oCAAoC,CAAC;AAC7D,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE;IAC3D,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE;IACrE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,QAAQ,EAAE;IAC3E,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE;IACjE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,QAAQ,EAAE;IACrD,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,oBAAoB,CAAC,QAAQ,EAAE;CACxE,CAAC,CAAC;AAEH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,GAAG,CAAC,CAAC,YAAY,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC5E,KAAK,EAAE,6CAA6C;QACpD,WAAW,EACT,gJAAgJ;KACnJ,CAAC;AACJ,CAAC"}
|
package/llms.txt
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# release-monorepo-semantically
|
|
2
|
+
|
|
3
|
+
> CLI (`monorepo-semantic-release`) that versions, changelogs, tags, and publishes the public packages of a pnpm workspace from conventional commits. It is a set of independent steps, not one command: `report` computes a JSON release context, and every other step consumes that context via `--context` and does one job. The caller (a CI pipeline or shell script) chooses which steps run and in what order.
|
|
4
|
+
|
|
5
|
+
Full docs: https://github.com/IgorBabkin/release-monorepo-semantically#readme
|
|
6
|
+
Config JSON Schema (shipped in the package): `release-monorepo-semantically/release.schema.json` (file: `node_modules/release-monorepo-semantically/dist/release.schema.json`)
|
|
7
|
+
|
|
8
|
+
## Install
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pnpm add -D release-monorepo-semantically
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Requires Node >=20.11, a git repository, a root `package.json` with `workspaces` globs, and `name` plus a `major.minor.patch` `version` in every workspace package.
|
|
15
|
+
|
|
16
|
+
## Canonical pipeline
|
|
17
|
+
|
|
18
|
+
Run from the workspace root, in this order:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
RELEASE_CONTEXT=$(monorepo-semantic-release report) # fails if the working tree is dirty
|
|
22
|
+
monorepo-semantic-release package-json --context "$RELEASE_CONTEXT" # pin internal deps to exact new versions, refresh lockfile
|
|
23
|
+
monorepo-semantic-release package-manager --context "$RELEASE_CONTEXT" # write new versions into package.json files
|
|
24
|
+
monorepo-semantic-release changelog --context "$RELEASE_CONTEXT" # prepend CHANGELOG.md entries
|
|
25
|
+
monorepo-semantic-release vcs --context "$RELEASE_CONTEXT" # commit, tag, push
|
|
26
|
+
monorepo-semantic-release package-manager publish --context "$RELEASE_CONTEXT" # optional: pnpm publish
|
|
27
|
+
monorepo-semantic-release release-notes --context "$RELEASE_CONTEXT" # optional: GitHub Releases via `gh`, needs GITHUB_TOKEN + GITHUB_REPOSITORY
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- Syntax: `monorepo-semantic-release <step> [action] [--flags]`.
|
|
31
|
+
- stdout of `report` is pure JSON; all progress logs go to stderr. Capture it directly, never with `2>&1`.
|
|
32
|
+
- Every step accepts `--dry-run` (no file, git, or registry mutation for that step).
|
|
33
|
+
- `vcs` actions: default runs `commit`, `tag`, `push`; each is also callable alone (`vcs commit`, `vcs tag`, `vcs push`).
|
|
34
|
+
- `package-manager` actions: default writes versions; `publish` publishes. They are separate on purpose.
|
|
35
|
+
- `--template <path>` overrides the Handlebars template for `changelog`, `vcs commit`, and `release-notes`. `changelog` also takes `--changelog-name <file>`.
|
|
36
|
+
- If nothing needs releasing, `report` emits a context with empty maps and the later steps are no-ops.
|
|
37
|
+
|
|
38
|
+
## Release context (`report` output)
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"releasedVersions": { "@acme/core": "1.3.0" },
|
|
43
|
+
"releasedPackages": [
|
|
44
|
+
{ "name": "@acme/core", "dirname": "/abs/path/packages/core", "version": "1.2.4", "isPrivate": false, "dependencies": {}, "devDependencies": {} }
|
|
45
|
+
],
|
|
46
|
+
"releasedCommits": {
|
|
47
|
+
"@acme/core": [{ "type": "feat", "scope": "@acme/core", "subject": "add thing", "isBreaking": false, "hash": "abc1234..." }]
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
`releasedVersions` maps package name to its new version. `releasedPackages[].version` is the version before the release. A commit may also carry `explicitBump` (0 none, 1 patch, 2 minor, 3 major).
|
|
53
|
+
|
|
54
|
+
## How bumps are computed
|
|
55
|
+
|
|
56
|
+
- Commits are read per package since its last tag `<package-name>@<version>` (tag format is fixed). With no tag, all history counts.
|
|
57
|
+
- Default rules: `feat(<package-name>)` -> minor; `fix(<package-name>)` / `perf(<package-name>)` -> patch; `!` (e.g. `feat(@acme/core)!: ...`) -> major. Only commit headers are read, so a `BREAKING CHANGE:` footer in the body is not seen; use `!`. The scope must equal the full package name, e.g. `fix(@acme/core): ...`.
|
|
58
|
+
- `docs`, `test`, `ci`, `chore`, `refactor`, `style`, and unparseable messages do not release by default.
|
|
59
|
+
- A package whose internal dependency was released in the same run gets at least a minor bump. Packages are processed dependencies-first.
|
|
60
|
+
- Priority: major > minor > patch > none.
|
|
61
|
+
- Explicit override: `[major]`, `[minor]`, `[patch]`, or `[skip-bump]` in a commit subject replaces the rule-based level for that commit. A scoped tag applies only to the package matching its scope; an unscoped tag applies to every public package.
|
|
62
|
+
- Squash merges: by default only a squash commit's subject (e.g. the PR title) is analyzed. Set `report.squash` to `"github"` (GitHub's default squash message) or `{ "detect": "<subject regex>", "entry": "<body line regex>" }` to analyze the commits listed in its body instead. Prefer merge or rebase merges, or a conventional squash title.
|
|
63
|
+
- Private packages (`"private": true`) are never released.
|
|
64
|
+
- Internal dependency versions are written as exact versions; `workspace:` specifiers and `peerDependencies` are left alone.
|
|
65
|
+
|
|
66
|
+
## Configuration
|
|
67
|
+
|
|
68
|
+
Put it in `.release.json` at the workspace root, or under `"release"` in the root `package.json`. When both configure the same step, `.release.json` replaces that step's whole section. CLI flags win over both. Add `"$schema"` for editor validation:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"$schema": "./node_modules/release-monorepo-semantically/dist/release.schema.json",
|
|
73
|
+
"report": {
|
|
74
|
+
"bumps": {
|
|
75
|
+
"patch": [
|
|
76
|
+
{ "type": "fix", "scope": "<package>" },
|
|
77
|
+
{ "type": "perf", "scope": "<package>" },
|
|
78
|
+
{ "type": "docs", "scope": "specs", "packages": "*" }
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"changelog": { "template": "templates/changelog.hbs", "changelogName": "CHANGELOG.md" },
|
|
83
|
+
"vcs": { "template": "templates/release-commit-msg.hbs" },
|
|
84
|
+
"release-notes": { "repository": "acme/repo" },
|
|
85
|
+
"package-manager": { "kind": "pnpm" }
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Sections: `report`, `package-json`, `package-manager`, `changelog`, `vcs`, `release-notes`. Any section accepts `"dryRun": true`.
|
|
90
|
+
|
|
91
|
+
`report.bumps.<major|minor|patch>` is a list of matchers `{ type?, scope?, breaking?, packages? }`. A configured level replaces that level's defaults entirely (repeat the defaults you want to keep); unconfigured levels keep their defaults. `scope: "<package>"` means "equals the package being considered". `packages: "*"` releases every public package on a match. `report.squash` is described above.
|
|
92
|
+
|
|
93
|
+
## Templates
|
|
94
|
+
|
|
95
|
+
Handlebars. Default templates ship in `dist/features/{changelog/changelog.hbs,vcs/release-commit-msg.hbs,releaseNotes/github-release-notes.hbs}` and are good starting points to copy. Helpers: `now`, `hasBreakingChanges`, `hasFeatures`, `hasFixes`, `hasPerformance`, `hasOthers`, `findBreakingChanges`, `findFeatures`, `findFixes`, `findPerformance`, `findOthers`, `lookup`, `call`.
|
|
96
|
+
|
|
97
|
+
## Errors
|
|
98
|
+
|
|
99
|
+
Failures print `[CODE] message` to stderr and exit with code 1.
|
|
100
|
+
|
|
101
|
+
| Code | Meaning / fix |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| `DIRTY_WORKING_TREE` | `report` needs a clean tree. Commit or stash first. |
|
|
104
|
+
| `INVALID_ROOT_PACKAGE_JSON` | Root `package.json` is missing `workspaces` or is malformed. |
|
|
105
|
+
| `INVALID_PACKAGE_JSON` | A workspace package lacks `name` or a `major.minor.patch` `version`. |
|
|
106
|
+
| `MISSING_PACKAGE_JSON` | A workspace glob matched a directory with no `package.json`. |
|
|
107
|
+
| `INVALID_CONFIG` | A config section fails the schema. The message names the section and field. |
|
|
108
|
+
| `MISSING_GITHUB_CREDENTIALS` | `release-notes` needs `repository`/`token` config or `GITHUB_REPOSITORY`/`GITHUB_TOKEN`. |
|
|
109
|
+
| `GITHUB_CLI_UNAVAILABLE` | `release-notes` needs `gh` on `PATH`. |
|
|
110
|
+
| `MISSING_DEPENDENCY_VERSION` | A dependency listed for update isn't declared in the package. |
|
|
111
|
+
| `MISSING_CONTROLLER` | No step name was given. |
|
|
112
|
+
|
|
113
|
+
## Programmatic use
|
|
114
|
+
|
|
115
|
+
```ts
|
|
116
|
+
import { runCli } from 'release-monorepo-semantically';
|
|
117
|
+
// Same arguments as the CLI; returns the exit code. Run with process.cwd() at the
|
|
118
|
+
// workspace root: git commands use the process working directory.
|
|
119
|
+
const exitCode = runCli(['report']);
|
|
120
|
+
```
|
package/package.json
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "release-monorepo-semantically",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.14.1",
|
|
4
|
+
"description": "CLI that versions, changelogs, tags, and publishes the packages of a pnpm monorepo from conventional commits, as independent composable CI steps",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"monorepo",
|
|
7
|
+
"pnpm",
|
|
8
|
+
"workspaces",
|
|
9
|
+
"semantic-release",
|
|
10
|
+
"semver",
|
|
11
|
+
"conventional-commits",
|
|
12
|
+
"changelog",
|
|
13
|
+
"release",
|
|
14
|
+
"versioning",
|
|
15
|
+
"cli",
|
|
16
|
+
"ci",
|
|
17
|
+
"github-actions"
|
|
18
|
+
],
|
|
5
19
|
"license": "ISC",
|
|
6
|
-
"author": "",
|
|
20
|
+
"author": "Igor Babkin",
|
|
7
21
|
"type": "module",
|
|
8
22
|
"main": "dist/index.js",
|
|
9
23
|
"types": "dist/index.d.ts",
|
|
@@ -11,14 +25,18 @@
|
|
|
11
25
|
".": {
|
|
12
26
|
"types": "./dist/index.d.ts",
|
|
13
27
|
"import": "./dist/index.js"
|
|
14
|
-
}
|
|
28
|
+
},
|
|
29
|
+
"./release.schema.json": "./dist/release.schema.json",
|
|
30
|
+
"./llms.txt": "./llms.txt",
|
|
31
|
+
"./package.json": "./package.json"
|
|
15
32
|
},
|
|
16
33
|
"bin": {
|
|
17
34
|
"monorepo-semantic-release": "bin/release.mjs"
|
|
18
35
|
},
|
|
19
36
|
"files": [
|
|
20
37
|
"dist",
|
|
21
|
-
"bin"
|
|
38
|
+
"bin",
|
|
39
|
+
"llms.txt"
|
|
22
40
|
],
|
|
23
41
|
"publishConfig": {
|
|
24
42
|
"access": "public",
|
|
@@ -28,12 +46,16 @@
|
|
|
28
46
|
"type": "git",
|
|
29
47
|
"url": "git+https://github.com/IgorBabkin/release-monorepo-semantically.git"
|
|
30
48
|
},
|
|
49
|
+
"homepage": "https://github.com/IgorBabkin/release-monorepo-semantically#readme",
|
|
50
|
+
"bugs": {
|
|
51
|
+
"url": "https://github.com/IgorBabkin/release-monorepo-semantically/issues"
|
|
52
|
+
},
|
|
31
53
|
"engines": {
|
|
32
54
|
"node": ">=20.11"
|
|
33
55
|
},
|
|
34
56
|
"scripts": {
|
|
35
57
|
"typecheck": "tsc --noEmit",
|
|
36
|
-
"build": "node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json && node scripts/copy-templates.mjs",
|
|
58
|
+
"build": "node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist', { recursive: true, force: true })\" && tsc -p tsconfig.build.json && node scripts/copy-templates.mjs && node scripts/generate-schema.mjs",
|
|
37
59
|
"dev": "tsc --watch",
|
|
38
60
|
"start": "node dist/index.js",
|
|
39
61
|
"lint": "eslint src/",
|