@dbx-tools/projen 0.6.225 → 0.6.226

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
@@ -57,6 +57,9 @@ Repository policy stays in the consuming `.projenrc.ts`:
57
57
  artifact upload, and deployment without naming a docs script or output tree.
58
58
  - `releasePythonRoot` passes the actual Python package root to local release
59
59
  preparation. Omit it when the workspace has no standard Python packages.
60
+ - `releaseValidationTasks` names repository tasks that must pass in the release
61
+ worktree before Cargo tests, compilation, local publication, or approval.
62
+ Use it for repository-specific guards that also run in release CI.
60
63
  - `releaseSummary` controls optional AI release notes. It defaults to enabled
61
64
  with Cursor, Codex, Claude fallback order; pass `false` to disable or provide
62
65
  a `providers` array to choose the order/subset.
package/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  // Hand edits are overwritten on the next watch; this file is read-only.
4
4
 
5
5
  export const PACKAGE_IDENTIFIER = "@dbx-tools/projen";
6
- export const PACKAGE_VERSION = "0.6.225";
6
+ export const PACKAGE_VERSION = "0.6.226";
7
7
  export * as barrels from "./src/barrels.ts";
8
8
  export * as bunApp from "./src/bun-app.ts";
9
9
  export * as bunWorkflow from "./src/bun-workflow.ts";
package/package.json CHANGED
@@ -25,9 +25,9 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@clack/prompts": "^1.7.0",
28
- "@dbx-tools/core": "0.6.225",
29
- "@dbx-tools/path": "0.6.225",
30
- "@dbx-tools/shared-core": "0.6.225",
28
+ "@dbx-tools/core": "0.6.226",
29
+ "@dbx-tools/path": "0.6.226",
30
+ "@dbx-tools/shared-core": "0.6.226",
31
31
  "commander": "^15.0.0",
32
32
  "concurrently": "^10.0.3",
33
33
  "constructs": "^10.6.0",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "main": "index.ts",
49
49
  "license": "Apache-2.0",
50
- "version": "0.6.225",
50
+ "version": "0.6.226",
51
51
  "types": "index.ts",
52
52
  "type": "module",
53
53
  "exports": {
package/src/project-js.ts CHANGED
@@ -621,6 +621,8 @@ export type DBXToolsJavaScriptProjectOptions = CommonProjectOptions &
621
621
  readonly releaseDocs?: ReleaseDocsOptions;
622
622
  /** Python package root passed to local release preparation when configured. */
623
623
  readonly releasePythonRoot?: string;
624
+ /** Repository task names run during local release preparation before publication. */
625
+ readonly releaseValidationTasks?: readonly string[];
624
626
  /** Optional AI-generated release summary. Defaults to enabled. */
625
627
  readonly releaseSummary?: boolean | ReleaseSummaryOptions;
626
628
  /** Set to `false` to omit normal npm workspace publication. */
@@ -1542,6 +1544,7 @@ function initProject(
1542
1544
  nodeRelease: options.nodeRelease,
1543
1545
  docs: options.releaseDocs,
1544
1546
  pythonRoot: options.releasePythonRoot,
1547
+ validationTasks: options.releaseValidationTasks,
1545
1548
  summary: options.releaseSummary,
1546
1549
  });
1547
1550
  }
package/src/release.ts CHANGED
@@ -53,6 +53,8 @@ export interface DBXToolsReleaseOptions {
53
53
  readonly docs?: ReleaseDocsOptions;
54
54
  /** Python package root passed to local release preparation. */
55
55
  readonly pythonRoot?: string;
56
+ /** Repository task names run in the release worktree before expensive validation and publication. */
57
+ readonly validationTasks?: readonly string[];
56
58
  /**
57
59
  * Generate a versioned release summary locally. Defaults to enabled with the
58
60
  * standard Cursor, Codex, Claude fallback order.
@@ -371,6 +373,9 @@ export class DBXToolsRelease extends Component {
371
373
  ...(options.pythonRoot
372
374
  ? [`--python-root ${JSON.stringify(options.pythonRoot)}`]
373
375
  : []),
376
+ ...(options.validationTasks ?? []).map(
377
+ (task) => `--validate-task ${JSON.stringify(task)}`,
378
+ ),
374
379
  ...summaryArgs,
375
380
  ].join(" "),
376
381
  ),
@@ -163,6 +163,12 @@ program
163
163
  .option("--local-registry <value>", "local npm registry: auto, false, or an explicit URL", "auto")
164
164
  .option("--local-pypi <value>", "local PyPI index: auto, false, or an explicit URL", "auto")
165
165
  .option("--python-root <path>", "Python workspace package root")
166
+ .option(
167
+ "--validate-task <task>",
168
+ "repository task to run before release validation; repeatable",
169
+ (task: string, tasks: string[]) => [...tasks, task],
170
+ [],
171
+ )
166
172
  .option("--no-release-summary", "skip optional AI release summary generation")
167
173
  .option(
168
174
  "--release-summary-providers <providers>",
@@ -181,6 +187,7 @@ program
181
187
  localRegistry: string;
182
188
  localPypi: string;
183
189
  pythonRoot?: string;
190
+ validateTask: string[];
184
191
  releaseSummary: boolean;
185
192
  releaseSummaryProviders?: string;
186
193
  localCargo: boolean;
@@ -270,6 +277,9 @@ program
270
277
  runIgnoringStdout(releaseRoot, "cargo", ["metadata", "--format-version", "1"]);
271
278
  }
272
279
  run(releaseRoot, process.execPath, [versionCheckScript]);
280
+ for (const task of opts.validateTask) {
281
+ run(releaseRoot, process.execPath, ["run", task]);
282
+ }
273
283
  if (existsSync(join(releaseRoot, "Cargo.toml"))) {
274
284
  run(releaseRoot, "cargo", [
275
285
  "test",