@substrat-run/cli 0.45.0 → 0.46.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/dist/bump.d.ts +120 -0
- package/dist/bump.d.ts.map +1 -0
- package/dist/bump.js +780 -0
- package/dist/bump.js.map +1 -0
- package/dist/changeset.d.ts +129 -0
- package/dist/changeset.d.ts.map +1 -0
- package/dist/changeset.js +336 -0
- package/dist/changeset.js.map +1 -0
- package/dist/cli.js +77 -1
- package/dist/cli.js.map +1 -1
- package/dist/concept.d.ts +19 -0
- package/dist/concept.d.ts.map +1 -0
- package/dist/concept.js +25 -0
- package/dist/concept.js.map +1 -0
- package/package.json +4 -4
package/dist/bump.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bump.js","sourceRoot":"","sources":["../src/bump.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { type Artifacts, type Bump, type Classification } from './bump.js';
|
|
2
|
+
/**
|
|
3
|
+
* `substrat changeset` — the filesystem and git half of the computed bump (#2364).
|
|
4
|
+
*
|
|
5
|
+
* `bump.ts` judges two sets of artifact texts. This reads them: the vertical's `model.json`,
|
|
6
|
+
* `openapi.json` and `PERMISSIONS.md` at the merge-base of the base branch and HEAD, against
|
|
7
|
+
* the working tree. Then it either WRITES a changeset carrying the computed bump, or CHECKS the
|
|
8
|
+
* changesets already there and refuses one that declares less.
|
|
9
|
+
*
|
|
10
|
+
* The base is the merge-base, never the base branch's tip, so a branch behind `main` is not
|
|
11
|
+
* charged with what `main` changed since. A base that is not in the checkout is a refusal
|
|
12
|
+
* (`CannotRun`), never "no artifacts at base": read that way, every artifact would be new and
|
|
13
|
+
* every bump minor, and a removal would hide behind it.
|
|
14
|
+
*/
|
|
15
|
+
export declare class CannotRun extends Error {
|
|
16
|
+
}
|
|
17
|
+
/** The three files `bump.ts` reads, at a vertical's package root. */
|
|
18
|
+
export declare const ARTIFACT_FILES: {
|
|
19
|
+
readonly model: 'model.json';
|
|
20
|
+
readonly openapi: 'openapi.json';
|
|
21
|
+
readonly permissions: 'PERMISSIONS.md';
|
|
22
|
+
};
|
|
23
|
+
export declare function gitRoot(cwd: string): string;
|
|
24
|
+
/** The merge-base of `ref` and HEAD, or a refusal that says why it is missing. */
|
|
25
|
+
export declare function baseCommit(ref: string, cwd: string): string;
|
|
26
|
+
/** A file at a commit: its text, or `null` when the commit genuinely has no such file. */
|
|
27
|
+
export declare function atCommit(commit: string, path: string, cwd: string): string | null;
|
|
28
|
+
/** One vertical's artifacts at the base commit and in the working tree. */
|
|
29
|
+
export declare function readArtifacts(pkgDir: string, commit: string, root: string): {
|
|
30
|
+
base: Artifacts;
|
|
31
|
+
head: Artifacts;
|
|
32
|
+
};
|
|
33
|
+
export declare function packageNameOf(pkgDir: string): string;
|
|
34
|
+
/** The `.changeset` directory serving `pkgDir`: the nearest one at or above it, up to the repo root. */
|
|
35
|
+
export declare function changesetDirFor(pkgDir: string, root: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* A reviewed exception to the computed bump, written in the changeset as an HTML comment so it
|
|
38
|
+
* stays out of the rendered CHANGELOG:
|
|
39
|
+
*
|
|
40
|
+
* <!-- bump-override: @scope/pkg minor — why the computed major is wrong here -->
|
|
41
|
+
*
|
|
42
|
+
* The package is named because a changeset can name several, and an override must never reach
|
|
43
|
+
* one it does not name. The level must be the one this changeset declares for that package, and
|
|
44
|
+
* the reason must be there: an override is a claim a reviewer reads, and one with no reason is
|
|
45
|
+
* nothing to read.
|
|
46
|
+
*/
|
|
47
|
+
export interface Override {
|
|
48
|
+
readonly pkg: string;
|
|
49
|
+
readonly level: Bump;
|
|
50
|
+
readonly reason: string;
|
|
51
|
+
}
|
|
52
|
+
export interface Changeset {
|
|
53
|
+
readonly file: string;
|
|
54
|
+
readonly releases: ReadonlyMap<string, Bump>;
|
|
55
|
+
readonly overrides: readonly Override[];
|
|
56
|
+
/** Malformed override lines, and other reasons this file cannot be trusted. Each fails the check. */
|
|
57
|
+
readonly problems: readonly string[];
|
|
58
|
+
}
|
|
59
|
+
export declare function parseChangeset(file: string, text: string): Changeset;
|
|
60
|
+
/** The changeset text for one package: the computed bump, and the changes it was computed from. */
|
|
61
|
+
export declare function renderChangeset(pkg: string, result: Classification, summary?: string): string;
|
|
62
|
+
export interface Verdict {
|
|
63
|
+
readonly pkg: string;
|
|
64
|
+
readonly computed: Classification;
|
|
65
|
+
/** The highest bump any changeset declares for the package; `none` when none names it. */
|
|
66
|
+
readonly declared: Bump;
|
|
67
|
+
readonly named: boolean;
|
|
68
|
+
readonly status: 'ok' | 'under-declared' | 'overridden' | 'missing' | 'skipped-fixed';
|
|
69
|
+
readonly overrides: readonly Override[];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The verdict for one package against every changeset present. Changesets combine: a release
|
|
73
|
+
* bumps a package by the highest level any pending changeset names, so that maximum is what is
|
|
74
|
+
* compared, wherever it was written.
|
|
75
|
+
*
|
|
76
|
+
* - declared ≥ computed → ok.
|
|
77
|
+
* - declared < computed, and a changeset naming the package carries a well-formed override →
|
|
78
|
+
* overridden (printed, with its reason).
|
|
79
|
+
* - declared < computed, a changeset names the package → under-declared, the failure.
|
|
80
|
+
* - no changeset names it at all → missing: a warning carrying the computed bump, not a failure.
|
|
81
|
+
* In this repo most artifact changes to a demo come from a platform-wide regeneration that
|
|
82
|
+
* releases the platform, not the demo.
|
|
83
|
+
* - a package in a `fixed` group → skipped: its surface is more than its model (#760).
|
|
84
|
+
*/
|
|
85
|
+
export declare function verdictFor(pkg: string, computed: Classification, changesets: readonly Changeset[], fixed: ReadonlySet<string>): Verdict;
|
|
86
|
+
/** Classify one vertical against the merge-base of `ref`. */
|
|
87
|
+
export declare function computeFor(pkgDir: string, ref: string): {
|
|
88
|
+
pkg: string;
|
|
89
|
+
result: Classification;
|
|
90
|
+
root: string;
|
|
91
|
+
};
|
|
92
|
+
/** The base ref to diff against when none is given: the changesets base branch, as fetched. */
|
|
93
|
+
export declare function defaultBase(changesetDir: string, root: string): string;
|
|
94
|
+
/** The report lines for one verdict, and whether it fails the check. */
|
|
95
|
+
export declare function report(v: Verdict): {
|
|
96
|
+
lines: string[];
|
|
97
|
+
failed: boolean;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* The whole check, for every classified package against every changeset in `changesetDir`. A
|
|
101
|
+
* changeset that cannot be read — a malformed override above all — fails it, whichever package it
|
|
102
|
+
* names: an override that silently did not parse would leave the reviewer reading a claim the gate
|
|
103
|
+
* never saw.
|
|
104
|
+
*/
|
|
105
|
+
export declare function checkPackages(entries: readonly {
|
|
106
|
+
pkg: string;
|
|
107
|
+
result: Classification;
|
|
108
|
+
}[], changesetDir: string): {
|
|
109
|
+
lines: string[];
|
|
110
|
+
failed: boolean;
|
|
111
|
+
verdicts: Verdict[];
|
|
112
|
+
};
|
|
113
|
+
export declare function writeChangeset(changesetDir: string, pkg: string, result: Classification, summary?: string): string;
|
|
114
|
+
/**
|
|
115
|
+
* `substrat changeset`, minus the process: what to print and the exit code. `--check` with
|
|
116
|
+
* `--json` still RUNS the check and still sets the exit code — the JSON carries the verdict — so
|
|
117
|
+
* a script that asks for machine output does not silently lose the gate.
|
|
118
|
+
*/
|
|
119
|
+
export declare function changesetCommand(dir: string, opts: {
|
|
120
|
+
base?: string;
|
|
121
|
+
summary?: string;
|
|
122
|
+
check: boolean;
|
|
123
|
+
json: boolean;
|
|
124
|
+
}): {
|
|
125
|
+
out: string[];
|
|
126
|
+
err: string[];
|
|
127
|
+
code: 0 | 1;
|
|
128
|
+
};
|
|
129
|
+
//# sourceMappingURL=changeset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeset.d.ts","sourceRoot":"","sources":["../src/changeset.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,IAAI,EAET,KAAK,cAAc,EAKpB,MAAM,WAAW,CAAC;AAEnB;;;;;;;;;;;;GAYG;AAEH,qBAAa,SAAU,SAAQ,KAAK;CAAG;AAEvC,qEAAqE;AACrE,eAAO,MAAM,cAAc;aAAK,KAAK,EAAE,YAAY;aAAE,OAAO,EAAE,cAAc;aAAE,WAAW,EAAE,gBAAgB;CAAW,CAAC;AAOvH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAa3D;AAED,0FAA0F;AAC1F,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CASjF;AAUD,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAOhH;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED,wGAAwG;AACxG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOpE;AAmBD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,qGAAqG;IACrG,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CA0CpE;AAYD,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAS7F;AAID,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,0FAA0F;IAC1F,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,IAAI,GAAG,gBAAgB,GAAG,YAAY,GAAG,SAAS,GAAG,eAAe,CAAC;IACtF,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;CACzC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAUvI;AAED,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK7G;AAED,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAItE;AASD,wEAAwE;AACxE,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAgDvE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,EAAE,EAC3D,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAkB3D;AASD,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAIlH;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACvE;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAiC/C"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { spawnSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, readdirSync, readFileSync, realpathSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { basename, dirname, join, relative, resolve, sep } from 'node:path';
|
|
4
|
+
import { classify, isBump, maxBump, rank, } from './bump.js';
|
|
5
|
+
/**
|
|
6
|
+
* `substrat changeset` — the filesystem and git half of the computed bump (#2364).
|
|
7
|
+
*
|
|
8
|
+
* `bump.ts` judges two sets of artifact texts. This reads them: the vertical's `model.json`,
|
|
9
|
+
* `openapi.json` and `PERMISSIONS.md` at the merge-base of the base branch and HEAD, against
|
|
10
|
+
* the working tree. Then it either WRITES a changeset carrying the computed bump, or CHECKS the
|
|
11
|
+
* changesets already there and refuses one that declares less.
|
|
12
|
+
*
|
|
13
|
+
* The base is the merge-base, never the base branch's tip, so a branch behind `main` is not
|
|
14
|
+
* charged with what `main` changed since. A base that is not in the checkout is a refusal
|
|
15
|
+
* (`CannotRun`), never "no artifacts at base": read that way, every artifact would be new and
|
|
16
|
+
* every bump minor, and a removal would hide behind it.
|
|
17
|
+
*/
|
|
18
|
+
export class CannotRun extends Error {
|
|
19
|
+
}
|
|
20
|
+
/** The three files `bump.ts` reads, at a vertical's package root. */
|
|
21
|
+
export const ARTIFACT_FILES = { model: 'model.json', openapi: 'openapi.json', permissions: 'PERMISSIONS.md' };
|
|
22
|
+
function git(args, cwd) {
|
|
23
|
+
const r = spawnSync('git', args, { cwd, encoding: 'utf8' });
|
|
24
|
+
return { status: r.status, stdout: r.stdout ?? '', stderr: r.stderr ?? '' };
|
|
25
|
+
}
|
|
26
|
+
export function gitRoot(cwd) {
|
|
27
|
+
const r = git(['rev-parse', '--show-toplevel'], cwd);
|
|
28
|
+
if (r.status !== 0)
|
|
29
|
+
throw new CannotRun(`${cwd} is not inside a git checkout — the bump is a diff against a base commit`);
|
|
30
|
+
return r.stdout.trim();
|
|
31
|
+
}
|
|
32
|
+
/** The merge-base of `ref` and HEAD, or a refusal that says why it is missing. */
|
|
33
|
+
export function baseCommit(ref, cwd) {
|
|
34
|
+
const resolved = git(['rev-parse', '--verify', '--quiet', `${ref}^{commit}`], cwd);
|
|
35
|
+
if (resolved.status !== 0) {
|
|
36
|
+
const shallow = git(['rev-parse', '--is-shallow-repository'], cwd).stdout.trim() === 'true';
|
|
37
|
+
throw new CannotRun(`the base '${ref}' is not in this checkout` +
|
|
38
|
+
(shallow ? ' (a shallow clone: fetch it, or check out with full history)' : ' (fetch it first)') +
|
|
39
|
+
' — without it every artifact would read as new, and a removal would pass as an addition');
|
|
40
|
+
}
|
|
41
|
+
const mb = git(['merge-base', resolved.stdout.trim(), 'HEAD'], cwd);
|
|
42
|
+
if (mb.status !== 0)
|
|
43
|
+
throw new CannotRun(`no merge-base between '${ref}' and HEAD in this checkout`);
|
|
44
|
+
return mb.stdout.trim();
|
|
45
|
+
}
|
|
46
|
+
/** A file at a commit: its text, or `null` when the commit genuinely has no such file. */
|
|
47
|
+
export function atCommit(commit, path, cwd) {
|
|
48
|
+
// `ls-tree` answers "absent" with empty output and exit 0. Any error is a refusal upstream,
|
|
49
|
+
// never an absence: an absence here reads as "added", which is the silent pass to avoid.
|
|
50
|
+
const listed = git(['ls-tree', '--name-only', commit, '--', path], cwd);
|
|
51
|
+
if (listed.status !== 0)
|
|
52
|
+
throw new CannotRun(`cannot list ${path} at ${commit}: ${listed.stderr.trim()}`);
|
|
53
|
+
if (listed.stdout.trim() === '')
|
|
54
|
+
return null;
|
|
55
|
+
const shown = git(['show', `${commit}:${path}`], cwd);
|
|
56
|
+
if (shown.status !== 0)
|
|
57
|
+
throw new CannotRun(`cannot read ${path} at ${commit}: ${shown.stderr.trim()}`);
|
|
58
|
+
return shown.stdout;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The repo-relative path git wants, with forward slashes. Both sides are REAL paths: git reports
|
|
62
|
+
* its top level through symlinks resolved (macOS's /var is /private/var), and a path relative to
|
|
63
|
+
* the unresolved one climbs out of the repository.
|
|
64
|
+
*/
|
|
65
|
+
const repoPath = (root, abs) => relative(realpathSync(root), realpathSync(abs)).split(sep).join('/');
|
|
66
|
+
/** One vertical's artifacts at the base commit and in the working tree. */
|
|
67
|
+
export function readArtifacts(pkgDir, commit, root) {
|
|
68
|
+
const read = (file) => (existsSync(join(pkgDir, file)) ? readFileSync(join(pkgDir, file), 'utf8') : null);
|
|
69
|
+
const at = (file) => atCommit(commit, `${repoPath(root, pkgDir)}/${file}`.replace(/^\//, ''), root);
|
|
70
|
+
return {
|
|
71
|
+
base: { model: at(ARTIFACT_FILES.model), openapi: at(ARTIFACT_FILES.openapi), permissions: at(ARTIFACT_FILES.permissions) },
|
|
72
|
+
head: { model: read(ARTIFACT_FILES.model), openapi: read(ARTIFACT_FILES.openapi), permissions: read(ARTIFACT_FILES.permissions) },
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function packageNameOf(pkgDir) {
|
|
76
|
+
const file = join(pkgDir, 'package.json');
|
|
77
|
+
if (!existsSync(file))
|
|
78
|
+
throw new CannotRun(`${pkgDir} has no package.json — a changeset names a package`);
|
|
79
|
+
const name = JSON.parse(readFileSync(file, 'utf8')).name;
|
|
80
|
+
if (typeof name !== 'string' || name === '')
|
|
81
|
+
throw new CannotRun(`${file} declares no name`);
|
|
82
|
+
return name;
|
|
83
|
+
}
|
|
84
|
+
/** The `.changeset` directory serving `pkgDir`: the nearest one at or above it, up to the repo root. */
|
|
85
|
+
export function changesetDirFor(pkgDir, root) {
|
|
86
|
+
const top = realpathSync(root);
|
|
87
|
+
for (let dir = realpathSync(pkgDir);; dir = dirname(dir)) {
|
|
88
|
+
if (existsSync(join(dir, '.changeset', 'config.json')))
|
|
89
|
+
return join(dir, '.changeset');
|
|
90
|
+
if (dir === top || dirname(dir) === dir)
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
throw new CannotRun(`no .changeset/config.json at or above ${pkgDir} — this project does not release with changesets (run \`changeset init\`)`);
|
|
94
|
+
}
|
|
95
|
+
function readChangesetConfig(changesetDir) {
|
|
96
|
+
const raw = JSON.parse(readFileSync(join(changesetDir, 'config.json'), 'utf8'));
|
|
97
|
+
const fixed = new Set();
|
|
98
|
+
for (const group of Array.isArray(raw.fixed) ? raw.fixed : []) {
|
|
99
|
+
for (const name of Array.isArray(group) ? group : [])
|
|
100
|
+
if (typeof name === 'string')
|
|
101
|
+
fixed.add(name);
|
|
102
|
+
}
|
|
103
|
+
return { baseBranch: typeof raw.baseBranch === 'string' ? raw.baseBranch : 'main', fixed };
|
|
104
|
+
}
|
|
105
|
+
const OVERRIDE = /^<!--\s*bump-override:\s*(\S+)\s+(none|patch|minor|major)\s+(?:—|--)\s*(.*?)\s*-->$/;
|
|
106
|
+
export function parseChangeset(file, text) {
|
|
107
|
+
const problems = [];
|
|
108
|
+
const releases = new Map();
|
|
109
|
+
const overrides = [];
|
|
110
|
+
// Fence by fence, line by line: an EMPTY frontmatter (`---\n---`, what `changeset --empty`
|
|
111
|
+
// writes) is a valid changeset that releases nothing, and must not read as a broken one.
|
|
112
|
+
const lines = text.split(/\r?\n/);
|
|
113
|
+
const close = lines.findIndex((l, i) => i > 0 && l.trim() === '---');
|
|
114
|
+
if (lines[0]?.trim() !== '---' || close === -1) {
|
|
115
|
+
return { file, releases, overrides, problems: [`${file}: no frontmatter — not a changeset`] };
|
|
116
|
+
}
|
|
117
|
+
const front = lines.slice(1, close);
|
|
118
|
+
const body = lines.slice(close + 1);
|
|
119
|
+
for (const line of front) {
|
|
120
|
+
if (line.trim() === '')
|
|
121
|
+
continue;
|
|
122
|
+
const r = /^\s*(["']?)(.+?)\1\s*:\s*(\S+)\s*$/.exec(line);
|
|
123
|
+
if (!r || !isBump(r[3])) {
|
|
124
|
+
problems.push(`${file}: cannot read the release line '${line.trim()}'`);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
releases.set(r[2], r[3]);
|
|
128
|
+
}
|
|
129
|
+
for (const line of body) {
|
|
130
|
+
// Only a line that STARTS a directive is one. Prose that mentions the feature — a changeset
|
|
131
|
+
// about this very command — is prose; an override buried after text is not read, so the
|
|
132
|
+
// check it would have silenced still fails, which is the safe side.
|
|
133
|
+
if (!/^<!--\s*bump-override\b/.test(line.trim()))
|
|
134
|
+
continue;
|
|
135
|
+
const o = OVERRIDE.exec(line.trim());
|
|
136
|
+
if (!o) {
|
|
137
|
+
problems.push(`${file}: malformed override '${line.trim()}' — write \`<!-- bump-override: <package> <level> — <reason> -->\``);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
const [, pkg, level, reason] = o;
|
|
141
|
+
if (reason === '')
|
|
142
|
+
problems.push(`${file}: the override for ${pkg} gives no reason — a reviewer has nothing to read`);
|
|
143
|
+
else if (!releases.has(pkg))
|
|
144
|
+
problems.push(`${file}: the override names ${pkg}, which this changeset does not release`);
|
|
145
|
+
else if (releases.get(pkg) !== level) {
|
|
146
|
+
problems.push(`${file}: the override for ${pkg} says ${level}, but this changeset declares ${releases.get(pkg)}`);
|
|
147
|
+
}
|
|
148
|
+
else
|
|
149
|
+
overrides.push({ pkg, level, reason });
|
|
150
|
+
}
|
|
151
|
+
return { file, releases, overrides, problems };
|
|
152
|
+
}
|
|
153
|
+
/** Every changeset in the directory (README.md and config.json are not changesets). */
|
|
154
|
+
function readChangesets(changesetDir) {
|
|
155
|
+
return readdirSync(changesetDir)
|
|
156
|
+
.filter((f) => f.endsWith('.md') && f !== 'README.md')
|
|
157
|
+
.sort()
|
|
158
|
+
.map((f) => parseChangeset(join(changesetDir, f), readFileSync(join(changesetDir, f), 'utf8')));
|
|
159
|
+
}
|
|
160
|
+
const MAX_LISTED = 25;
|
|
161
|
+
/** The changeset text for one package: the computed bump, and the changes it was computed from. */
|
|
162
|
+
export function renderChangeset(pkg, result, summary) {
|
|
163
|
+
if (result.bump === 'none')
|
|
164
|
+
throw new Error('nothing changed — there is no bump to write');
|
|
165
|
+
const lines = result.changes
|
|
166
|
+
.filter((c) => c.level !== 'patch' || result.bump === 'patch')
|
|
167
|
+
.map((c) => `- ${c.flagged ? '**Review:** ' : ''}\`${c.path}\` (${c.artifact}): ${c.detail} — ${c.level}`);
|
|
168
|
+
const listed = lines.slice(0, MAX_LISTED);
|
|
169
|
+
if (lines.length > MAX_LISTED)
|
|
170
|
+
listed.push(`- … and ${lines.length - MAX_LISTED} more`);
|
|
171
|
+
const headline = summary?.trim() || `Surface change, computed as ${result.bump} from the model, API and permission artifacts.`;
|
|
172
|
+
return `---\n'${pkg}': ${result.bump}\n---\n\n${headline}\n\n${listed.join('\n')}\n`;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* The verdict for one package against every changeset present. Changesets combine: a release
|
|
176
|
+
* bumps a package by the highest level any pending changeset names, so that maximum is what is
|
|
177
|
+
* compared, wherever it was written.
|
|
178
|
+
*
|
|
179
|
+
* - declared ≥ computed → ok.
|
|
180
|
+
* - declared < computed, and a changeset naming the package carries a well-formed override →
|
|
181
|
+
* overridden (printed, with its reason).
|
|
182
|
+
* - declared < computed, a changeset names the package → under-declared, the failure.
|
|
183
|
+
* - no changeset names it at all → missing: a warning carrying the computed bump, not a failure.
|
|
184
|
+
* In this repo most artifact changes to a demo come from a platform-wide regeneration that
|
|
185
|
+
* releases the platform, not the demo.
|
|
186
|
+
* - a package in a `fixed` group → skipped: its surface is more than its model (#760).
|
|
187
|
+
*/
|
|
188
|
+
export function verdictFor(pkg, computed, changesets, fixed) {
|
|
189
|
+
const naming = changesets.filter((c) => c.releases.has(pkg));
|
|
190
|
+
const declared = naming.reduce((acc, c) => maxBump(acc, c.releases.get(pkg)), 'none');
|
|
191
|
+
const overrides = naming.flatMap((c) => c.overrides.filter((o) => o.pkg === pkg));
|
|
192
|
+
const base = { pkg, computed, declared, named: naming.length > 0, overrides };
|
|
193
|
+
if (fixed.has(pkg))
|
|
194
|
+
return { ...base, status: 'skipped-fixed' };
|
|
195
|
+
if (rank(declared) >= rank(computed.bump))
|
|
196
|
+
return { ...base, status: 'ok' };
|
|
197
|
+
if (naming.length === 0)
|
|
198
|
+
return { ...base, status: 'missing' };
|
|
199
|
+
if (overrides.length > 0)
|
|
200
|
+
return { ...base, status: 'overridden' };
|
|
201
|
+
return { ...base, status: 'under-declared' };
|
|
202
|
+
}
|
|
203
|
+
/** Classify one vertical against the merge-base of `ref`. */
|
|
204
|
+
export function computeFor(pkgDir, ref) {
|
|
205
|
+
const root = gitRoot(pkgDir);
|
|
206
|
+
const commit = baseCommit(ref, root);
|
|
207
|
+
const { base, head } = readArtifacts(resolve(pkgDir), commit, root);
|
|
208
|
+
return { pkg: packageNameOf(pkgDir), result: classify(base, head), root };
|
|
209
|
+
}
|
|
210
|
+
/** The base ref to diff against when none is given: the changesets base branch, as fetched. */
|
|
211
|
+
export function defaultBase(changesetDir, root) {
|
|
212
|
+
const { baseBranch } = readChangesetConfig(changesetDir);
|
|
213
|
+
const remote = `origin/${baseBranch}`;
|
|
214
|
+
return git(['rev-parse', '--verify', '--quiet', `${remote}^{commit}`], root).status === 0 ? remote : baseBranch;
|
|
215
|
+
}
|
|
216
|
+
const ghaEscape = (s) => s.replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A');
|
|
217
|
+
/** A warning line: a GitHub annotation in CI, plain text elsewhere. */
|
|
218
|
+
function warn(message) {
|
|
219
|
+
return process.env.GITHUB_ACTIONS ? `::warning::${ghaEscape(message)}` : `warning: ${message}`;
|
|
220
|
+
}
|
|
221
|
+
/** The report lines for one verdict, and whether it fails the check. */
|
|
222
|
+
export function report(v) {
|
|
223
|
+
const lines = [];
|
|
224
|
+
const top = (cs) => cs.filter((c) => c.level === v.computed.bump).slice(0, 5);
|
|
225
|
+
const reasons = top(v.computed.changes).map((c) => ` ${c.path} (${c.artifact}): ${c.detail}`);
|
|
226
|
+
switch (v.status) {
|
|
227
|
+
case 'skipped-fixed':
|
|
228
|
+
lines.push(`${v.pkg}: in a fixed group — its changeset is written by hand (#760), not computed`);
|
|
229
|
+
break;
|
|
230
|
+
case 'ok':
|
|
231
|
+
lines.push(`${v.pkg}: computed ${v.computed.bump}, declared ${v.declared} — ok`);
|
|
232
|
+
// An override with nothing to override: written for an earlier state of the branch, or
|
|
233
|
+
// never needed. Said aloud, so a reviewer does not read it as a live exception.
|
|
234
|
+
for (const o of v.overrides) {
|
|
235
|
+
lines.push(warn(`${v.pkg}: the bump-override (${o.level} — ${o.reason}) is a no-op — the declared ${v.declared} already ` +
|
|
236
|
+
`covers the computed ${v.computed.bump}. Remove it, so a later override is not read past.`));
|
|
237
|
+
}
|
|
238
|
+
break;
|
|
239
|
+
case 'missing':
|
|
240
|
+
lines.push(warn(`${v.pkg}: its artifacts changed, computed bump ${v.computed.bump}, and no changeset names it. ` +
|
|
241
|
+
`If this change releases it, run \`substrat changeset\` in its directory (or write '${v.pkg}': ${v.computed.bump}).`), ...reasons);
|
|
242
|
+
break;
|
|
243
|
+
case 'overridden':
|
|
244
|
+
lines.push(`${v.pkg}: computed ${v.computed.bump}, declared ${v.declared} — OVERRIDDEN by a reviewed changeset line:`);
|
|
245
|
+
for (const o of v.overrides)
|
|
246
|
+
lines.push(` bump-override ${o.level}: ${o.reason}`);
|
|
247
|
+
lines.push(...reasons);
|
|
248
|
+
break;
|
|
249
|
+
case 'under-declared':
|
|
250
|
+
lines.push(`${v.pkg}: a changeset declares ${v.declared}, but the change is ${v.computed.bump}:`, ...reasons, ` Declare '${v.pkg}': ${v.computed.bump}, or — when the classifier is wrong here — add\n` +
|
|
251
|
+
` <!-- bump-override: ${v.pkg} ${v.declared} — <why> --> to the changeset, for a reviewer to read.`);
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
for (const c of v.computed.changes.filter((c) => c.flagged)) {
|
|
255
|
+
lines.push(warn(`${v.pkg}: human checkpoint — ${c.path}: ${c.detail}`));
|
|
256
|
+
}
|
|
257
|
+
return { lines, failed: v.status === 'under-declared' };
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* The whole check, for every classified package against every changeset in `changesetDir`. A
|
|
261
|
+
* changeset that cannot be read — a malformed override above all — fails it, whichever package it
|
|
262
|
+
* names: an override that silently did not parse would leave the reviewer reading a claim the gate
|
|
263
|
+
* never saw.
|
|
264
|
+
*/
|
|
265
|
+
export function checkPackages(entries, changesetDir) {
|
|
266
|
+
const changesets = readChangesets(changesetDir);
|
|
267
|
+
const { fixed } = readChangesetConfig(changesetDir);
|
|
268
|
+
const lines = [];
|
|
269
|
+
let failed = false;
|
|
270
|
+
for (const c of changesets) {
|
|
271
|
+
for (const p of c.problems) {
|
|
272
|
+
lines.push(`changeset: ${p}`);
|
|
273
|
+
failed = true;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
const verdicts = entries.map((e) => verdictFor(e.pkg, e.result, changesets, fixed));
|
|
277
|
+
for (const v of verdicts) {
|
|
278
|
+
const r = report(v);
|
|
279
|
+
lines.push(...r.lines);
|
|
280
|
+
if (r.failed)
|
|
281
|
+
failed = true;
|
|
282
|
+
}
|
|
283
|
+
return { lines, failed, verdicts };
|
|
284
|
+
}
|
|
285
|
+
/** Where `substrat changeset` writes: a name that will not collide, readable in a PR's file list. */
|
|
286
|
+
function changesetFileName(pkg, bump) {
|
|
287
|
+
const slug = basename(pkg).replace(/[^a-z0-9-]+/gi, '-').toLowerCase();
|
|
288
|
+
const id = Array.from(globalThis.crypto.getRandomValues(new Uint8Array(4)), (b) => b.toString(16).padStart(2, '0')).join('');
|
|
289
|
+
return `${slug}-${bump}-${id}.md`;
|
|
290
|
+
}
|
|
291
|
+
export function writeChangeset(changesetDir, pkg, result, summary) {
|
|
292
|
+
const file = join(changesetDir, changesetFileName(pkg, result.bump));
|
|
293
|
+
writeFileSync(file, renderChangeset(pkg, result, summary));
|
|
294
|
+
return file;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* `substrat changeset`, minus the process: what to print and the exit code. `--check` with
|
|
298
|
+
* `--json` still RUNS the check and still sets the exit code — the JSON carries the verdict — so
|
|
299
|
+
* a script that asks for machine output does not silently lose the gate.
|
|
300
|
+
*/
|
|
301
|
+
export function changesetCommand(dir, opts) {
|
|
302
|
+
const root = gitRoot(dir);
|
|
303
|
+
const changesetDir = changesetDirFor(dir, root);
|
|
304
|
+
const base = opts.base ?? defaultBase(changesetDir, root);
|
|
305
|
+
const { pkg, result } = computeFor(dir, base);
|
|
306
|
+
if (opts.check) {
|
|
307
|
+
const checked = checkPackages([{ pkg, result }], changesetDir);
|
|
308
|
+
const code = checked.failed ? 1 : 0;
|
|
309
|
+
if (opts.json) {
|
|
310
|
+
const verdict = checked.verdicts[0];
|
|
311
|
+
const check = { failed: checked.failed, status: verdict.status, declared: verdict.declared, lines: checked.lines };
|
|
312
|
+
return { out: [JSON.stringify({ package: pkg, base, ...result, check }, null, 2)], err: [], code };
|
|
313
|
+
}
|
|
314
|
+
return checked.failed ? { out: [], err: checked.lines, code } : { out: checked.lines, err: [], code };
|
|
315
|
+
}
|
|
316
|
+
if (opts.json)
|
|
317
|
+
return { out: [JSON.stringify({ package: pkg, base, ...result }, null, 2)], err: [], code: 0 };
|
|
318
|
+
if (result.bump === 'none') {
|
|
319
|
+
return {
|
|
320
|
+
out: [`${pkg}: model.json, openapi.json and PERMISSIONS.md are unchanged against ${base} — no changeset to write`],
|
|
321
|
+
err: [],
|
|
322
|
+
code: 0,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
const file = writeChangeset(changesetDir, pkg, result, opts.summary);
|
|
326
|
+
return {
|
|
327
|
+
out: [
|
|
328
|
+
`✓ ${pkg}: ${result.bump}, computed from ${result.changes.length} change(s) against ${base}`,
|
|
329
|
+
...result.changes.filter((c) => c.flagged).map((c) => ` review: ${c.path} — ${c.detail}`),
|
|
330
|
+
file,
|
|
331
|
+
],
|
|
332
|
+
err: [],
|
|
333
|
+
code: 0,
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=changeset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeset.js","sourceRoot":"","sources":["../src/changeset.ts"],"names":[],"mappings":"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"}
|