@telorun/cli 0.88.0 → 0.90.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/bundle/built-layers.d.ts +36 -0
- package/dist/bundle/built-layers.d.ts.map +1 -0
- package/dist/bundle/built-layers.js +84 -0
- package/dist/bundle/built-layers.js.map +1 -0
- package/dist/bundle/module-payload.d.ts +30 -15
- package/dist/bundle/module-payload.d.ts.map +1 -1
- package/dist/bundle/module-payload.js +118 -21
- package/dist/bundle/module-payload.js.map +1 -1
- package/dist/bundle/partition-layers.d.ts +13 -6
- package/dist/bundle/partition-layers.d.ts.map +1 -1
- package/dist/bundle/partition-layers.js +49 -7
- package/dist/bundle/partition-layers.js.map +1 -1
- package/dist/bundle/payload-drift.d.ts +1 -1
- package/dist/bundle/payload-drift.d.ts.map +1 -1
- package/dist/bundle/select-files.d.ts +11 -2
- package/dist/bundle/select-files.d.ts.map +1 -1
- package/dist/bundle/select-files.js +23 -8
- package/dist/bundle/select-files.js.map +1 -1
- package/dist/bundle/staged-files.d.ts +43 -0
- package/dist/bundle/staged-files.d.ts.map +1 -0
- package/dist/bundle/staged-files.js +158 -0
- package/dist/bundle/staged-files.js.map +1 -0
- package/dist/bundle/warm-layers.d.ts +11 -6
- package/dist/bundle/warm-layers.d.ts.map +1 -1
- package/dist/bundle/warm-layers.js +26 -10
- package/dist/bundle/warm-layers.js.map +1 -1
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +7 -1
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/module.d.ts.map +1 -1
- package/dist/commands/module.js +21 -7
- package/dist/commands/module.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +5 -1
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/release.d.ts +8 -6
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +168 -69
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +14 -6
- package/dist/commands/run.js.map +1 -1
- package/dist/controller-runtime.d.ts +25 -3
- package/dist/controller-runtime.d.ts.map +1 -1
- package/dist/controller-runtime.js +39 -9
- package/dist/controller-runtime.js.map +1 -1
- package/dist/env-files.d.ts +23 -8
- package/dist/env-files.d.ts.map +1 -1
- package/dist/env-files.js +77 -17
- package/dist/env-files.js.map +1 -1
- package/dist/release/apply-plan.d.ts +2 -1
- package/dist/release/apply-plan.d.ts.map +1 -1
- package/dist/release/apply-plan.js +8 -4
- package/dist/release/apply-plan.js.map +1 -1
- package/dist/release/cargo-toml.d.ts +17 -0
- package/dist/release/cargo-toml.d.ts.map +1 -0
- package/dist/release/cargo-toml.js +253 -0
- package/dist/release/cargo-toml.js.map +1 -0
- package/dist/release/crate-inputs.d.ts +41 -0
- package/dist/release/crate-inputs.d.ts.map +1 -0
- package/dist/release/crate-inputs.js +407 -0
- package/dist/release/crate-inputs.js.map +1 -0
- package/dist/release/evidence.d.ts +13 -17
- package/dist/release/evidence.d.ts.map +1 -1
- package/dist/release/evidence.js +26 -30
- package/dist/release/evidence.js.map +1 -1
- package/dist/release/stage.d.ts +61 -0
- package/dist/release/stage.d.ts.map +1 -0
- package/dist/release/stage.js +506 -0
- package/dist/release/stage.js.map +1 -0
- package/dist/release/targets.d.ts +60 -0
- package/dist/release/targets.d.ts.map +1 -0
- package/dist/release/targets.js +94 -0
- package/dist/release/targets.js.map +1 -0
- package/dist/release/workspace.d.ts +17 -5
- package/dist/release/workspace.d.ts.map +1 -1
- package/dist/release/workspace.js +89 -13
- package/dist/release/workspace.js.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where each module publishes, resolved.
|
|
3
|
+
*
|
|
4
|
+
* The cascade is per module, because a workspace may declare a base per subtree:
|
|
5
|
+
* the entry's `registry:` → the `release:` block's → `--registry` →
|
|
6
|
+
* `TELO_OCI_REGISTRY` → the base that module's own ledger entry recorded.
|
|
7
|
+
*
|
|
8
|
+
* **The ledger is last, and that is a change.** It used to win over the flag and
|
|
9
|
+
* the variable, and a disagreement threw before any evidence was collected. A
|
|
10
|
+
* workspace that authors its destination has said where it publishes, and a
|
|
11
|
+
* cache of a past answer must not outrank it — so the ledger keeps its rung as a
|
|
12
|
+
* record for a workspace that authors nothing, and a disagreement between the
|
|
13
|
+
* two is reported per module by the planner rather than aborting the run.
|
|
14
|
+
*/
|
|
15
|
+
import { type Ledger, type ModuleKey, type ReleaseDiagnostic } from "@telorun/analyzer";
|
|
16
|
+
import type { ModulePayloadBuilder } from "../bundle/module-payload.js";
|
|
17
|
+
import type { ModuleTarget } from "./evidence.js";
|
|
18
|
+
import type { DiscoveredModule, Workspace } from "./workspace.js";
|
|
19
|
+
export interface RegistryRungs {
|
|
20
|
+
/** `--registry`. */
|
|
21
|
+
readonly flag?: string;
|
|
22
|
+
/** `TELO_OCI_REGISTRY`. */
|
|
23
|
+
readonly env?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ResolvedTargets {
|
|
26
|
+
readonly targets: ReadonlyMap<ModuleKey, ModuleTarget>;
|
|
27
|
+
readonly diagnostics: readonly ReleaseDiagnostic[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A module's publish destination: its registry base plus its own directory name.
|
|
31
|
+
*
|
|
32
|
+
* Identity is the ref, never `metadata.name` — this is the same rule the release
|
|
33
|
+
* job has always applied, lifted out of a shell script.
|
|
34
|
+
*
|
|
35
|
+
* This is the ROOT destination, which is a policy rather than a derivation:
|
|
36
|
+
* nothing in the graph can say which repo a module publishes to. The payload
|
|
37
|
+
* builder derives a SIBLING's from it instead of re-applying this rule, so the
|
|
38
|
+
* ref an artifact carries and the destination its dependency is pushed to are
|
|
39
|
+
* the same string by construction — and where those two answers disagree,
|
|
40
|
+
* `checkImportDestinations` says so before a payload is built.
|
|
41
|
+
*/
|
|
42
|
+
export declare function destinationFor(registry: string, module: DiscoveredModule): string;
|
|
43
|
+
export declare function resolveTargets(workspace: Workspace, ledger: Ledger, rungs: RegistryRungs): ResolvedTargets;
|
|
44
|
+
export interface ImportGraph {
|
|
45
|
+
/** In-repo modules each module imports by relative path. */
|
|
46
|
+
readonly imports: ReadonlyMap<ModuleKey, readonly ModuleKey[]>;
|
|
47
|
+
readonly diagnostics: readonly ReleaseDiagnostic[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The in-repo import edges, and whether every one of them agrees about where its
|
|
51
|
+
* target publishes.
|
|
52
|
+
*
|
|
53
|
+
* Reads manifest TEXT and nothing else — no payload, no claim on the shared
|
|
54
|
+
* builder. Both properties are load-bearing rather than incidental: the claim is
|
|
55
|
+
* what the payload builder refuses on, so a check that ran after one would never
|
|
56
|
+
* be reached, and its message speaks about a manifest published to two places
|
|
57
|
+
* rather than about the workspace file that said so.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readImportGraph(workspace: Workspace, targets: ReadonlyMap<ModuleKey, ModuleTarget>, builder: ModulePayloadBuilder): Promise<ImportGraph>;
|
|
60
|
+
//# sourceMappingURL=targets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/release/targets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,SAAS,EACd,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,oBAAoB;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAEjF;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,GACnB,eAAe,CA4BjB;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,SAAS,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC;CACpD;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,YAAY,CAAC,EAC7C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC,CA8BtB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where each module publishes, resolved.
|
|
3
|
+
*
|
|
4
|
+
* The cascade is per module, because a workspace may declare a base per subtree:
|
|
5
|
+
* the entry's `registry:` → the `release:` block's → `--registry` →
|
|
6
|
+
* `TELO_OCI_REGISTRY` → the base that module's own ledger entry recorded.
|
|
7
|
+
*
|
|
8
|
+
* **The ledger is last, and that is a change.** It used to win over the flag and
|
|
9
|
+
* the variable, and a disagreement threw before any evidence was collected. A
|
|
10
|
+
* workspace that authors its destination has said where it publishes, and a
|
|
11
|
+
* cache of a past answer must not outrank it — so the ledger keeps its rung as a
|
|
12
|
+
* record for a workspace that authors nothing, and a disagreement between the
|
|
13
|
+
* two is reported per module by the planner rather than aborting the run.
|
|
14
|
+
*/
|
|
15
|
+
import { checkDestinationCollisions, checkImportDestinations, } from "@telorun/analyzer";
|
|
16
|
+
import * as path from "node:path";
|
|
17
|
+
/**
|
|
18
|
+
* A module's publish destination: its registry base plus its own directory name.
|
|
19
|
+
*
|
|
20
|
+
* Identity is the ref, never `metadata.name` — this is the same rule the release
|
|
21
|
+
* job has always applied, lifted out of a shell script.
|
|
22
|
+
*
|
|
23
|
+
* This is the ROOT destination, which is a policy rather than a derivation:
|
|
24
|
+
* nothing in the graph can say which repo a module publishes to. The payload
|
|
25
|
+
* builder derives a SIBLING's from it instead of re-applying this rule, so the
|
|
26
|
+
* ref an artifact carries and the destination its dependency is pushed to are
|
|
27
|
+
* the same string by construction — and where those two answers disagree,
|
|
28
|
+
* `checkImportDestinations` says so before a payload is built.
|
|
29
|
+
*/
|
|
30
|
+
export function destinationFor(registry, module) {
|
|
31
|
+
return `${registry.replace(/\/+$/, "")}/${path.basename(module.dir)}`;
|
|
32
|
+
}
|
|
33
|
+
export function resolveTargets(workspace, ledger, rungs) {
|
|
34
|
+
const targets = new Map();
|
|
35
|
+
const diagnostics = [];
|
|
36
|
+
for (const module of workspace.modules) {
|
|
37
|
+
const registry = module.settings.registry ?? rungs.flag ?? rungs.env ?? ledger.modules.get(module.key)?.registry;
|
|
38
|
+
if (!registry) {
|
|
39
|
+
diagnostics.push({
|
|
40
|
+
severity: "error",
|
|
41
|
+
code: "NO_DESTINATION_KNOWN",
|
|
42
|
+
message: `${module.key} has no publish destination. Nothing has been published from it, its ` +
|
|
43
|
+
`entry declares no 'registry:' and neither does the 'release:' block — so declare one ` +
|
|
44
|
+
`in telo-workspace.yaml, pass --registry oci://host/org, or set TELO_OCI_REGISTRY.`,
|
|
45
|
+
});
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const base = registry.replace(/\/+$/, "");
|
|
49
|
+
targets.set(module.key, { registry: base, destination: destinationFor(base, module) });
|
|
50
|
+
}
|
|
51
|
+
diagnostics.push(...checkDestinationCollisions([...targets].map(([key, target]) => ({ key, destination: target.destination }))));
|
|
52
|
+
return { targets, diagnostics };
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The in-repo import edges, and whether every one of them agrees about where its
|
|
56
|
+
* target publishes.
|
|
57
|
+
*
|
|
58
|
+
* Reads manifest TEXT and nothing else — no payload, no claim on the shared
|
|
59
|
+
* builder. Both properties are load-bearing rather than incidental: the claim is
|
|
60
|
+
* what the payload builder refuses on, so a check that ran after one would never
|
|
61
|
+
* be reached, and its message speaks about a manifest published to two places
|
|
62
|
+
* rather than about the workspace file that said so.
|
|
63
|
+
*/
|
|
64
|
+
export async function readImportGraph(workspace, targets, builder) {
|
|
65
|
+
const byDir = new Map(workspace.modules.map((module) => [path.resolve(module.dir), module]));
|
|
66
|
+
const imports = new Map();
|
|
67
|
+
const edges = [];
|
|
68
|
+
for (const module of workspace.modules) {
|
|
69
|
+
const target = targets.get(module.key);
|
|
70
|
+
if (!target || module.artifactKind === "image") {
|
|
71
|
+
imports.set(module.key, []);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const reached = [];
|
|
75
|
+
for (const entry of await builder.relativeImportsOf(module.manifestPath, target.destination)) {
|
|
76
|
+
const sibling = byDir.get(path.resolve(path.dirname(entry.manifestPath)));
|
|
77
|
+
if (!sibling || sibling.key === module.key)
|
|
78
|
+
continue;
|
|
79
|
+
reached.push(sibling.key);
|
|
80
|
+
const assigned = targets.get(sibling.key);
|
|
81
|
+
if (assigned) {
|
|
82
|
+
edges.push({
|
|
83
|
+
from: module.key,
|
|
84
|
+
to: sibling.key,
|
|
85
|
+
derived: entry.ref,
|
|
86
|
+
assigned: assigned.destination,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
imports.set(module.key, reached);
|
|
91
|
+
}
|
|
92
|
+
return { imports, diagnostics: checkImportDestinations(edges) };
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/release/targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Finding the workspace, and the modules inside it.
|
|
3
3
|
*
|
|
4
4
|
* The Node half of `telo-workspace.yaml`: walking up from the cwd to find the
|
|
5
|
-
* marker, and filtering its
|
|
6
|
-
* marker is `workspace-marker.ts`'s — its location is a
|
|
7
|
-
* release concept — and parsing it is the analyzer's
|
|
5
|
+
* marker, and filtering the subtrees its `release.modules` names down to actual
|
|
6
|
+
* modules. Finding the marker is `workspace-marker.ts`'s — its location is a
|
|
7
|
+
* general anchor, not a release concept — and parsing it is the analyzer's
|
|
8
8
|
* (`release/workspace-config.ts`), so the editor reads the same file the same
|
|
9
9
|
* way.
|
|
10
10
|
*
|
|
@@ -19,8 +19,14 @@
|
|
|
19
19
|
* `version: 1.0.0` as a second module — and a listed directory holding no
|
|
20
20
|
* manifest simply is not one, which is how `apps/hub-web` and `apps/studio`
|
|
21
21
|
* fall out.
|
|
22
|
+
*
|
|
23
|
+
* **Selection and attribution are ONE decision.** The entry list is evaluated
|
|
24
|
+
* last-match-wins, so the entry that decides whether a directory is a module is
|
|
25
|
+
* the same entry whose settings that module resolves — which is why this reads
|
|
26
|
+
* the deciding index rather than asking for a filtered set and then guessing
|
|
27
|
+
* which pattern produced it.
|
|
22
28
|
*/
|
|
23
|
-
import { type ArtifactKind, type ModuleKey, type
|
|
29
|
+
import { type ArtifactKind, type ModuleKey, type ModuleSettings, type ReleaseDiagnostic, type ReleaseSettings } from "@telorun/analyzer";
|
|
24
30
|
export interface DiscoveredModule {
|
|
25
31
|
readonly key: ModuleKey;
|
|
26
32
|
/** Absolute path of the module's directory. */
|
|
@@ -31,12 +37,18 @@ export interface DiscoveredModule {
|
|
|
31
37
|
readonly name: string;
|
|
32
38
|
readonly version: string;
|
|
33
39
|
readonly artifactKind: ArtifactKind;
|
|
40
|
+
/** What the `release.modules` entry that claimed this module settles: the
|
|
41
|
+
* authored registry base (before the flag / env / ledger rungs) and the
|
|
42
|
+
* ignore list in force. */
|
|
43
|
+
readonly settings: ModuleSettings;
|
|
34
44
|
}
|
|
35
45
|
export interface Workspace {
|
|
36
46
|
/** Absolute path of the directory holding `telo-workspace.yaml` — the anchor
|
|
37
47
|
* every key, ledger entry and fragment path is relative to. */
|
|
38
48
|
readonly root: string;
|
|
39
|
-
readonly
|
|
49
|
+
readonly release: ReleaseSettings;
|
|
50
|
+
/** What the marker itself got wrong, in the plan's own vocabulary. */
|
|
51
|
+
readonly diagnostics: readonly ReleaseDiagnostic[];
|
|
40
52
|
readonly modules: readonly DiscoveredModule[];
|
|
41
53
|
}
|
|
42
54
|
export declare class WorkspaceNotFoundError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/release/workspace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/release/workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAY3B,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC;;gCAE4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB;oEACgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,WAAW,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,qBAAa,sBAAuB,SAAQ,KAAK;CAAG;AAEpD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAsB,GAAG,SAAS,CA8BrE;AAoHD;;cAEc;AACd,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAiBjF"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Finding the workspace, and the modules inside it.
|
|
3
3
|
*
|
|
4
4
|
* The Node half of `telo-workspace.yaml`: walking up from the cwd to find the
|
|
5
|
-
* marker, and filtering its
|
|
6
|
-
* marker is `workspace-marker.ts`'s — its location is a
|
|
7
|
-
* release concept — and parsing it is the analyzer's
|
|
5
|
+
* marker, and filtering the subtrees its `release.modules` names down to actual
|
|
6
|
+
* modules. Finding the marker is `workspace-marker.ts`'s — its location is a
|
|
7
|
+
* general anchor, not a release concept — and parsing it is the analyzer's
|
|
8
8
|
* (`release/workspace-config.ts`), so the editor reads the same file the same
|
|
9
9
|
* way.
|
|
10
10
|
*
|
|
@@ -19,9 +19,16 @@
|
|
|
19
19
|
* `version: 1.0.0` as a second module — and a listed directory holding no
|
|
20
20
|
* manifest simply is not one, which is how `apps/hub-web` and `apps/studio`
|
|
21
21
|
* fall out.
|
|
22
|
+
*
|
|
23
|
+
* **Selection and attribution are ONE decision.** The entry list is evaluated
|
|
24
|
+
* last-match-wins, so the entry that decides whether a directory is a module is
|
|
25
|
+
* the same entry whose settings that module resolves — which is why this reads
|
|
26
|
+
* the deciding index rather than asking for a filtered set and then guessing
|
|
27
|
+
* which pattern produced it.
|
|
22
28
|
*/
|
|
23
|
-
import { DEFAULT_MANIFEST_FILENAME, WORKSPACE_FILENAME, normalizeModuleKey,
|
|
24
|
-
import { GLOB_PRUNE_DIRS,
|
|
29
|
+
import { DEFAULT_MANIFEST_FILENAME, WORKSPACE_FILENAME, normalizeModuleKey, readManifestVersion, readWorkspaceConfig, requireReleaseSettings, settingsForModule, } from "@telorun/analyzer";
|
|
30
|
+
import { GLOB_PRUNE_DIRS, lastMatchIndex } from "@telorun/glob";
|
|
31
|
+
import { DiagnosticSeverity, workspaceDiagnostics, } from "@telorun/ide-support";
|
|
25
32
|
import { findWorkspaceRoot } from "../workspace-marker.js";
|
|
26
33
|
import * as fs from "node:fs";
|
|
27
34
|
import * as path from "node:path";
|
|
@@ -40,11 +47,76 @@ export function loadWorkspace(from = process.cwd()) {
|
|
|
40
47
|
if (!root) {
|
|
41
48
|
throw new WorkspaceNotFoundError(`No ${WORKSPACE_FILENAME} found in '${path.resolve(from)}' or any parent directory. ` +
|
|
42
49
|
`\`telo release\` works over a declared workspace — create one at the repo root naming ` +
|
|
43
|
-
`the subtrees that hold modules:\n\n modules:\n
|
|
50
|
+
`the subtrees that hold modules:\n\n release:\n modules:\n - modules/*\n - apps/*\n`);
|
|
44
51
|
}
|
|
45
52
|
const file = path.join(root, WORKSPACE_FILENAME);
|
|
46
|
-
const
|
|
47
|
-
|
|
53
|
+
const text = fs.readFileSync(file, "utf8");
|
|
54
|
+
const read = readWorkspaceConfig(text, WORKSPACE_FILENAME);
|
|
55
|
+
const release = requireReleaseSettings(read, WORKSPACE_FILENAME);
|
|
56
|
+
const manifestDirs = findManifestDirs(root);
|
|
57
|
+
return {
|
|
58
|
+
root,
|
|
59
|
+
release,
|
|
60
|
+
// The repo-shaped checks run HERE, not only in the editor. They exist to
|
|
61
|
+
// name the failure a four-way workspace split hid for months — an entry that
|
|
62
|
+
// discovers nothing — and a check that squiggles in VS Code while CI stays
|
|
63
|
+
// silent is the editor and the checker disagreeing, which is the one thing
|
|
64
|
+
// this repo does not let a surface do.
|
|
65
|
+
diagnostics: workspaceDiagnostics(text, {
|
|
66
|
+
match: lastMatchIndex,
|
|
67
|
+
moduleDirectories: () => manifestDirs,
|
|
68
|
+
directories: () => directoriesUnder(root),
|
|
69
|
+
enclosingMarkers: () => enclosingMarkers(root),
|
|
70
|
+
}).map(asReleaseDiagnostic),
|
|
71
|
+
modules: discoverModules(root, release, manifestDirs),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** A marker diagnostic in the vocabulary the release plan already reports in, so
|
|
75
|
+
* one printer renders both. */
|
|
76
|
+
function asReleaseDiagnostic(diagnostic) {
|
|
77
|
+
return {
|
|
78
|
+
severity: diagnostic.severity === DiagnosticSeverity.Error ? "error" : "warning",
|
|
79
|
+
code: diagnostic.code,
|
|
80
|
+
message: `${WORKSPACE_FILENAME}: ${diagnostic.message}`,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/** Workspace-relative directories, pruned the way discovery prunes — the same
|
|
84
|
+
* set `env.roots` patterns are matched against at run time. */
|
|
85
|
+
function directoriesUnder(root) {
|
|
86
|
+
const found = [];
|
|
87
|
+
const walk = (dir) => {
|
|
88
|
+
let entries;
|
|
89
|
+
try {
|
|
90
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
for (const entry of entries) {
|
|
96
|
+
if (!entry.isDirectory() || GLOB_PRUNE_DIRS.has(entry.name))
|
|
97
|
+
continue;
|
|
98
|
+
const child = path.join(dir, entry.name);
|
|
99
|
+
found.push(path.relative(root, child).split(path.sep).join("/"));
|
|
100
|
+
walk(child);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
walk(root);
|
|
104
|
+
return found;
|
|
105
|
+
}
|
|
106
|
+
/** Markers above this one — each gives everything beneath it a different cache
|
|
107
|
+
* root, different module keys and a different release scope. */
|
|
108
|
+
function enclosingMarkers(root) {
|
|
109
|
+
const found = [];
|
|
110
|
+
let dir = path.dirname(root);
|
|
111
|
+
for (;;) {
|
|
112
|
+
if (fs.existsSync(path.join(dir, WORKSPACE_FILENAME)))
|
|
113
|
+
found.push(dir);
|
|
114
|
+
const parent = path.dirname(dir);
|
|
115
|
+
if (parent === dir)
|
|
116
|
+
break;
|
|
117
|
+
dir = parent;
|
|
118
|
+
}
|
|
119
|
+
return found;
|
|
48
120
|
}
|
|
49
121
|
/**
|
|
50
122
|
* Every directory under a named subtree that holds a versioned module manifest.
|
|
@@ -56,11 +128,12 @@ export function loadWorkspace(from = process.cwd()) {
|
|
|
56
128
|
* manifests under `**\/.telo/manifests/` out — each of those is a published
|
|
57
129
|
* module's `telo.yaml` and would otherwise read as a module of this workspace.
|
|
58
130
|
*/
|
|
59
|
-
function discoverModules(root,
|
|
60
|
-
const candidates = findManifestDirs(root);
|
|
61
|
-
const matched = new Set(selectByPatterns(candidates, [...config.modules], { applyDefaultIgnore: false }));
|
|
131
|
+
function discoverModules(root, release, manifestDirs) {
|
|
62
132
|
const modules = [];
|
|
63
|
-
for (const key of [...
|
|
133
|
+
for (const key of [...manifestDirs].sort()) {
|
|
134
|
+
const settings = settingsForModule(release, key, lastMatchIndex);
|
|
135
|
+
if (!settings)
|
|
136
|
+
continue;
|
|
64
137
|
const dir = path.join(root, key);
|
|
65
138
|
const manifestPath = path.join(dir, DEFAULT_MANIFEST_FILENAME);
|
|
66
139
|
const text = fs.readFileSync(manifestPath, "utf8");
|
|
@@ -74,6 +147,7 @@ function discoverModules(root, config) {
|
|
|
74
147
|
name: readModuleName(text) ?? path.basename(dir),
|
|
75
148
|
version,
|
|
76
149
|
artifactKind: fs.existsSync(path.join(dir, "Dockerfile")) ? "image" : "registry",
|
|
150
|
+
settings,
|
|
77
151
|
});
|
|
78
152
|
}
|
|
79
153
|
return modules;
|
|
@@ -122,6 +196,8 @@ export function requireModule(workspace, key) {
|
|
|
122
196
|
? ` A module is named by its workspace-relative path — did you mean ${suffixMatches
|
|
123
197
|
.map((module) => `'${module.key}'`)
|
|
124
198
|
.join(" or ")}?`
|
|
125
|
-
: ` Modules are discovered under ${workspace.
|
|
199
|
+
: ` Modules are discovered under ${workspace.release.modules
|
|
200
|
+
.map((entry) => entry.path)
|
|
201
|
+
.join(", ")}.`));
|
|
126
202
|
}
|
|
127
203
|
//# sourceMappingURL=workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/release/workspace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/release/workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telorun/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.0",
|
|
4
4
|
"description": "Telo CLI - Command-line interface for the Telo runtime.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"telo",
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"dist"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@telorun/analyzer": "0.
|
|
38
|
-
"@telorun/glob": "0.
|
|
39
|
-
"@telorun/ide-support": "0.
|
|
40
|
-
"@telorun/kernel": "0.
|
|
41
|
-
"@telorun/sdk": "0.
|
|
42
|
-
"@telorun/templating": "0.
|
|
37
|
+
"@telorun/analyzer": "0.74.0",
|
|
38
|
+
"@telorun/glob": "0.3.0",
|
|
39
|
+
"@telorun/ide-support": "0.20.1",
|
|
40
|
+
"@telorun/kernel": "0.90.0",
|
|
41
|
+
"@telorun/sdk": "0.90.0",
|
|
42
|
+
"@telorun/templating": "0.20.1",
|
|
43
43
|
"dotenv": "^17.4.0",
|
|
44
44
|
"packageurl-js": "^2.0.1",
|
|
45
45
|
"semver": "^7.7.3",
|