@dbx-tools/projen 0.9.99 → 0.9.105
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 +7 -17
- package/index.ts +1 -1
- package/package.json +4 -4
- package/src/project-js.ts +1 -0
- package/src/python-node-bindings.ts +11 -4
- package/tasks/bump.ts +5 -0
- package/tasks/release.ts +1 -3
package/README.md
CHANGED
|
@@ -2,23 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Projen engine for Bun-first dbx-tools workspaces.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
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.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.105";
|
|
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.
|
|
34
|
-
"@dbx-tools/path": "^0.9.
|
|
35
|
-
"@dbx-tools/shared-core": "^0.9.
|
|
33
|
+
"@dbx-tools/core": "^0.9.105",
|
|
34
|
+
"@dbx-tools/path": "^0.9.105",
|
|
35
|
+
"@dbx-tools/shared-core": "^0.9.105",
|
|
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.
|
|
57
|
+
"version": "0.9.105",
|
|
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
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
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 &&
|