@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.
Files changed (80) hide show
  1. package/dist/bundle/built-layers.d.ts +36 -0
  2. package/dist/bundle/built-layers.d.ts.map +1 -0
  3. package/dist/bundle/built-layers.js +84 -0
  4. package/dist/bundle/built-layers.js.map +1 -0
  5. package/dist/bundle/module-payload.d.ts +30 -15
  6. package/dist/bundle/module-payload.d.ts.map +1 -1
  7. package/dist/bundle/module-payload.js +118 -21
  8. package/dist/bundle/module-payload.js.map +1 -1
  9. package/dist/bundle/partition-layers.d.ts +13 -6
  10. package/dist/bundle/partition-layers.d.ts.map +1 -1
  11. package/dist/bundle/partition-layers.js +49 -7
  12. package/dist/bundle/partition-layers.js.map +1 -1
  13. package/dist/bundle/payload-drift.d.ts +1 -1
  14. package/dist/bundle/payload-drift.d.ts.map +1 -1
  15. package/dist/bundle/select-files.d.ts +11 -2
  16. package/dist/bundle/select-files.d.ts.map +1 -1
  17. package/dist/bundle/select-files.js +23 -8
  18. package/dist/bundle/select-files.js.map +1 -1
  19. package/dist/bundle/staged-files.d.ts +43 -0
  20. package/dist/bundle/staged-files.d.ts.map +1 -0
  21. package/dist/bundle/staged-files.js +158 -0
  22. package/dist/bundle/staged-files.js.map +1 -0
  23. package/dist/bundle/warm-layers.d.ts +11 -6
  24. package/dist/bundle/warm-layers.d.ts.map +1 -1
  25. package/dist/bundle/warm-layers.js +26 -10
  26. package/dist/bundle/warm-layers.js.map +1 -1
  27. package/dist/commands/install.d.ts +1 -0
  28. package/dist/commands/install.d.ts.map +1 -1
  29. package/dist/commands/install.js +7 -1
  30. package/dist/commands/install.js.map +1 -1
  31. package/dist/commands/module.d.ts.map +1 -1
  32. package/dist/commands/module.js +21 -7
  33. package/dist/commands/module.js.map +1 -1
  34. package/dist/commands/publish.d.ts.map +1 -1
  35. package/dist/commands/publish.js +5 -1
  36. package/dist/commands/publish.js.map +1 -1
  37. package/dist/commands/release.d.ts +8 -6
  38. package/dist/commands/release.d.ts.map +1 -1
  39. package/dist/commands/release.js +168 -69
  40. package/dist/commands/release.js.map +1 -1
  41. package/dist/commands/run.d.ts.map +1 -1
  42. package/dist/commands/run.js +14 -6
  43. package/dist/commands/run.js.map +1 -1
  44. package/dist/controller-runtime.d.ts +25 -3
  45. package/dist/controller-runtime.d.ts.map +1 -1
  46. package/dist/controller-runtime.js +39 -9
  47. package/dist/controller-runtime.js.map +1 -1
  48. package/dist/env-files.d.ts +23 -8
  49. package/dist/env-files.d.ts.map +1 -1
  50. package/dist/env-files.js +77 -17
  51. package/dist/env-files.js.map +1 -1
  52. package/dist/release/apply-plan.d.ts +2 -1
  53. package/dist/release/apply-plan.d.ts.map +1 -1
  54. package/dist/release/apply-plan.js +8 -4
  55. package/dist/release/apply-plan.js.map +1 -1
  56. package/dist/release/cargo-toml.d.ts +17 -0
  57. package/dist/release/cargo-toml.d.ts.map +1 -0
  58. package/dist/release/cargo-toml.js +253 -0
  59. package/dist/release/cargo-toml.js.map +1 -0
  60. package/dist/release/crate-inputs.d.ts +41 -0
  61. package/dist/release/crate-inputs.d.ts.map +1 -0
  62. package/dist/release/crate-inputs.js +407 -0
  63. package/dist/release/crate-inputs.js.map +1 -0
  64. package/dist/release/evidence.d.ts +13 -17
  65. package/dist/release/evidence.d.ts.map +1 -1
  66. package/dist/release/evidence.js +26 -30
  67. package/dist/release/evidence.js.map +1 -1
  68. package/dist/release/stage.d.ts +61 -0
  69. package/dist/release/stage.d.ts.map +1 -0
  70. package/dist/release/stage.js +506 -0
  71. package/dist/release/stage.js.map +1 -0
  72. package/dist/release/targets.d.ts +60 -0
  73. package/dist/release/targets.d.ts.map +1 -0
  74. package/dist/release/targets.js +94 -0
  75. package/dist/release/targets.js.map +1 -0
  76. package/dist/release/workspace.d.ts +17 -5
  77. package/dist/release/workspace.d.ts.map +1 -1
  78. package/dist/release/workspace.js +89 -13
  79. package/dist/release/workspace.js.map +1 -1
  80. 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 named subtrees down to actual modules. Finding the
6
- * marker is `workspace-marker.ts`'s — its location is a general anchor, not 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 WorkspaceConfig } from "@telorun/analyzer";
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 config: WorkspaceConfig;
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;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAO3B,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;CACrC;AAED,MAAM,WAAW,SAAS;IACxB;oEACgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,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,CAYrE;AAoED;;cAEc;AACd,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAejF"}
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 named subtrees down to actual modules. Finding the
6
- * marker is `workspace-marker.ts`'s — its location is a general anchor, not 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, parseWorkspaceConfig, readManifestVersion, } from "@telorun/analyzer";
24
- import { GLOB_PRUNE_DIRS, selectByPatterns } from "@telorun/glob";
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 - modules/*\n - apps/*\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 config = parseWorkspaceConfig(fs.readFileSync(file, "utf8"), WORKSPACE_FILENAME);
47
- return { root, config, modules: discoverModules(root, config) };
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, config) {
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 [...matched].sort()) {
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.config.modules.join(", ")}.`));
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":"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"}
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.88.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.72.0",
38
- "@telorun/glob": "0.2.0",
39
- "@telorun/ide-support": "0.19.0",
40
- "@telorun/kernel": "0.88.0",
41
- "@telorun/sdk": "0.87.0",
42
- "@telorun/templating": "0.19.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",