@plexus-ms/lib 0.101.0 → 0.102.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/index.d.ts CHANGED
@@ -19,4 +19,5 @@ export { type CompendiumCheck, checkCompendium, extractRequirements, MAP_PAGE, m
19
19
  export { preflightSelf, SELF_PACKAGE } from './self.ts';
20
20
  export { type PublishWait, type ShipOptions, type ShipResult, ship } from './ship.ts';
21
21
  export { isTrainVersion, latestTag, nextMinor, PHASES, PRIMITIVES, phasesOf, preflightForge, preflightRelease, readTrain, resolveVersion, TRAIN_PACKAGES, TRAIN_REPOS, type Train, type TrainRepo, UPSTREAM, UsageError, } from './train.ts';
22
+ export { PRESETS, type UpdateOptions, update } from './update.ts';
22
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -27,4 +27,5 @@ export { checkCompendium, extractRequirements, MAP_PAGE, modulePages, scanPage,
27
27
  export { preflightSelf, SELF_PACKAGE } from "./self.js";
28
28
  export { ship } from "./ship.js";
29
29
  export { isTrainVersion, latestTag, nextMinor, PHASES, PRIMITIVES, phasesOf, preflightForge, preflightRelease, readTrain, resolveVersion, TRAIN_PACKAGES, TRAIN_REPOS, UPSTREAM, UsageError, } from "./train.js";
30
+ export { PRESETS, update } from "./update.js";
30
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,uDAAuD;AACvD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAA6B,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAIL,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EAGb,aAAa,EAGb,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,cAAc,EAAE,aAAa,EAAE,YAAY,EAAa,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAgB,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAmC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAGL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAe,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAiB,SAAS,EAA6B,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAGL,SAAS,EAET,MAAM,EACN,WAAW,GAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAa,GAAG,EAAa,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAEL,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EAGX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAuD,IAAI,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,cAAc,EACd,WAAW,EAGX,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6EAA6E;AAC7E,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,sEAAsE;AACtE,uDAAuD;AACvD,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,UAAU,EACV,KAAK,EACL,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAA6B,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAIL,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,aAAa,EAGb,aAAa,EAGb,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAiB,cAAc,EAAE,aAAa,EAAE,YAAY,EAAa,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAgB,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClH,OAAO,EAAmC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACtG,OAAO,EAGL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAkB,QAAQ,EAAe,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAiB,SAAS,EAA6B,MAAM,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC9F,OAAO,EAAoB,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAGL,SAAS,EAET,MAAM,EACN,WAAW,GAEZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAa,GAAG,EAAa,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAEL,eAAe,EACf,mBAAmB,EACnB,QAAQ,EACR,WAAW,EAGX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAuD,IAAI,EAAE,MAAM,WAAW,CAAC;AACtF,OAAO,EACL,cAAc,EACd,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,cAAc,EACd,WAAW,EAGX,QAAQ,EACR,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAsB,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type Consumer } from './consumers.ts';
1
2
  import type { Context } from './context.ts';
2
3
  export interface Summary {
3
4
  train: string;
@@ -18,5 +19,29 @@ export interface Summary {
18
19
  }
19
20
  /** True when nothing in the summary needs a human but the pull requests. */
20
21
  export declare const isClean: (s: Summary) => boolean;
22
+ export declare const emptySummary: (train: string, preview: boolean) => Summary;
23
+ export declare const trainBranch: (train: string) => string;
24
+ /** How a consumer takes the train: the knobs propagate and update set differently. */
25
+ export interface Take {
26
+ train: string;
27
+ /**
28
+ * Preview from the local preset checkouts under this upstream directory at
29
+ * main (propagate's dry run), instead of the published template.
30
+ */
31
+ previewFrom?: string;
32
+ /** The template ref copier updates to; unset, copier takes the newest tag, which the train just cut. */
33
+ ref?: string;
34
+ /** Who opened the pull request, named in its body. */
35
+ opener: string;
36
+ }
21
37
  export declare function propagate(ctx: Context, workspace: string, train: string): Promise<Summary>;
38
+ /**
39
+ * One consumer takes the train in `dir`, a scratch checkout of its branch:
40
+ * every site updated, the lockfile refreshed, the workflow refs bumped, then
41
+ * the commit, the branch and the pull request.
42
+ */
43
+ export declare function takeTrain(ctx: Context, consumer: Consumer, dir: string, take: Take, summary: Summary): Promise<void>;
44
+ /** The URL of the open pull request from the train branch against the consumer's branch, if any. */
45
+ export declare function openPullUrl(ctx: Context, consumer: Consumer, dir: string, train: string): Promise<string>;
46
+ export declare const detail: (error: unknown) => string;
22
47
  //# sourceMappingURL=propagate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"propagate.d.ts","sourceRoot":"","sources":["../src/propagate.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6HAA6H;IAC7H,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,4EAA4E;AAC5E,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,OACyC,CAAC;AAgB/E,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgDhG"}
1
+ {"version":3,"file":"propagate.d.ts","sourceRoot":"","sources":["../src/propagate.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,KAAK,QAAQ,EAA0C,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAO5C,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,6HAA6H;IAC7H,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iDAAiD;IACjD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,4EAA4E;AAC5E,eAAO,MAAM,OAAO,GAAI,GAAG,OAAO,KAAG,OACyC,CAAC;AAE/E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,SAAS,OAAO,KAAG,OAQ7D,CAAC;AAEH,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAA2B,CAAC;AAExE,sFAAsF;AACtF,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wGAAwG;IACxG,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;CAChB;AAaD,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqChG;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,iBAM1G;AAgKD,oGAAoG;AACpG,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG/G;AAwFD,eAAO,MAAM,MAAM,GAAI,OAAO,OAAO,KAAG,MAIvC,CAAC"}
package/dist/propagate.js CHANGED
@@ -6,7 +6,7 @@
6
6
  // version plx pins (copier.ts) at every site (the repo root, then its apps/*),
7
7
  // the marker is synced to the answers file, the lockfile refreshed where
8
8
  // manifests moved, the hand-owned workflows pinned to the train; then one
9
- // commit, pushed as `train/<version>`, and a pull request against the branch.
9
+ // commit, pushed as `plexus/<version>`, and a pull request against the branch.
10
10
  // A conflict is committed with its markers and reported, and the pull request
11
11
  // is opened all the same: that is where it gets resolved. Propagation never
12
12
  // aborts the run: a failing or conflicting consumer is recorded and the rest
@@ -19,6 +19,9 @@
19
19
  // through `Context.stage`: performed in every mode, since nothing the operator
20
20
  // owns changes.
21
21
  //
22
+ // The per-consumer work (`takeTrain`) is shared with `update` (update.ts), the
23
+ // same pull request opened from inside the consumer itself.
24
+ //
22
25
  // plx propagate ~/dev # to the current train
23
26
  // plx -n propagate ~/dev # preview in scratch clones
24
27
  // plx -y propagate ~/dev --train 0.66.0 # unattended: copier takes defaults
@@ -32,28 +35,28 @@ import { run, write } from "./plan.js";
32
35
  import { TRAIN_REPOS, UPSTREAM } from "./train.js";
33
36
  /** True when nothing in the summary needs a human but the pull requests. */
34
37
  export const isClean = (s) => s.conflicted.length === 0 && s.failed.length === 0 && s.skipped.length === 0;
35
- const BASE_TAG = 'ship-base';
36
- const trainBranch = (train) => `train/${train}`;
38
+ export const emptySummary = (train, preview) => ({
39
+ train,
40
+ preview,
41
+ clean: [],
42
+ conflicted: [],
43
+ failed: [],
44
+ skipped: [],
45
+ pulls: [],
46
+ });
47
+ export const trainBranch = (train) => `plexus/${train}`;
37
48
  /**
38
- * copier at the version plx pins, through mise, with the clone's own mise
49
+ * copier at the version plx pins, through mise, with the consumer's own mise
39
50
  * config ignored: copier needs no project tool, and a root `mise.toml` left
40
51
  * with conflict markers by the root site's update would otherwise fail every
41
- * later mise call in the clone, the apps' updates first of all.
52
+ * later mise call in the directory, the apps' updates first of all.
42
53
  */
43
- const copierIn = (clone, args) => [
54
+ const copierIn = (dir, args) => [
44
55
  'env',
45
- [`MISE_IGNORED_CONFIG_PATHS=${clone}`, 'mise', ...copierVia(args)],
56
+ [`MISE_IGNORED_CONFIG_PATHS=${dir}`, 'mise', ...copierVia(args)],
46
57
  ];
47
58
  export async function propagate(ctx, workspace, train) {
48
- const summary = {
49
- train,
50
- preview: ctx.dryRun,
51
- clean: [],
52
- conflicted: [],
53
- failed: [],
54
- skipped: [],
55
- pulls: [],
56
- };
59
+ const summary = emptySummary(train, ctx.dryRun);
57
60
  const upstream = join(workspace, UPSTREAM);
58
61
  const tree = await overview(ctx, workspace);
59
62
  const upstreamDir = tree.children.find((c) => c.path === upstream);
@@ -68,6 +71,7 @@ export async function propagate(ctx, workspace, train) {
68
71
  for (const preset of presets)
69
72
  if (!consumers.some((c) => c.sites.some((s) => s.preset === preset)))
70
73
  ctx.say(`• no consumers of ${presetSource(preset)} found under ${workspace}`);
74
+ const take = { train, opener: '`plx ship`', ...(ctx.dryRun ? { previewFrom: upstream } : {}) };
71
75
  const scratch = (await ctx.stage(run('mktemp', ['-d'])))?.trim() ?? '';
72
76
  try {
73
77
  for (const consumer of consumers) {
@@ -77,18 +81,13 @@ export async function propagate(ctx, workspace, train) {
77
81
  ctx.say(`→ ${consumer.rel}: clone ${consumer.origin} at ${consumer.branch}`);
78
82
  try {
79
83
  await ctx.stage(run('git', ['clone', '--quiet', '--branch', consumer.branch, consumer.origin, clone]));
80
- await ctx.stage(run('git', ['tag', BASE_TAG], { cwd: clone }));
81
84
  }
82
85
  catch (error) {
83
86
  ctx.say(` ✗ FAILED — clone${detail(error)}`);
84
87
  summary.failed.push(consumer.rel);
85
88
  continue;
86
89
  }
87
- for (const site of consumer.sites)
88
- await updateSite(ctx, consumer, site, clone, upstream, summary);
89
- await refreshLockfile(ctx, consumer, clone, summary);
90
- await bumpConsumerRefs(ctx, consumer, clone, train);
91
- await openPull(ctx, consumer, clone, train, summary);
90
+ await takeTrain(ctx, consumer, clone, take, summary);
92
91
  }
93
92
  }
94
93
  finally {
@@ -97,9 +96,22 @@ export async function propagate(ctx, workspace, train) {
97
96
  }
98
97
  return summary;
99
98
  }
99
+ /**
100
+ * One consumer takes the train in `dir`, a scratch checkout of its branch:
101
+ * every site updated, the lockfile refreshed, the workflow refs bumped, then
102
+ * the commit, the branch and the pull request.
103
+ */
104
+ export async function takeTrain(ctx, consumer, dir, take, summary) {
105
+ const base = (await ctx.read('git', ['rev-parse', 'HEAD'], { cwd: dir })).trim();
106
+ for (const site of consumer.sites)
107
+ await updateSite(ctx, consumer, site, dir, take, summary);
108
+ await refreshLockfile(ctx, consumer, dir, base, summary);
109
+ await bumpConsumerRefs(ctx, consumer, dir, take.train);
110
+ await openPull(ctx, consumer, dir, take, summary);
111
+ }
100
112
  // Preview commits are plain plumbing on a throwaway clone: unsigned, no hooks, a stand-in identity.
101
- const previewCommit = (ctx, clone, message) => ctx
102
- .stage(run('git', ['add', '-A'], { cwd: clone }))
113
+ const previewCommit = (ctx, dir, message) => ctx
114
+ .stage(run('git', ['add', '-A'], { cwd: dir }))
103
115
  .then(() => ctx.stage(run('git', [
104
116
  '-c',
105
117
  'commit.gpgsign=false',
@@ -113,37 +125,39 @@ const previewCommit = (ctx, clone, message) => ctx
113
125
  '--allow-empty',
114
126
  '-m',
115
127
  message,
116
- ], { cwd: clone })));
117
- async function updateSite(ctx, consumer, site, clone, upstream, summary) {
118
- const target = join(clone, relative(consumer.path, site.path));
119
- const localPreset = join(upstream, site.preset);
128
+ ], { cwd: dir })));
129
+ async function updateSite(ctx, consumer, site, dir, take, summary) {
130
+ const target = join(dir, relative(consumer.path, site.path));
120
131
  try {
121
- if (ctx.dryRun) {
132
+ if (take.previewFrom) {
133
+ const localPreset = join(take.previewFrom, site.preset);
122
134
  ctx.say(`→ ${site.rel}: copier update (preview from ${localPreset}@main)`);
123
- // Point the clone's answers at the local preset so the preview reads it;
124
- // copier refuses a dirty subproject, hence the commit.
135
+ // Point the answers at the local preset so the preview reads it; copier
136
+ // refuses a dirty subproject, hence the commit.
125
137
  const answers = await ctx.readFile(join(target, ANSWERS_FILE));
126
138
  await ctx.stage(write(join(target, ANSWERS_FILE), answers.replace(/^_src_path: .*$/m, `_src_path: ${localPreset}`)));
127
- await previewCommit(ctx, clone, `plx preview: ${site.rel} reads ${localPreset} from the local checkout`);
128
- await ctx.stage(run(...copierIn(clone, [
129
- 'update',
130
- '--skip-answered',
131
- '--trust',
132
- '--defaults',
133
- '--skip-tasks',
134
- '--vcs-ref',
135
- 'main',
136
- ]), {
137
- cwd: target,
138
- }));
139
+ await previewCommit(ctx, dir, `plx preview: ${site.rel} reads ${localPreset} from the local checkout`);
140
+ await ctx.stage(run(...copierIn(dir, ['update', '--skip-answered', '--trust', '--defaults', '--skip-tasks', '--vcs-ref', 'main']), { cwd: target }));
139
141
  }
140
142
  else {
141
- ctx.say(`→ ${site.rel}: copier update`);
143
+ ctx.say(`→ ${site.rel}: copier update${take.ref ? ` to ${take.ref}` : ''}`);
142
144
  // Template tasks (mise install, hook setup) serve a developer's checkout,
143
145
  // not a pull request. Unattended, a new question takes its default; on a
144
- // terminal copier asks.
145
- const args = ['update', '--skip-answered', '--trust', '--skip-tasks', ...(ctx.yes ? ['--defaults'] : [])];
146
- await ctx.apply([run(...copierIn(clone, args), { cwd: target, interactive: true })]);
146
+ // terminal copier asks. A dry run previews on the scratch checkout, so
147
+ // the step is staged there rather than only announced.
148
+ const args = [
149
+ 'update',
150
+ '--skip-answered',
151
+ '--trust',
152
+ '--skip-tasks',
153
+ ...(take.ref ? ['--vcs-ref', take.ref] : []),
154
+ ...(ctx.yes || ctx.dryRun ? ['--defaults'] : []),
155
+ ];
156
+ const step = run(...copierIn(dir, args), { cwd: target, interactive: !ctx.dryRun });
157
+ if (ctx.dryRun)
158
+ await ctx.stage(step);
159
+ else
160
+ await ctx.apply([step]);
147
161
  }
148
162
  }
149
163
  catch (error) {
@@ -176,15 +190,15 @@ async function updateSite(ctx, consumer, site, clone, upstream, summary) {
176
190
  }
177
191
  for (const line of status.split('\n').filter(Boolean))
178
192
  ctx.say(` ${line}`);
179
- // Each preview site is committed so the next site's answers rewrite starts
180
- // from a clean tree. The real run stages instead: a conflict leaves unmerged
181
- // index entries, and copier's own git plumbing (`git write-tree`) refuses an
182
- // index with those, so the next site's update would fail; staged, the
183
- // markers are in the tree and the index is whole.
184
- if (ctx.dryRun)
185
- await previewCommit(ctx, clone, `plx preview: ${site.rel} updated`);
193
+ // Each preview-from-local site is committed so the next site's answers
194
+ // rewrite starts from a clean tree. Otherwise the site is staged: a conflict
195
+ // leaves unmerged index entries, and copier's own git plumbing (`git
196
+ // write-tree`) refuses an index with those, so the next site's update would
197
+ // fail; staged, the markers are in the tree and the index is whole.
198
+ if (take.previewFrom)
199
+ await previewCommit(ctx, dir, `plx preview: ${site.rel} updated`);
186
200
  else
187
- await ctx.stage(run('git', ['add', '-A'], { cwd: clone }));
201
+ await ctx.stage(run('git', ['add', '-A'], { cwd: dir }));
188
202
  }
189
203
  /** The marker's `plexus` follows the answers file's `_commit` after an update (bookkeeping.ts). */
190
204
  async function syncSiteMarker(ctx, site, target) {
@@ -200,20 +214,20 @@ async function syncSiteMarker(ctx, site, target) {
200
214
  ctx.say(` marker: plexus → ${commit} in ${site.rel}/${MARKER_FILE}`);
201
215
  await ctx.stage(write(join(target, MARKER_FILE), synced));
202
216
  }
203
- /** Refresh the lockfile when the updates touched a manifest (`mise exec` trusts the clone's config on its own). */
204
- async function refreshLockfile(ctx, consumer, clone, summary) {
205
- if ((await ctx.readFile(join(clone, 'pnpm-workspace.yaml')).catch(() => undefined)) === undefined)
217
+ /** Refresh the lockfile when the updates touched a manifest (`mise exec` trusts the directory's own config). */
218
+ async function refreshLockfile(ctx, consumer, dir, base, summary) {
219
+ if ((await ctx.readFile(join(dir, 'pnpm-workspace.yaml')).catch(() => undefined)) === undefined)
206
220
  return;
207
221
  const manifests = ['*package.json', 'pnpm-workspace.yaml'];
208
222
  const unchanged = await ctx
209
- .read('git', ['diff', '--quiet', BASE_TAG, '--', ...manifests], { cwd: clone })
223
+ .read('git', ['diff', '--quiet', base, '--', ...manifests], { cwd: dir })
210
224
  .then(() => true)
211
225
  .catch(() => false);
212
226
  if (unchanged)
213
227
  return;
214
228
  ctx.say(`→ ${consumer.rel}: pnpm install (manifests changed)`);
215
229
  try {
216
- await ctx.apply([run('mise', ['exec', '--', 'pnpm', 'install', '--reporter=silent'], { cwd: clone })]);
230
+ await ctx.apply([run('mise', ['exec', '--', 'pnpm', 'install', '--reporter=silent'], { cwd: dir })]);
217
231
  }
218
232
  catch (error) {
219
233
  ctx.say(` ✗ pnpm install failed${detail(error)}`);
@@ -221,53 +235,63 @@ async function refreshLockfile(ctx, consumer, clone, summary) {
221
235
  }
222
236
  }
223
237
  /** Consumers' hand-owned workflows pin the reusable workflows by tag; lockstep them to the train. */
224
- async function bumpConsumerRefs(ctx, consumer, clone, train) {
225
- const dir = join(clone, '.github', 'workflows');
226
- const entries = await ctx.readDir(dir).catch(() => []);
238
+ async function bumpConsumerRefs(ctx, consumer, dir, train) {
239
+ const workflows = join(dir, '.github', 'workflows');
240
+ const entries = await ctx.readDir(workflows).catch(() => []);
227
241
  const files = entries
228
242
  .filter((e) => !e.directory && /\.ya?ml$/.test(e.name))
229
243
  .map((e) => e.name)
230
244
  .sort();
231
245
  for (const f of files) {
232
- const text = await ctx.readFile(join(dir, f));
246
+ const text = await ctx.readFile(join(workflows, f));
233
247
  if (!text.includes(WORKFLOW_REF))
234
248
  continue;
235
249
  const bumped = bumpWorkflowRefs(text, train);
236
250
  if (bumped === text)
237
251
  continue;
238
252
  ctx.say(`→ ${consumer.rel}: ${f} workflow refs → @${train}`);
239
- await ctx.stage(write(join(dir, f), bumped));
253
+ await ctx.stage(write(join(workflows, f), bumped));
240
254
  }
241
255
  }
256
+ /** The URL of the open pull request from the train branch against the consumer's branch, if any. */
257
+ export async function openPullUrl(ctx, consumer, dir, train) {
258
+ const args = ['pr', 'list', '--head', trainBranch(train), '--base', consumer.branch, '--state', 'open'];
259
+ return (await ctx.read('gh', [...args, '--json', 'url', '--jq', '.[0].url'], { cwd: dir }).catch(() => '')).trim();
260
+ }
242
261
  /**
243
262
  * One commit, the train branch pushed, and a pull request against the
244
263
  * consumer's branch: opened once, found again on a re-run. The branch is plx's
245
- * own, so a re-run may move it, with a lease on what it fetched.
264
+ * own, so a re-run may move it, with a lease on what it fetched. Hooks are
265
+ * skipped: the checks are the pull request's job, and the mount's own
266
+ * checkout may carry the repo's hooks.
246
267
  */
247
- async function openPull(ctx, consumer, clone, train, summary) {
268
+ async function openPull(ctx, consumer, dir, take, summary) {
269
+ const { train } = take;
248
270
  const branch = trainBranch(train);
249
271
  if (ctx.dryRun) {
250
272
  ctx.say(` (preview) ${consumer.rel}: would commit, push ${branch} and open a pull request against ${consumer.branch}`);
251
273
  return;
252
274
  }
253
- if ((await ctx.read('git', ['status', '--porcelain'], { cwd: clone })).trim() === '') {
275
+ if ((await ctx.read('git', ['status', '--porcelain'], { cwd: dir })).trim() === '') {
254
276
  ctx.say(`• ${consumer.rel}: nothing changed — no pull request`);
255
277
  return;
256
278
  }
257
- const head = `${consumer.origin} ${branch}`;
279
+ const head = `${consumer.origin ?? 'origin'} ${branch}`;
258
280
  try {
259
281
  await ctx.apply([
260
- run('git', ['add', '-A'], { cwd: clone }),
261
- run('git', ['commit', '--quiet', '--no-verify', '-m', `chore: train ${train}`], { cwd: clone }),
282
+ run('git', ['add', '-A'], { cwd: dir }),
283
+ run('git', ['commit', '--quiet', '--no-verify', '-m', `chore: train ${train}`], { cwd: dir }),
262
284
  ]);
263
285
  // The lease needs the remote-tracking ref; a fresh clone has none for a branch it did not check out.
264
286
  await ctx
265
287
  .read('git', ['fetch', '--quiet', 'origin', `+refs/heads/${branch}:refs/remotes/origin/${branch}`], {
266
- cwd: clone,
288
+ cwd: dir,
267
289
  })
268
290
  .catch(() => '');
269
291
  await ctx.apply([
270
- run('git', ['push', '--quiet', '--force-with-lease', 'origin', `HEAD:refs/heads/${branch}`], { cwd: clone }),
292
+ run('git', ['push', '--quiet', '--no-verify', '--force-with-lease', 'origin', `HEAD:refs/heads/${branch}`], {
293
+ cwd: dir,
294
+ }),
271
295
  ]);
272
296
  }
273
297
  catch (error) {
@@ -275,22 +299,7 @@ async function openPull(ctx, consumer, clone, train, summary) {
275
299
  summary.failed.push(consumer.rel);
276
300
  return;
277
301
  }
278
- const existing = (await ctx
279
- .read('gh', [
280
- 'pr',
281
- 'list',
282
- '--head',
283
- branch,
284
- '--base',
285
- consumer.branch,
286
- '--state',
287
- 'open',
288
- '--json',
289
- 'url',
290
- '--jq',
291
- '.[0].url',
292
- ], { cwd: clone })
293
- .catch(() => '')).trim();
302
+ const existing = await openPullUrl(ctx, consumer, dir, train);
294
303
  if (existing) {
295
304
  ctx.say(`• ${consumer.rel}: pull request updated: ${existing}`);
296
305
  summary.pulls.push(existing);
@@ -303,7 +312,7 @@ async function openPull(ctx, consumer, clone, train, summary) {
303
312
  conflicted.length > 0
304
313
  ? `Conflicts to resolve, committed with their markers: ${conflicted.join(', ')}.`
305
314
  : 'Merged clean at every site.',
306
- 'Opened by `plx ship`.',
315
+ `Opened by ${take.opener}.`,
307
316
  ].join('\n\n');
308
317
  try {
309
318
  await ctx.apply([
@@ -318,7 +327,7 @@ async function openPull(ctx, consumer, clone, train, summary) {
318
327
  `chore: train ${train}`,
319
328
  '--body',
320
329
  body,
321
- ], { cwd: clone }),
330
+ ], { cwd: dir }),
322
331
  ]);
323
332
  }
324
333
  catch (error) {
@@ -326,28 +335,11 @@ async function openPull(ctx, consumer, clone, train, summary) {
326
335
  summary.failed.push(consumer.rel);
327
336
  return;
328
337
  }
329
- const url = (await ctx
330
- .read('gh', [
331
- 'pr',
332
- 'list',
333
- '--head',
334
- branch,
335
- '--base',
336
- consumer.branch,
337
- '--state',
338
- 'open',
339
- '--json',
340
- 'url',
341
- '--jq',
342
- '.[0].url',
343
- ], {
344
- cwd: clone,
345
- })
346
- .catch(() => '')).trim();
338
+ const url = await openPullUrl(ctx, consumer, dir, train);
347
339
  ctx.say(`• ${consumer.rel}: pull request opened${url ? `: ${url}` : ''}`);
348
340
  summary.pulls.push(url || `${consumer.rel} ${branch}`);
349
341
  }
350
- const detail = (error) => {
342
+ export const detail = (error) => {
351
343
  const message = error instanceof Error ? error.message : String(error);
352
344
  const last = message.trim().split('\n').at(-1) ?? '';
353
345
  return last && !/exited with/.test(last) ? `: ${last}` : '';
@@ -1 +1 @@
1
- {"version":3,"file":"propagate.js","sourceRoot":"","sources":["../src/propagate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propagate.js","sourceRoot":"","sources":["../src/propagate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Context } from './context.ts';
2
+ import { type Summary } from './propagate.ts';
3
+ /** The train repos that are templates: what a repo can be generated from. */
4
+ export declare const PRESETS: readonly string[];
5
+ export interface UpdateOptions {
6
+ /** The repo to update: a checkout whose root is a site of a repo preset. */
7
+ repo: string;
8
+ /** The train to take; default: the preset's newest release. */
9
+ train?: string;
10
+ }
11
+ export declare function update(ctx: Context, options: UpdateOptions): Promise<Summary>;
12
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAK5C,OAAO,EAAqC,KAAK,OAAO,EAA0B,MAAM,gBAAgB,CAAC;AAGzG,6EAA6E;AAC7E,eAAO,MAAM,OAAO,EAAE,SAAS,MAAM,EAAuD,CAAC;AAE7F,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAoEnF"}
package/dist/update.js ADDED
@@ -0,0 +1,107 @@
1
+ // update: a repo generated from the presets takes the train itself (§ 3
2
+ // PLX-Updates), from inside the repo: the same pull request `propagate` opens
3
+ // from the maintainers' workspace, opened by the tenant's own CI or by hand.
4
+ //
5
+ // The newest train is the preset's newest GitHub release (every train tag is
6
+ // locked by one, § 1.6 PLX), asked of the forge as an operator would
7
+ // (`gh api repos/plexus-ms/<preset>/releases/latest`). The work happens in a
8
+ // worktree of origin's branch, never in the checkout: a developer's branch and
9
+ // edits stay as they are, and in CI the worktree shares the checkout's
10
+ // credentials, so the push and the pull request need no second token. Then
11
+ // `takeTrain` (propagate.ts): copier update at every site, marker, lockfile,
12
+ // workflow refs, one commit on `plexus/<version>`, one pull request.
13
+ //
14
+ // The train is pulled once per repo: a `plexus/<version>` branch already on
15
+ // origin, from an earlier run, from `plx ship`, or from a human resolving its
16
+ // conflicts, is left alone, so a daily run never moves a branch somebody is
17
+ // working on; deleting the branch is how a pull is redone. A repo whose every
18
+ // site already records the train does nothing at all.
19
+ //
20
+ // plx update # this repo, to the newest train
21
+ // plx -n update # preview in a worktree, push nothing
22
+ // plx -y update --train 0.102.0 # unattended, an explicit train
23
+ import { basename, join } from 'node:path';
24
+ import { findConsumers, presetSource } from "./consumers.js";
25
+ import { ANSWERS_FILE, parseAnswers } from "./copier.js";
26
+ import { compareTrains } from "./doctor.js";
27
+ import { overview } from "./overview.js";
28
+ import { run } from "./plan.js";
29
+ import { detail, emptySummary, openPullUrl, takeTrain, trainBranch } from "./propagate.js";
30
+ import { isTrainVersion, preflightForge, TRAIN_REPOS, UsageError } from "./train.js";
31
+ /** The train repos that are templates: what a repo can be generated from. */
32
+ export const PRESETS = TRAIN_REPOS.filter((r) => r.startsWith('preset-'));
33
+ export async function update(ctx, options) {
34
+ const { repo } = options;
35
+ const name = basename(repo);
36
+ if (options.train !== undefined && !isTrainVersion(options.train))
37
+ throw new UsageError(`'${options.train}' is not plain semver (X.Y.Z, no v)`);
38
+ const tree = await overview(ctx, repo);
39
+ const consumer = (await findConsumers(ctx, tree, PRESETS)).find((c) => c.path === tree.path);
40
+ if (!consumer)
41
+ throw new Error(`${repo} is not a repo generated from the presets: no ${ANSWERS_FILE} at its root naming one of ${PRESETS.map(presetSource).join(', ')}`);
42
+ if (consumer.skipped)
43
+ throw new Error(`${name}: ${consumer.skipped}`);
44
+ // Sites are named from the repo, not from a workspace.
45
+ consumer.rel = name;
46
+ for (const s of consumer.sites)
47
+ s.rel = s.rel === '.' ? name : join(name, s.rel);
48
+ const root = consumer.sites.find((s) => s.path === consumer.path);
49
+ if (!root)
50
+ throw new Error(`${name}: its root is not a site of a repo preset`);
51
+ await preflightForge(ctx);
52
+ const train = options.train ?? (await newestTrain(ctx, root.preset));
53
+ const summary = emptySummary(train, ctx.dryRun);
54
+ const recorded = await Promise.all(consumer.sites.map(async (s) => parseAnswers(await ctx.readFile(join(s.path, ANSWERS_FILE))).commit));
55
+ if (recorded.every((c) => c === train)) {
56
+ ctx.say(`• ${name}: already at ${train}`);
57
+ return summary;
58
+ }
59
+ // copier refuses a downgrade; say so before a worktree is made for nothing.
60
+ const past = recorded.find((c) => c && isTrainVersion(c) && compareTrains(c, train) > 0);
61
+ if (past)
62
+ throw new Error(`${name} is at ${past}, past ${train}; a repo is never taken back to an older train`);
63
+ const branch = trainBranch(train);
64
+ const onOrigin = await ctx
65
+ .read('git', ['ls-remote', '--exit-code', '--heads', 'origin', `refs/heads/${branch}`], { cwd: repo })
66
+ .then(() => true)
67
+ .catch(() => false);
68
+ if (onOrigin) {
69
+ const url = await openPullUrl(ctx, consumer, repo, train);
70
+ ctx.say(`• ${name}: ${branch} is already on origin${url ? ` (${url})` : ''} — nothing to do; delete the branch to pull the train again`);
71
+ if (url)
72
+ summary.pulls.push(url);
73
+ return summary;
74
+ }
75
+ const scratch = (await ctx.stage(run('mktemp', ['-d'])))?.trim() ?? '';
76
+ const dir = join(scratch, name);
77
+ try {
78
+ ctx.say(`→ ${name}: worktree of origin/${consumer.branch}`);
79
+ try {
80
+ await ctx.stage(run('git', ['fetch', '--quiet', 'origin', consumer.branch], { cwd: repo }));
81
+ await ctx.stage(run('git', ['worktree', 'add', '--quiet', '--detach', dir, `origin/${consumer.branch}`], { cwd: repo }));
82
+ }
83
+ catch (error) {
84
+ ctx.say(` ✗ FAILED — worktree of origin/${consumer.branch}${detail(error)}`);
85
+ summary.failed.push(name);
86
+ return summary;
87
+ }
88
+ await takeTrain(ctx, consumer, dir, { train, ref: train, opener: '`plx update`' }, summary);
89
+ }
90
+ finally {
91
+ await ctx.stage(run('git', ['worktree', 'remove', '--force', dir], { cwd: repo })).catch(() => undefined);
92
+ if (scratch)
93
+ await ctx.stage(run('rm', ['-rf', scratch]));
94
+ }
95
+ return summary;
96
+ }
97
+ /** The preset's newest release names the newest train (§ 1.6 PLX: every train tag has one). */
98
+ async function newestTrain(ctx, preset) {
99
+ const source = presetSource(preset).replace(/^gh:/, '');
100
+ const tag = (await ctx.read('gh', ['api', `repos/${source}/releases/latest`, '--jq', '.tag_name']).catch(() => '')).trim();
101
+ if (!tag)
102
+ throw new Error(`no release of ${source} found — pass the train explicitly (--train <version>)`);
103
+ if (!isTrainVersion(tag))
104
+ throw new Error(`the newest release of ${source} is '${tag}', not a train`);
105
+ return tag;
106
+ }
107
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.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.101.0",
3
+ "version": "0.102.0",
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",