@plexus-ms/lib 0.9.0 → 0.100.0-rc.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/dist/bookkeeping.d.ts +15 -2
- package/dist/bookkeeping.d.ts.map +1 -1
- package/dist/bookkeeping.js +20 -4
- package/dist/bookkeeping.js.map +1 -1
- package/dist/consumers.d.ts +7 -3
- package/dist/consumers.d.ts.map +1 -1
- package/dist/consumers.js +20 -19
- package/dist/consumers.js.map +1 -1
- package/dist/copier.d.ts.map +1 -1
- package/dist/copier.js +1 -2
- package/dist/copier.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/propagate.d.ts +4 -2
- package/dist/propagate.d.ts.map +1 -1
- package/dist/propagate.js +231 -126
- package/dist/propagate.js.map +1 -1
- package/dist/ship.d.ts +9 -0
- package/dist/ship.d.ts.map +1 -1
- package/dist/ship.js +163 -58
- package/dist/ship.js.map +1 -1
- package/dist/train.d.ts +28 -1
- package/dist/train.d.ts.map +1 -1
- package/dist/train.js +30 -2
- package/dist/train.js.map +1 -1
- package/package.json +2 -2
package/dist/ship.js
CHANGED
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
// ship: the release train (§ 1.5 PLX). Every train repo ships under ONE
|
|
2
|
-
// version, tagged identically whether or not it changed:
|
|
2
|
+
// version, tagged identically whether or not it changed, in two phases:
|
|
3
3
|
//
|
|
4
4
|
// preflight (plx itself not behind its newest release, self.ts; every train
|
|
5
|
-
// repo on main, clean, not behind origin, the latest tags in agreement
|
|
6
|
-
//
|
|
7
|
-
//
|
|
8
|
-
//
|
|
9
|
-
//
|
|
5
|
+
// repo on main, clean, not behind origin, the latest tags in agreement; gh
|
|
6
|
+
// logged in; no mutable release on any train repo)
|
|
7
|
+
// → phase one: primitives' bookkeeping (galaxy version, the train-versioned
|
|
8
|
+
// packages' manifests, its own workflow refs), commit, tag, push, GitHub
|
|
9
|
+
// release — which locks the tag and runs primitives' release workflow
|
|
10
|
+
// → wait until the three packages are on npm at the train number
|
|
11
|
+
// → phase two: the presets' and the compendium's bookkeeping (collection
|
|
12
|
+
// pin, workflow refs, plx and config pins, the map's version and
|
|
13
|
+
// timestamp, `changed` on every standard module whose requirements moved),
|
|
14
|
+
// commit, tag, push, release, repo by repo
|
|
15
|
+
// → propagate to every consumer as pull requests (propagate.ts).
|
|
10
16
|
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
17
|
+
// The wait is what lets phase two pin the train number: the compendium's
|
|
18
|
+
// commit hook installs plx at that pin, and the presets hand it to every
|
|
19
|
+
// consumer. Substance commits stay human; ship writes only the mechanical
|
|
20
|
+
// bookkeeping. A failure between the first tag and the last release leaves a
|
|
21
|
+
// half-tagged train; the recovery is a re-run naming the same version, which
|
|
22
|
+
// skips the repos already tagged and the releases that exist. A release is
|
|
23
|
+
// never deleted: a deleted immutable release burns its number for good.
|
|
15
24
|
//
|
|
16
25
|
// plx ship ~/dev # next train = minor+1 over the latest
|
|
17
26
|
// plx ship ~/dev --train 1.0.0 # explicit train version
|
|
@@ -19,70 +28,152 @@
|
|
|
19
28
|
// # the propagation in scratch clones
|
|
20
29
|
// plx -y ship ~/dev # unattended: no prompt, copier takes defaults
|
|
21
30
|
import { join } from 'node:path';
|
|
22
|
-
import { bumpCollectionPin, bumpGalaxyVersion, bumpWorkflowRefs, stampChanged, stampStandard, today as todayOf, WORKFLOW_REF, } from "./bookkeeping.js";
|
|
31
|
+
import { bumpCollectionPin, bumpConfigPin, bumpGalaxyVersion, bumpManifestVersion, bumpPlxPin, bumpWorkflowRefs, CONFIG_PIN, PLX_PIN, stampChanged, stampStandard, today as todayOf, WORKFLOW_REF, } from "./bookkeeping.js";
|
|
23
32
|
import { frontmatterField } from "./frontmatter.js";
|
|
24
33
|
import { run, write } from "./plan.js";
|
|
25
34
|
import { propagate } from "./propagate.js";
|
|
26
35
|
import { extractRequirements, MAP_PAGE, modulePages } from "./requirements.js";
|
|
27
36
|
import { preflightSelf } from "./self.js";
|
|
28
|
-
import { preflightRelease, readTrain, resolveVersion, UPSTREAM } from "./train.js";
|
|
37
|
+
import { PRIMITIVES, phasesOf, preflightForge, preflightRelease, readTrain, resolveVersion, TRAIN_PACKAGES, UPSTREAM, } from "./train.js";
|
|
38
|
+
const DEFAULT_WAIT = { interval: 15_000, timeout: 20 * 60_000 };
|
|
29
39
|
export async function ship(ctx, options) {
|
|
30
40
|
const upstream = join(options.workspace, UPSTREAM);
|
|
31
41
|
const propagateOnly = options.propagateOnly ?? false;
|
|
32
42
|
if (options.plx)
|
|
33
43
|
await preflightSelf(ctx, options.plx);
|
|
34
44
|
const train = await readTrain(ctx, upstream);
|
|
35
|
-
|
|
45
|
+
await preflightForge(ctx);
|
|
46
|
+
if (!propagateOnly) {
|
|
36
47
|
await preflightRelease(ctx, train);
|
|
48
|
+
await preflightImmutable(ctx, train);
|
|
49
|
+
}
|
|
37
50
|
const next = resolveVersion(train, options.train, propagateOnly);
|
|
38
51
|
if (!propagateOnly)
|
|
39
|
-
await release(ctx, train, next, options.today ?? todayOf());
|
|
52
|
+
await release(ctx, train, next, options.today ?? todayOf(), { ...DEFAULT_WAIT, ...options.wait });
|
|
40
53
|
const summary = await propagate(ctx, options.workspace, next);
|
|
41
54
|
return { ...summary, released: !propagateOnly };
|
|
42
55
|
}
|
|
43
|
-
|
|
56
|
+
/**
|
|
57
|
+
* The immutable-releases setting is not readable through the API, but every
|
|
58
|
+
* release says whether it is immutable: a train repo whose newest release is
|
|
59
|
+
* mutable had the setting off when it was cut, and the train stops before
|
|
60
|
+
* another number is spent. A repo with no release yet is checked on its first
|
|
61
|
+
* one, right after creation (tagAndRelease).
|
|
62
|
+
*/
|
|
63
|
+
async function preflightImmutable(ctx, train) {
|
|
64
|
+
for (const repo of train.repos) {
|
|
65
|
+
const newest = (await ctx
|
|
66
|
+
.read('gh', ['api', 'repos/{owner}/{repo}/releases?per_page=1', '--jq', '.[0].immutable'], { cwd: repo.path })
|
|
67
|
+
.catch(() => '')).trim();
|
|
68
|
+
if (newest === 'false')
|
|
69
|
+
throw new Error(mutableRelease(`${repo.name}: its newest GitHub release is not immutable`));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
const mutableRelease = (what) => `${what} — enable immutable releases on the plexus-ms organisation (Settings → General → Releases); existing releases stay as they are (never delete one: a deleted immutable release burns its number)`;
|
|
73
|
+
async function release(ctx, train, next, today, wait) {
|
|
44
74
|
ctx.say(`→ train ${train.last ?? 'none'} → ${next}`);
|
|
45
75
|
for (const repo of train.repos) {
|
|
46
76
|
if (repo.pending.length === 0)
|
|
47
77
|
ctx.say(` ${repo.name}: no changes since ${repo.latest} — tag only`);
|
|
48
78
|
else {
|
|
49
79
|
ctx.say(` ${repo.name} (since ${repo.latest ?? 'the beginning'}):`);
|
|
50
|
-
for (const line of repo.pending)
|
|
80
|
+
for (const line of repo.pending.slice(0, PENDING_SHOWN))
|
|
51
81
|
ctx.say(` ${line}`);
|
|
82
|
+
if (repo.pending.length > PENDING_SHOWN)
|
|
83
|
+
ctx.say(` … and ${repo.pending.length - PENDING_SHOWN} more`);
|
|
52
84
|
}
|
|
53
85
|
}
|
|
54
|
-
if (!(await ctx.confirm(`tag all ${train.repos.length} repos as ${next} and push?`)))
|
|
86
|
+
if (!(await ctx.confirm(`tag all ${train.repos.length} repos as ${next}, release them and push?`)))
|
|
55
87
|
throw new Error('aborted');
|
|
88
|
+
const [one = [], two = []] = phasesOf(train);
|
|
56
89
|
try {
|
|
57
|
-
|
|
58
|
-
await ctx
|
|
59
|
-
|
|
60
|
-
const tagged = await ctx
|
|
61
|
-
.read('git', ['rev-parse', '-q', '--verify', `refs/tags/${next}`], { cwd: repo.path })
|
|
62
|
-
.then(() => true)
|
|
63
|
-
.catch(() => false);
|
|
64
|
-
if (tagged)
|
|
65
|
-
ctx.say(`• ${repo.name}: already tagged ${next}`);
|
|
66
|
-
else
|
|
67
|
-
await ctx.apply([run('git', ['tag', '-a', next, '-m', `train ${next}`], { cwd: repo.path })]);
|
|
68
|
-
await ctx.apply([run('git', ['push', 'origin', 'main', next], { cwd: repo.path })]);
|
|
69
|
-
}
|
|
90
|
+
await releasePhase(ctx, train, one, next, today);
|
|
91
|
+
await awaitPublished(ctx, next, wait);
|
|
92
|
+
await releasePhase(ctx, train, two, next, today);
|
|
70
93
|
}
|
|
71
94
|
catch (error) {
|
|
72
95
|
const message = error instanceof Error ? error.message : String(error);
|
|
73
|
-
throw new Error(`${message}\n✗ ship stopped during the release; re-run with --train ${next} to finish it (tagged repos are skipped)`);
|
|
96
|
+
throw new Error(`${message}\n✗ ship stopped during the release; re-run with --train ${next} to finish it (tagged repos and existing releases are skipped; if the registry already has ${next}, update plx first: it is the same code, built from the commit phase one tagged)`);
|
|
74
97
|
}
|
|
75
98
|
}
|
|
76
|
-
/**
|
|
77
|
-
|
|
99
|
+
/** A repo never tagged lists its whole history as pending; this many lines of it are shown. */
|
|
100
|
+
const PENDING_SHOWN = 20;
|
|
101
|
+
/** One phase: the bookkeeping of its repos, then each tagged, pushed and released. */
|
|
102
|
+
async function releasePhase(ctx, train, repos, next, today) {
|
|
103
|
+
ctx.say(`→ phase: ${repos.map((r) => r.name).join(', ')}`);
|
|
104
|
+
await ctx.apply(await planBookkeeping(ctx, train, repos, next, today));
|
|
105
|
+
for (const repo of repos)
|
|
106
|
+
await tagAndRelease(ctx, repo, next);
|
|
107
|
+
}
|
|
108
|
+
async function tagAndRelease(ctx, repo, next) {
|
|
109
|
+
const tagged = await ctx
|
|
110
|
+
.read('git', ['rev-parse', '-q', '--verify', `refs/tags/${next}`], { cwd: repo.path })
|
|
111
|
+
.then(() => true)
|
|
112
|
+
.catch(() => false);
|
|
113
|
+
if (tagged)
|
|
114
|
+
ctx.say(`• ${repo.name}: already tagged ${next}`);
|
|
115
|
+
else
|
|
116
|
+
await ctx.apply([run('git', ['tag', '-a', next, '-m', `train ${next}`], { cwd: repo.path })]);
|
|
117
|
+
await ctx.apply([run('git', ['push', 'origin', 'main', next], { cwd: repo.path })]);
|
|
118
|
+
// The GitHub release is what makes the tag immutable, and on primitives it
|
|
119
|
+
// is what triggers the publish: nothing is ever published from a tag that
|
|
120
|
+
// can still move. --verify-tag refuses to create a tag of its own.
|
|
121
|
+
const released = await ctx
|
|
122
|
+
.read('gh', ['release', 'view', next], { cwd: repo.path })
|
|
123
|
+
.then(() => true)
|
|
124
|
+
.catch(() => false);
|
|
125
|
+
if (released) {
|
|
126
|
+
ctx.say(`• ${repo.name}: release ${next} exists`);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
await ctx.apply([
|
|
130
|
+
run('gh', ['release', 'create', next, '--verify-tag', '--generate-notes', '--title', next], { cwd: repo.path }),
|
|
131
|
+
]);
|
|
132
|
+
if (ctx.dryRun)
|
|
133
|
+
return;
|
|
134
|
+
const immutable = (await ctx.read('gh', ['api', `repos/{owner}/{repo}/releases/tags/${next}`, '--jq', '.immutable'], {
|
|
135
|
+
cwd: repo.path,
|
|
136
|
+
})).trim();
|
|
137
|
+
if (immutable !== 'true')
|
|
138
|
+
throw new Error(mutableRelease(`${repo.name}: release ${next} was created mutable, and its tag can still move`));
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Between the phases: primitives' release workflow publishes the three
|
|
142
|
+
* train-versioned packages, and phase two pins them. Polled with the same
|
|
143
|
+
* question an operator would ask (`npm view <name>@<train> version`); the dry
|
|
144
|
+
* run names the wait and moves on.
|
|
145
|
+
*/
|
|
146
|
+
async function awaitPublished(ctx, next, wait) {
|
|
147
|
+
const names = TRAIN_PACKAGES.map((p) => p.name);
|
|
148
|
+
const list = names.map((n) => `${n}@${next}`).join(', ');
|
|
149
|
+
if (ctx.dryRun) {
|
|
150
|
+
ctx.say(`⏳ [dry-run] would wait for ${list} on npm (${PRIMITIVES}' release workflow publishes them)`);
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
ctx.say(`⏳ waiting for ${list} on npm (${PRIMITIVES}' release workflow publishes them)`);
|
|
154
|
+
const started = Date.now();
|
|
155
|
+
let missing = [...names];
|
|
156
|
+
for (;;) {
|
|
157
|
+
const still = [];
|
|
158
|
+
for (const name of missing) {
|
|
159
|
+
const seen = (await ctx.read('npm', ['view', `${name}@${next}`, 'version']).catch(() => '')).trim();
|
|
160
|
+
if (seen !== next)
|
|
161
|
+
still.push(name);
|
|
162
|
+
}
|
|
163
|
+
missing = still;
|
|
164
|
+
if (missing.length === 0)
|
|
165
|
+
break;
|
|
166
|
+
if (Date.now() - started >= wait.timeout)
|
|
167
|
+
throw new Error(`${missing.join(', ')} not on npm at ${next} after ${Math.round(wait.timeout / 60_000)} min — check the release workflow (gh run list -R plexus-ms/${PRIMITIVES})`);
|
|
168
|
+
await new Promise((resolve) => setTimeout(resolve, wait.interval));
|
|
169
|
+
}
|
|
170
|
+
ctx.say(` ✓ ${list} on npm`);
|
|
171
|
+
}
|
|
172
|
+
/** The bookkeeping writes of the given repos, then one commit per repo that has any. */
|
|
173
|
+
async function planBookkeeping(ctx, train, repos, next, today) {
|
|
78
174
|
const plan = [];
|
|
79
175
|
const touched = new Set();
|
|
80
|
-
const repo = (name) =>
|
|
81
|
-
const r = train.repos.find((r) => r.name === name);
|
|
82
|
-
if (!r)
|
|
83
|
-
throw new Error(`${name} is not a train repo`);
|
|
84
|
-
return r;
|
|
85
|
-
};
|
|
176
|
+
const repo = (name) => repos.find((r) => r.name === name);
|
|
86
177
|
/** Plan a write when the transform changes the file, saying what it does; a missing file is left alone. */
|
|
87
178
|
const edit = async (r, rel, what, transform) => {
|
|
88
179
|
const path = join(r.path, rel);
|
|
@@ -96,32 +187,46 @@ async function planBookkeeping(ctx, train, next, today) {
|
|
|
96
187
|
plan.push(write(path, edited));
|
|
97
188
|
touched.add(r);
|
|
98
189
|
};
|
|
99
|
-
|
|
190
|
+
/** The tracked files of a repo containing a string, by pathspec. */
|
|
191
|
+
const grep = async (r, needle, pathspecs) => (await ctx.read('git', ['grep', '-l', needle, '--', ...pathspecs], { cwd: r.path }).catch(() => ''))
|
|
192
|
+
.split('\n')
|
|
193
|
+
.filter(Boolean);
|
|
194
|
+
const primitives = repo(PRIMITIVES);
|
|
195
|
+
if (primitives) {
|
|
196
|
+
await edit(primitives, 'ansible/galaxy.yml', `version → ${next}`, (t) => bumpGalaxyVersion(t, next));
|
|
197
|
+
for (const p of TRAIN_PACKAGES)
|
|
198
|
+
await edit(primitives, `${p.dir}/package.json`, `${p.name} → ${next}`, (t) => bumpManifestVersion(t, next));
|
|
199
|
+
}
|
|
100
200
|
// Only the plexus.platform collection's pin: a second collection in the same file stays untouched.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
201
|
+
const platformPreset = repo('preset-repo-platform');
|
|
202
|
+
if (platformPreset)
|
|
203
|
+
await edit(platformPreset, 'template/requirements.yml', `plexus.platform pin → ${next}`, (t) => bumpCollectionPin(t, next));
|
|
204
|
+
for (const r of repos) {
|
|
205
|
+
for (const f of await grep(r, WORKFLOW_REF, ['*.yml', '*.yaml', '*.jinja']))
|
|
206
|
+
await edit(r, f, `workflow refs → @${next}`, (t) => bumpWorkflowRefs(t, next));
|
|
207
|
+
for (const f of await grep(r, PLX_PIN, ['*.toml', '*.toml.jinja']))
|
|
208
|
+
await edit(r, f, `plx pin → ${next}`, (t) => bumpPlxPin(t, next));
|
|
209
|
+
for (const f of await grep(r, `"${CONFIG_PIN}"`, ['*package.json', '*package.json.jinja']))
|
|
210
|
+
await edit(r, f, `${CONFIG_PIN} pin → ${next}`, (t) => bumpConfigPin(t, next));
|
|
108
211
|
}
|
|
109
212
|
// The map carries the train version and the date it was cut (§ 1.5 PLX); a
|
|
110
213
|
// standard module is stamped `changed` when its extracted requirement lines
|
|
111
214
|
// differ from the previous train's, read with the same extractor the
|
|
112
215
|
// compendium's check runs, so the two never disagree.
|
|
113
216
|
const comp = repo('compendium');
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
217
|
+
if (comp) {
|
|
218
|
+
await edit(comp, MAP_PAGE, `version → ${next}, timestamp → ${today}`, (t) => stampStandard(t, next, today));
|
|
219
|
+
for (const page of await modulePages(ctx, comp.path)) {
|
|
220
|
+
const text = await ctx.readFile(join(comp.path, page));
|
|
221
|
+
if (frontmatterField(text, 'maturity') !== 'standard')
|
|
222
|
+
continue;
|
|
223
|
+
const previous = comp.tag
|
|
224
|
+
? await ctx.read('git', ['show', `${comp.tag}:${page}`], { cwd: comp.path }).catch(() => '')
|
|
225
|
+
: '';
|
|
226
|
+
if (extractRequirements(text).join('\n') === extractRequirements(previous).join('\n'))
|
|
227
|
+
continue;
|
|
228
|
+
await edit(comp, page, `requirements changed since ${comp.latest ?? 'the beginning'} → changed: ${next}`, (t) => stampChanged(t, next));
|
|
229
|
+
}
|
|
125
230
|
}
|
|
126
231
|
for (const r of train.repos) {
|
|
127
232
|
if (!touched.has(r))
|
package/dist/ship.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship.js","sourceRoot":"","sources":["../src/ship.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ship.js","sourceRoot":"","sources":["../src/ship.ts"],"names":[],"mappings":"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"}
|
package/dist/train.d.ts
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import type { Context } from './context.ts';
|
|
2
|
+
/** The repo whose tag publishes the train-versioned packages; it is released first. */
|
|
3
|
+
export declare const PRIMITIVES = "primitives";
|
|
2
4
|
/** The repos stamped with the train tag, in release order. */
|
|
3
|
-
export declare const TRAIN_REPOS: readonly ["
|
|
5
|
+
export declare const TRAIN_REPOS: readonly ["primitives", "preset-repo-web", "preset-app-nextjs", "preset-repo-platform", "compendium"];
|
|
6
|
+
/**
|
|
7
|
+
* The train is cut in two phases: `primitives` alone, whose release publishes
|
|
8
|
+
* the train-versioned packages, then every other repo once those packages are
|
|
9
|
+
* on npm, because the presets and the compendium pin them at the train number
|
|
10
|
+
* and their commit hooks install the pin.
|
|
11
|
+
*/
|
|
12
|
+
export declare const PHASES: readonly (readonly string[])[];
|
|
13
|
+
/** The packages published at the train number from `primitives` (§ 1.6 PLX), by their directory there. */
|
|
14
|
+
export declare const TRAIN_PACKAGES: readonly [{
|
|
15
|
+
readonly name: "@plexus-ms/cli";
|
|
16
|
+
readonly dir: "packages/cli";
|
|
17
|
+
}, {
|
|
18
|
+
readonly name: "@plexus-ms/lib";
|
|
19
|
+
readonly dir: "packages/lib";
|
|
20
|
+
}, {
|
|
21
|
+
readonly name: "@plexus-ms/config";
|
|
22
|
+
readonly dir: "packages/config";
|
|
23
|
+
}];
|
|
4
24
|
/** The umbrella directory holding the train repos, relative to the workspace. */
|
|
5
25
|
export declare const UPSTREAM = "plexus-ms";
|
|
6
26
|
/** A train version is plain semver, no `v` prefix (§ 1.5 PLX). */
|
|
@@ -31,8 +51,15 @@ export interface Train {
|
|
|
31
51
|
}
|
|
32
52
|
/** Fetch every train repo and read its tags and pending commits. */
|
|
33
53
|
export declare function readTrain(ctx: Context, upstream: string): Promise<Train>;
|
|
54
|
+
/** The train's repos in release order, grouped by phase. */
|
|
55
|
+
export declare const phasesOf: (train: Train) => TrainRepo[][];
|
|
34
56
|
/** Every train repo on main, clean, and not behind origin; throws naming the first offender. */
|
|
35
57
|
export declare function preflightRelease(ctx: Context, train: Train): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* The forge CLI is what creates the releases and the consumers' pull requests;
|
|
60
|
+
* an expired login is found here, before anything is written.
|
|
61
|
+
*/
|
|
62
|
+
export declare function preflightForge(ctx: Context): Promise<void>;
|
|
36
63
|
/**
|
|
37
64
|
* The version a run releases or propagates. `propagateOnly` takes the current
|
|
38
65
|
* train; a release takes the explicit version or the next minor, refusing to
|
package/dist/train.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../src/train.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,8DAA8D;AAC9D,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../src/train.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,uFAAuF;AACvF,eAAO,MAAM,UAAU,eAAe,CAAC;AAEvC,8DAA8D;AAC9D,eAAO,MAAM,WAAW,uGAMd,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAgE,CAAC;AAElH,0GAA0G;AAC1G,eAAO,MAAM,cAAc;;;;;;;;;EAIjB,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,QAAQ,cAAc,CAAC;AAEpC,kEAAkE;AAClE,eAAO,MAAM,cAAc,GAAI,GAAG,MAAM,KAAG,OAAoC,CAAC;AAEhF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAK5D;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,IAAI,EAAE,OAAO,CAAC;CACf;AAED,oEAAoE;AACpE,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAwB9E;AAED,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,KAAG,SAAS,EAAE,EACuB,CAAC;AAE3E,gGAAgG;AAChG,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAgBzG;AAED,sFAAsF;AACtF,qBAAa,UAAW,SAAQ,KAAK;CAAG"}
|
package/dist/train.js
CHANGED
|
@@ -4,15 +4,29 @@
|
|
|
4
4
|
// next version; `ship` acts on it.
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { compareTrains } from "./doctor.js";
|
|
7
|
+
/** The repo whose tag publishes the train-versioned packages; it is released first. */
|
|
8
|
+
export const PRIMITIVES = 'primitives';
|
|
7
9
|
/** The repos stamped with the train tag, in release order. */
|
|
8
10
|
export const TRAIN_REPOS = [
|
|
9
|
-
|
|
10
|
-
'ci-cd',
|
|
11
|
+
PRIMITIVES,
|
|
11
12
|
'preset-repo-web',
|
|
12
13
|
'preset-app-nextjs',
|
|
13
14
|
'preset-repo-platform',
|
|
14
15
|
'compendium',
|
|
15
16
|
];
|
|
17
|
+
/**
|
|
18
|
+
* The train is cut in two phases: `primitives` alone, whose release publishes
|
|
19
|
+
* the train-versioned packages, then every other repo once those packages are
|
|
20
|
+
* on npm, because the presets and the compendium pin them at the train number
|
|
21
|
+
* and their commit hooks install the pin.
|
|
22
|
+
*/
|
|
23
|
+
export const PHASES = [[PRIMITIVES], TRAIN_REPOS.filter((r) => r !== PRIMITIVES)];
|
|
24
|
+
/** The packages published at the train number from `primitives` (§ 1.6 PLX), by their directory there. */
|
|
25
|
+
export const TRAIN_PACKAGES = [
|
|
26
|
+
{ name: '@plexus-ms/cli', dir: 'packages/cli' },
|
|
27
|
+
{ name: '@plexus-ms/lib', dir: 'packages/lib' },
|
|
28
|
+
{ name: '@plexus-ms/config', dir: 'packages/config' },
|
|
29
|
+
];
|
|
16
30
|
/** The umbrella directory holding the train repos, relative to the workspace. */
|
|
17
31
|
export const UPSTREAM = 'plexus-ms';
|
|
18
32
|
/** A train version is plain semver, no `v` prefix (§ 1.5 PLX). */
|
|
@@ -61,6 +75,8 @@ export async function readTrain(ctx, upstream) {
|
|
|
61
75
|
const latest = repos.map((r) => r.latest);
|
|
62
76
|
return { repos, last: latestTag([...all]), skew: latest.some((l) => l !== latest[0]) };
|
|
63
77
|
}
|
|
78
|
+
/** The train's repos in release order, grouped by phase. */
|
|
79
|
+
export const phasesOf = (train) => PHASES.map((names) => train.repos.filter((r) => names.includes(r.name)));
|
|
64
80
|
/** Every train repo on main, clean, and not behind origin; throws naming the first offender. */
|
|
65
81
|
export async function preflightRelease(ctx, train) {
|
|
66
82
|
for (const { name, path } of train.repos) {
|
|
@@ -74,6 +90,18 @@ export async function preflightRelease(ctx, train) {
|
|
|
74
90
|
throw new Error(`${name} is ${behind} commit(s) behind origin/main — pull first, or the tag lands on a stale commit`);
|
|
75
91
|
}
|
|
76
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* The forge CLI is what creates the releases and the consumers' pull requests;
|
|
95
|
+
* an expired login is found here, before anything is written.
|
|
96
|
+
*/
|
|
97
|
+
export async function preflightForge(ctx) {
|
|
98
|
+
try {
|
|
99
|
+
await ctx.read('gh', ['auth', 'status']);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
throw new Error('gh is not logged in (gh auth status failed) — run gh auth login first');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
77
105
|
/**
|
|
78
106
|
* The version a run releases or propagates. `propagateOnly` takes the current
|
|
79
107
|
* train; a release takes the explicit version or the next minor, refusing to
|
package/dist/train.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"train.js","sourceRoot":"","sources":["../src/train.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wEAAwE;AACxE,+EAA+E;AAC/E,mCAAmC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU;IACV,
|
|
1
|
+
{"version":3,"file":"train.js","sourceRoot":"","sources":["../src/train.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plexus-ms/lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.100.0-rc.1",
|
|
4
4
|
"description": "The Plexus verbs as a library: the plan-then-apply core behind plx, and the one parser of Plexus's own file shapes",
|
|
5
5
|
"license": "GPL-3.0-or-later",
|
|
6
6
|
"type": "module",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
|
-
"url": "git+https://github.com/plexus-ms/
|
|
19
|
+
"url": "git+https://github.com/plexus-ms/primitives.git",
|
|
20
20
|
"directory": "packages/lib"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|