@dbx-tools/projen 0.9.99 → 0.9.106

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
@@ -2,23 +2,8 @@
2
2
 
3
3
  Projen engine for Bun-first dbx-tools workspaces.
4
4
 
5
- Import this package from `.projenrc.ts` when a repository should discover
6
- packages from the filesystem and generate manifests, tsconfigs,
7
- barrels, codegen outputs, and release tasks.
8
-
9
- Key features:
10
-
11
- - Filesystem package discovery: every `src`-bearing folder under configured
12
- workspace roots becomes a TypeScript package.
13
- - Tag-driven runtime defaults for shared libraries, Node packages, CLIs,
14
- servers, and React/browser UI packages.
15
- - Generated package manifests, tsconfigs, package-root barrels, Bun app configs,
16
- VS Code settings, and a committed `pnpm-workspace.yaml` retained for
17
- Databricks Apps deployment.
18
- - Extensible mixin system so repositories can add deps, tasks, or generated
19
- files based on package predicates.
20
- - Zod schema generation from `.d.ts` inputs.
21
- - Read-only generated-file ownership, cleanup, and watch-loop helpers.
5
+ Use it from `.projenrc.ts` to discover packages from the filesystem and generate
6
+ manifests, tsconfigs, barrels, code generation, and release tasks.
22
7
 
23
8
  ## Define A Workspace Root
24
9
 
@@ -34,6 +19,11 @@ const rootProject = new project.DBXToolsNodeProject({
34
19
  rootProject.synth();
35
20
  ```
36
21
 
22
+ The project discovers every `src`-bearing folder under the configured roots and
23
+ applies defaults for shared libraries, Node packages, CLIs, servers, and React
24
+ packages. It can also generate Zod schemas from declarations and coordinate
25
+ generated-file cleanup and watch tasks.
26
+
37
27
  Every `src`-bearing folder under the configured roots becomes a
38
28
  `DBXToolsTypeScriptProject`. Folder path drives package name and runtime tags.
39
29
 
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.9.99";
6
+ export const PACKAGE_VERSION = "0.9.106";
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
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@clack/prompts": "^1.7.0",
33
- "@dbx-tools/core": "^0.9.99",
34
- "@dbx-tools/path": "^0.9.99",
35
- "@dbx-tools/shared-core": "^0.9.99",
33
+ "@dbx-tools/core": "^0.9.106",
34
+ "@dbx-tools/path": "^0.9.106",
35
+ "@dbx-tools/shared-core": "^0.9.106",
36
36
  "commander": "^15.0.0",
37
37
  "concurrently": "^10.0.3",
38
38
  "constructs": "^10.6.0",
@@ -54,7 +54,7 @@
54
54
  },
55
55
  "main": "index.ts",
56
56
  "license": "Apache-2.0",
57
- "version": "0.9.99",
57
+ "version": "0.9.106",
58
58
  "types": "index.ts",
59
59
  "type": "module",
60
60
  "exports": {
package/src/project-js.ts CHANGED
@@ -737,6 +737,7 @@ function hasCustomInstallSteps(task: Task, defaultCommand: string): boolean {
737
737
  return step.exec !== defaultCommand;
738
738
  }
739
739
 
740
+ /** Suppress redundant child install tasks when the workspace root owns dependency installation. */
740
741
  export const ROOT_INSTALL_ONLY_MIXIN = mixin.create(
741
742
  (construct: IConstruct): construct is DBXToolsNodeProject | DBXToolsTypeScriptProject =>
742
743
  (construct instanceof DBXToolsNodeProject || construct instanceof DBXToolsTypeScriptProject) &&
@@ -505,10 +505,17 @@ export function resolvePythonNodeBindingModule(entrypoint: string, module: strin
505
505
  }
506
506
 
507
507
  function canonicalPath(path: string): string {
508
- try {
509
- return realpathSync(path);
510
- } catch {
511
- return resolve(path);
508
+ const missing: string[] = [];
509
+ let candidate = resolve(path);
510
+ while (true) {
511
+ try {
512
+ return resolve(realpathSync(candidate), ...missing);
513
+ } catch {
514
+ const parent = dirname(candidate);
515
+ if (parent === candidate) return resolve(path);
516
+ missing.unshift(basename(candidate));
517
+ candidate = parent;
518
+ }
512
519
  }
513
520
  }
514
521
 
package/tasks/bump.ts CHANGED
@@ -35,6 +35,11 @@ export async function main(): Promise<void> {
35
35
 
36
36
  if (opts.synth) {
37
37
  runTaskCommand(root, process.execPath, [".projenrc.ts"]);
38
+ // Package manifests are generated during the first synthesis, while
39
+ // cross-package derived artifacts can read those manifests earlier in
40
+ // the same pass. A second pass makes the new version visible to every
41
+ // generator and leaves release validation on a converged tree.
42
+ runTaskCommand(root, process.execPath, [".projenrc.ts"]);
38
43
  }
39
44
  logger.success(`workspace version synchronized at ${next.version}`);
40
45
  });
package/tasks/release.ts CHANGED
@@ -258,9 +258,7 @@ export async function runRelease(
258
258
  options.releaseNotesInstructions !== undefined &&
259
259
  (options.releaseNotesText !== undefined || options.releaseNotesFile !== undefined)
260
260
  ) {
261
- throw new Error(
262
- "--release-notes-instructions cannot be combined with supplied release notes",
263
- );
261
+ throw new Error("--release-notes-instructions cannot be combined with supplied release notes");
264
262
  }
265
263
  if (
266
264
  options.releaseNotes === false &&