@theholocron/cli 5.0.0-alpha.162 → 5.0.0-alpha.164

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 (2) hide show
  1. package/dist/index.d.mts +52 -19
  2. package/package.json +3 -3
package/dist/index.d.mts CHANGED
@@ -237,7 +237,8 @@ interface EnvConfig {
237
237
  namespaces?: string[];
238
238
  }
239
239
  /**
240
- * A single Chromatic project entry in a monorepo `run-chromatic` config.
240
+ * A single Chromatic project entry in a `verification.visualRegression`
241
+ * task's `chromatic-projects` config.
241
242
  * Each entry produces one matrix job in CI, publishing to a separate Chromatic project.
242
243
  *
243
244
  * The `tokenName` maps to a repository secret named `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`.
@@ -299,8 +300,9 @@ interface StorybookDeployProject {
299
300
  /**
300
301
  * Typed `with:` inputs for reusable workflows.
301
302
  *
302
- * `run-chromatic` accepts either a plain boolean (single-project) or a
303
- * `ChromaticProjectConfig[]` object (multi-project monorepo).
303
+ * `chromatic-projects` (on the `verification.visualRegression` task) takes a
304
+ * `ChromaticProjectConfig[]` directly; each entry's `untraced` glob list may
305
+ * be authored as an array and is newline-joined for you.
304
306
  *
305
307
  * `docs` / `storybook` are high-level deploy shorthand that `holocron repo setup`
306
308
  * translates to `type` / `storybook-projects` before writing the thin caller.
@@ -308,9 +310,7 @@ interface StorybookDeployProject {
308
310
  * `paths:` manually for deploy entries.
309
311
  */
310
312
  type WorkflowWithConfig = Record<string, unknown> & {
311
- "run-chromatic"?: boolean | {
312
- projects: ChromaticProjectConfig[];
313
- };
313
+ "chromatic-projects"?: ChromaticProjectConfig[];
314
314
  /**
315
315
  * Docs deployment shorthand. `true` uses the org-standard `docs/` directory;
316
316
  * `{ path: "custom" }` uses a custom directory. Both derive a `paths:` entry automatically.
@@ -336,6 +336,25 @@ interface TaskEntryConfig {
336
336
  local?: boolean;
337
337
  /** The task's CI check context is a required status check + part of `holocron run ci`'s default run. */
338
338
  required?: boolean;
339
+ /**
340
+ * Per-repo additions to this task's generated `turbo.json` entry —
341
+ * a separate channel from `with:` (that's the reusable *workflow's*
342
+ * inputs; this is local turbo cache config, unrelated). No-op for a
343
+ * task with no turbo fan-out config in the registry. Mirrors
344
+ * astromech's own `TaskEntry["turbo"]` — kept in sync by hand, since
345
+ * this package doesn't depend on astromech directly.
346
+ */
347
+ turbo?: {
348
+ /** Extra env vars turbo hashes into this task's cache key, appended to the registry default. */
349
+ passThroughEnv?: string[];
350
+ /**
351
+ * Extra input globs appended to the registry default's `inputs`
352
+ * (holocron#845) — for a package whose layout the registry
353
+ * default doesn't cover (e.g. a flat-layout package with no
354
+ * `src/` directory at all).
355
+ */
356
+ inputs?: string[];
357
+ };
339
358
  }
340
359
  interface HolocronConfig {
341
360
  /** Project name. Derived from package.json when absent. */
@@ -371,7 +390,7 @@ interface HolocronConfig {
371
390
  * workflows / `package.json` scripts.
372
391
  *
373
392
  * Supported values (intent-facing vocabulary — epic #672, D3):
374
- * "verification.unitTests" | "verification.typeSafety" | "verification.performance" |
393
+ * "verification.unitTests" | "verification.visualRegression" | "verification.typeSafety" | "verification.performance" |
375
394
  * "sourceQuality.staticAnalysis" | "sourceQuality.formatting" |
376
395
  * "sourceQuality.structuredDataValidation" | "sourceQuality.deadCodeAnalysis" |
377
396
  * "security.secretDetection" | "security.codeScanning" |
@@ -415,23 +434,37 @@ interface HolocronConfig {
415
434
  * { name: "delivery.deploy", with: { docs: { path: "packages/site" } } }
416
435
  * ```
417
436
  *
418
- * ### run-chromatic
419
- * For a single-project repo, use `"run-chromatic": true` with a
420
- * `CHROMATIC_PROJECT_TOKEN` repository secret.
437
+ * ### verification.visualRegression
438
+ * Its own task, not a `verification.unitTests` sub-job (holocron#394/#1062)
439
+ * — GitHub evaluates a job's `if:` before expanding its `strategy.matrix`,
440
+ * so no `chromatic-projects` default can make a *disabled* Chromatic job
441
+ * disappear from PR checks; only not generating the job at all does. Omit
442
+ * this task entirely for a repo that doesn't use Chromatic — no workflow,
443
+ * no job, no check, not even a skipped one.
444
+ *
445
+ * For a single-project repo, use a `CHROMATIC_PROJECT_TOKEN` repository
446
+ * secret with `tokenName: "default"`:
447
+ * ```ts
448
+ * {
449
+ * name: "verification.visualRegression",
450
+ * with: { "chromatic-projects": [{ tokenName: "default", workingDir: "." }] },
451
+ * }
452
+ * ```
421
453
  *
422
- * For monorepos with multiple Storybooks, use the object form:
454
+ * For monorepos with multiple Storybooks, list one entry per project:
423
455
  * ```ts
424
- * "run-chromatic": {
425
- * projects: [
426
- * { tokenName: "WEB", workingDir: "apps/web" },
427
- * { tokenName: "UI", workingDir: "packages/ui" },
428
- * ]
456
+ * {
457
+ * name: "verification.visualRegression",
458
+ * with: {
459
+ * "chromatic-projects": [
460
+ * { tokenName: "WEB", workingDir: "apps/web" },
461
+ * { tokenName: "UI", workingDir: "packages/ui" },
462
+ * ],
463
+ * },
429
464
  * }
430
465
  * ```
431
466
  * Each `tokenName` maps to a repository secret named
432
- * `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`. `holocron repo setup` expands this
433
- * to the flat `run-chromatic: true` + `chromatic-projects: <json>` inputs
434
- * that the reusable workflow accepts.
467
+ * `CHROMATIC_PROJECT_TOKEN_<TOKENNAME>`.
435
468
  *
436
469
  * @example
437
470
  * ["sourceQuality.staticAnalysis", { "name": "delivery.publish", "with": { "run-build": false } }]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theholocron/cli",
3
- "version": "5.0.0-alpha.162",
3
+ "version": "5.0.0-alpha.164",
4
4
  "description": "The Holocron CLI - a pluggable, capability-based orchestrator for spinning up and operating software projects.",
5
5
  "keywords": [
6
6
  "cli",
@@ -63,8 +63,8 @@
63
63
  "pino-pretty": "^13.1.3",
64
64
  "posthog-node": "^5.51.6",
65
65
  "yargs": "^18.1.0",
66
- "@theholocron/astromech": "5.0.0-alpha.162",
67
- "@theholocron/datapad": "5.0.0-alpha.162"
66
+ "@theholocron/astromech": "5.0.0-alpha.164",
67
+ "@theholocron/datapad": "5.0.0-alpha.164"
68
68
  },
69
69
  "devDependencies": {
70
70
  "@theholocron/eslint-config": "^8.8.0",