@theholocron/astromech 5.0.0-alpha.127 → 5.0.0-alpha.129
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/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# `@theholocron/astromech`
|
|
2
2
|
|
|
3
3
|
The Holocron task runner. One **task manifest** per repo, and every
|
|
4
|
-
derived surface comes from it: `holocron run` (local), `holocron ci` (the
|
|
4
|
+
derived surface comes from it: `holocron run` (local), `holocron run ci` (the
|
|
5
5
|
CI suite run locally), the generated GitHub Actions workflows, the
|
|
6
6
|
`package.json` scripts, and the branch-protection required-checks list.
|
|
7
7
|
|
|
@@ -124,7 +124,7 @@ through the GitHub API).
|
|
|
124
124
|
|
|
125
125
|
| `TaskEntry` field | Effect |
|
|
126
126
|
| ------------------------ | ----------------------------------------------------------- |
|
|
127
|
-
| `ci` (default `true`) | emit the CI workflow; include in `holocron ci`
|
|
127
|
+
| `ci` (default `true`) | emit the CI workflow; include in `holocron run ci` |
|
|
128
128
|
| `local` (default `true`) | write the `package.json` script; `holocron run` resolves it |
|
|
129
129
|
| `local: false` | `holocron run <name>` → "CI-only task", exit 0 |
|
|
130
130
|
| `required` | the task's check context is a required status check |
|
|
@@ -151,7 +151,7 @@ the same resolution as `run()`, in `CI_ORDER`, and returns `{ status, jobs }`.
|
|
|
151
151
|
A `required` task whose local runner can't run is a failure — **except** a
|
|
152
152
|
task that's genuinely CI-only (`local: null`, or a `linterGroup` whose every
|
|
153
153
|
member lacks a local binary entirely, like `platform.commitStandards`),
|
|
154
|
-
which is reported skipped even when required. `holocron ci` sets the
|
|
154
|
+
which is reported skipped even when required. `holocron run ci` sets the
|
|
155
155
|
process exit code from `status`.
|
|
156
156
|
|
|
157
157
|
`thinCallers()` returns the raw `.github/workflows/*.yml` content (no
|
package/dist/config/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as normalizeTaskEntry, n as TaskEntry, r as TasksConfig, t as TaskConfigItem } from "../schema-
|
|
1
|
+
import { i as normalizeTaskEntry, n as TaskEntry, r as TasksConfig, t as TaskConfigItem } from "../schema-CGybbV7_.mjs";
|
|
2
2
|
//#region src/config/define.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Typed identity helper for `astromech.config.ts`:
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as TasksConfig } from "./schema-
|
|
1
|
+
import { r as TasksConfig } from "./schema-CGybbV7_.mjs";
|
|
2
2
|
//#region src/generators/github-action-thin-callers.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* Workflow templates + thin-caller generation.
|
|
@@ -501,7 +501,7 @@ declare function createTsconfig(options: TsconfigOptions): string;
|
|
|
501
501
|
//#region src/registry.d.ts
|
|
502
502
|
/**
|
|
503
503
|
* The task registry — how each task runs *locally*, without GitHub
|
|
504
|
-
* Actions. `holocron run <task>` and `holocron ci` resolve against this;
|
|
504
|
+
* Actions. `holocron run <task>` and `holocron run ci` resolve against this;
|
|
505
505
|
* adding a task here gives every repo that task.
|
|
506
506
|
*
|
|
507
507
|
* Keyed identically to the workflow templates — a task IS a workflow. This
|
|
@@ -558,7 +558,7 @@ interface JobDef {
|
|
|
558
558
|
/**
|
|
559
559
|
* The CI status-check context this job reports as (e.g.
|
|
560
560
|
* `platform.repoValidation / Validate registry consistency`) — every sub-job is a CI job.
|
|
561
|
-
* `holocron run <task>` and `holocron ci` label each job line with it;
|
|
561
|
+
* `holocron run <task>` and `holocron run ci` label each job line with it;
|
|
562
562
|
* the task-level `… / Conclusion` context (only for tasks with several
|
|
563
563
|
* jobs) lives in `WORKFLOW_CHECK_CONTEXTS`.
|
|
564
564
|
*/
|
|
@@ -569,7 +569,7 @@ interface TaskDef {
|
|
|
569
569
|
* `null` — the registry has no built-in runner (CodeQL, deploys, the
|
|
570
570
|
* bundle-size job). An explicit turbo task or `package.json` script still
|
|
571
571
|
* runs (resolution steps 1–2); with neither, `holocron run` does nothing
|
|
572
|
-
* and `holocron ci` skips it — never a failure, even when the task is
|
|
572
|
+
* and `holocron run ci` skips it — never a failure, even when the task is
|
|
573
573
|
* `required` (a CI-only check isn't a local one).
|
|
574
574
|
*/
|
|
575
575
|
local: LocalRunner | null;
|
|
@@ -599,10 +599,10 @@ declare const TASKS: Record<string, TaskDef>;
|
|
|
599
599
|
/** Every task name the registry knows. */
|
|
600
600
|
declare const KNOWN_TASKS: Set<string>;
|
|
601
601
|
/**
|
|
602
|
-
* The order `holocron ci` runs tasks in — cheapest / fastest signal first, so
|
|
602
|
+
* The order `holocron run ci` runs tasks in — cheapest / fastest signal first, so
|
|
603
603
|
* an agent or a `pre-push` hook fails early. Tasks not listed here run last, in
|
|
604
604
|
* manifest order. (The generated thin callers carry no `needs:` — cross-workflow
|
|
605
|
-
* ordering lives in `theholocron/.github` — so `holocron ci` declares its own.)
|
|
605
|
+
* ordering lives in `theholocron/.github` — so `holocron run ci` declares its own.)
|
|
606
606
|
*/
|
|
607
607
|
declare const CI_ORDER: string[];
|
|
608
608
|
//#endregion
|
package/dist/index.mjs
CHANGED
|
@@ -754,10 +754,10 @@ const TASKS = {
|
|
|
754
754
|
/** Every task name the registry knows. */
|
|
755
755
|
const KNOWN_TASKS = new Set(Object.keys(TASKS));
|
|
756
756
|
/**
|
|
757
|
-
* The order `holocron ci` runs tasks in — cheapest / fastest signal first, so
|
|
757
|
+
* The order `holocron run ci` runs tasks in — cheapest / fastest signal first, so
|
|
758
758
|
* an agent or a `pre-push` hook fails early. Tasks not listed here run last, in
|
|
759
759
|
* manifest order. (The generated thin callers carry no `needs:` — cross-workflow
|
|
760
|
-
* ordering lives in `theholocron/.github` — so `holocron ci` declares its own.)
|
|
760
|
+
* ordering lives in `theholocron/.github` — so `holocron run ci` declares its own.)
|
|
761
761
|
*/
|
|
762
762
|
const CI_ORDER = [
|
|
763
763
|
"verification.typeSafety",
|
|
@@ -1693,7 +1693,7 @@ function packageJsonScript(cwd, task, readFile, fileExists) {
|
|
|
1693
1693
|
//#endregion
|
|
1694
1694
|
//#region src/tasks/ci.ts
|
|
1695
1695
|
/**
|
|
1696
|
-
* `holocron ci` / `astromech.ci()` — run the merge-gating checks locally, in CI
|
|
1696
|
+
* `holocron run ci` / `astromech.ci()` — run the merge-gating checks locally, in CI
|
|
1697
1697
|
* order, and exit non-zero on the first failure. The "will CI pass?" command a
|
|
1698
1698
|
* `pre-push` hook and the agent skills point at.
|
|
1699
1699
|
*
|
|
@@ -1715,7 +1715,7 @@ function runCi(input) {
|
|
|
1715
1715
|
const fellBack = input.scope !== "all" && selected.length === 0 && all.length > 0;
|
|
1716
1716
|
if (fellBack) selected = all;
|
|
1717
1717
|
const ordered = [...selected].sort((a, b) => CI_ORDER.indexOf(a.name) - CI_ORDER.indexOf(b.name));
|
|
1718
|
-
print(`holocron ci — ${input.scope === "all" ? "all CI checks" : "required checks"} (${ordered.length})`);
|
|
1718
|
+
print(`holocron run ci — ${input.scope === "all" ? "all CI checks" : "required checks"} (${ordered.length})`);
|
|
1719
1719
|
if (fellBack) print(" (no required tasks in the manifest — running every CI task)");
|
|
1720
1720
|
print("");
|
|
1721
1721
|
const jobs = [];
|
|
@@ -1749,7 +1749,7 @@ function runCi(input) {
|
|
|
1749
1749
|
const passed = jobs.filter((j) => j.status === "ok" || j.status === "dry-run").length;
|
|
1750
1750
|
const skipped = jobs.filter((j) => j.status === "skip").length;
|
|
1751
1751
|
print("");
|
|
1752
|
-
if (ordered.length === 0) print("holocron ci — nothing to run");
|
|
1752
|
+
if (ordered.length === 0) print("holocron run ci — nothing to run");
|
|
1753
1753
|
else if (failed > 0) print(`✗ ${passed} passed, ${failed} failed${skipped ? `, ${skipped} skipped` : ""}`);
|
|
1754
1754
|
else print(`✓ ${passed} passed${skipped ? `, ${skipped} skipped` : ""}${input.dryRun ? " (plan only)" : ""}`);
|
|
1755
1755
|
return {
|
|
@@ -12,7 +12,7 @@ interface TaskEntry {
|
|
|
12
12
|
name: string;
|
|
13
13
|
/**
|
|
14
14
|
* Emit a `.github/workflows/<name>.yml` thin caller and include the task
|
|
15
|
-
* in `holocron ci`. Default `true`.
|
|
15
|
+
* in `holocron run ci`. Default `true`.
|
|
16
16
|
*/
|
|
17
17
|
ci?: boolean;
|
|
18
18
|
/**
|
|
@@ -24,7 +24,7 @@ interface TaskEntry {
|
|
|
24
24
|
/**
|
|
25
25
|
* The task's CI check context (from `WORKFLOW_CHECK_CONTEXTS`) is a
|
|
26
26
|
* required status check in branch protection (`astromech.requiredChecks()`)
|
|
27
|
-
* and part of `holocron ci`'s default run.
|
|
27
|
+
* and part of `holocron run ci`'s default run.
|
|
28
28
|
*/
|
|
29
29
|
required?: boolean;
|
|
30
30
|
/** Per-repo overrides on the same channel the reusable workflow reads. */
|
|
@@ -63,7 +63,7 @@ interface TasksConfig {
|
|
|
63
63
|
extraRequiredChecks?: string[];
|
|
64
64
|
/**
|
|
65
65
|
* Git hooks `holocron setup` installs. `true` / `{ prePush: true }` writes
|
|
66
|
-
* `.husky/pre-push` (runs `holocron ci`); `false` / `{ prePush: false }`
|
|
66
|
+
* `.husky/pre-push` (runs `holocron run ci`); `false` / `{ prePush: false }`
|
|
67
67
|
* opts out. Omitted → on for `protection: "strict"` repos, off otherwise.
|
|
68
68
|
* When enabled, `packageScripts()` also emits `prepare: "husky"`.
|
|
69
69
|
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theholocron/astromech",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
4
|
-
"description": "The Holocron task runner — one task manifest drives `holocron run`, `holocron ci`, the CI workflows, package.json scripts, linters, and required checks.",
|
|
3
|
+
"version": "5.0.0-alpha.129",
|
|
4
|
+
"description": "The Holocron task runner — one task manifest drives `holocron run`, `holocron run ci`, the CI workflows, package.json scripts, linters, and required checks.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ci",
|
|
7
7
|
"holocron",
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
"dist"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@theholocron/datapad": "5.0.0-alpha.
|
|
40
|
+
"@theholocron/datapad": "5.0.0-alpha.129"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@theholocron/eslint-config": "^8.7.
|
|
44
|
-
"@theholocron/tsconfig": "^8.7.
|
|
45
|
-
"@theholocron/tsdown-config": "^8.7.
|
|
43
|
+
"@theholocron/eslint-config": "^8.7.1",
|
|
44
|
+
"@theholocron/tsconfig": "^8.7.1",
|
|
45
|
+
"@theholocron/tsdown-config": "^8.7.1",
|
|
46
46
|
"@theholocron/vitest-config": "^8.7.0",
|
|
47
47
|
"@types/node": "^26",
|
|
48
48
|
"@vitest/coverage-v8": "^4.1.11",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"tsdown": "^0.22.14",
|
|
54
54
|
"typescript": "^5.9.3",
|
|
55
55
|
"vitest": "^4.1.11",
|
|
56
|
-
"@theholocron/rollup-plugin-transform-template": "5.0.0-alpha.
|
|
56
|
+
"@theholocron/rollup-plugin-transform-template": "5.0.0-alpha.129"
|
|
57
57
|
},
|
|
58
58
|
"engines": {
|
|
59
59
|
"node": ">=22"
|