@dbx-tools/projen 0.9.153 → 0.9.157

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 (50) hide show
  1. package/README.md +44 -52
  2. package/index.ts +43 -21
  3. package/package.json +8 -8
  4. package/src/_task-command.ts +7 -7
  5. package/src/appkit-workspace.ts +278 -104
  6. package/src/barrels.ts +147 -259
  7. package/src/bun-app.ts +54 -10
  8. package/src/clean.ts +6 -6
  9. package/src/engine-root.ts +4 -4
  10. package/src/mixin.ts +0 -2
  11. package/src/module-exports.ts +4 -5
  12. package/src/npm-packaging.ts +128 -0
  13. package/src/npm-release.ts +200 -0
  14. package/src/packages.ts +11 -11
  15. package/src/project-js.ts +209 -103
  16. package/src/project-predicate.ts +5 -12
  17. package/src/project-py.ts +8 -6
  18. package/src/project.ts +7 -14
  19. package/src/publish.ts +3 -3
  20. package/src/python-node-bindings.ts +16 -12
  21. package/src/python-packaging.ts +177 -0
  22. package/src/release-context.ts +4 -0
  23. package/src/release-options.ts +2 -2
  24. package/src/release.ts +133 -13
  25. package/src/shared-core-usage.ts +17 -4
  26. package/src/tags.ts +10 -9
  27. package/src/watch.ts +7 -9
  28. package/src/workspace-lock.ts +2 -2
  29. package/src/workspace-manifest.ts +2 -2
  30. package/tasks/appkit-deploy.ts +35 -15
  31. package/tasks/barrels.ts +6 -9
  32. package/tasks/bump.ts +1 -1
  33. package/tasks/clean.ts +3 -3
  34. package/tasks/cli.ts +3 -3
  35. package/tasks/compile-workspace.ts +8 -8
  36. package/tasks/dev-watch.ts +11 -11
  37. package/tasks/local-publish.ts +6 -6
  38. package/tasks/publish-npm.ts +11 -317
  39. package/tasks/publish-python.ts +2 -180
  40. package/tasks/publish.ts +6 -11
  41. package/tasks/python-node-bindings.ts +2 -2
  42. package/tasks/python-registry.ts +6 -6
  43. package/tasks/python-sync.ts +2 -3
  44. package/tasks/release-version.ts +1 -1
  45. package/tasks/release.ts +11 -11
  46. package/tasks/sync.ts +2 -2
  47. package/tasks/test-workspace.ts +9 -9
  48. package/tasks/verify-publications.ts +273 -0
  49. package/tasks/version-check.ts +5 -5
  50. /package/{tasks → src}/python-release.ts +0 -0
package/README.md CHANGED
@@ -7,9 +7,9 @@ dbx-tools workspaces.
7
7
  ## Define a workspace root
8
8
 
9
9
  ```ts
10
- import { project } from "@dbx-tools/projen";
10
+ import { projectJs } from "@dbx-tools/projen";
11
11
 
12
- const rootProject = new project.DBXToolsNodeProject({
12
+ const rootProject = new projectJs.DBXToolsNodeProject({
13
13
  name: "my-apps",
14
14
  scope: "my-apps",
15
15
  packageRoots: ["packages", "examples"],
@@ -88,9 +88,9 @@ sibling registry requirements there with parsed TOML. Source manifests already
88
88
  carry the root `VERSION` and are never rewritten for publication.
89
89
 
90
90
  ```ts
91
- import { project, projectPy } from "@dbx-tools/projen";
91
+ import { projectJs, projectPy } from "@dbx-tools/projen";
92
92
 
93
- const root = new project.DBXToolsNodeProject({ name: "my-apps" });
93
+ const root = new projectJs.DBXToolsNodeProject({ name: "my-apps" });
94
94
 
95
95
  new projectPy.DBXToolsPythonWorkspace(root, {
96
96
  root: "python/packages",
@@ -131,9 +131,9 @@ one binding object or an array. Projen writes one
131
131
  in consuming repositories after `@dbx-tools/projen` is installed.
132
132
 
133
133
  ```ts
134
- import { project, projectPy } from "@dbx-tools/projen";
134
+ import { projectJs, projectPy } from "@dbx-tools/projen";
135
135
 
136
- const root = new project.DBXToolsNodeProject({ name: "my-apps" });
136
+ const root = new projectJs.DBXToolsNodeProject({ name: "my-apps" });
137
137
 
138
138
  new projectPy.DBXToolsPythonWorkspace(root, {
139
139
  root: "packages/py",
@@ -238,9 +238,9 @@ Use a package's `sync` field when published Python code must include a reviewed
238
238
  subset of a Git repository instead of exposing a direct URL dependency:
239
239
 
240
240
  ```ts
241
- import { project, projectPy } from "@dbx-tools/projen";
241
+ import { projectJs, projectPy } from "@dbx-tools/projen";
242
242
 
243
- const root = new project.DBXToolsNodeProject({ name: "my-apps" });
243
+ const root = new projectJs.DBXToolsNodeProject({ name: "my-apps" });
244
244
 
245
245
  new projectPy.DBXToolsPythonWorkspace(root, {
246
246
  root: "packages/py",
@@ -292,9 +292,9 @@ pinned source intentionally.
292
292
  ## Customize packages with mixins
293
293
 
294
294
  ```ts
295
- import { project } from "@dbx-tools/projen";
295
+ import { project, projectJs } from "@dbx-tools/projen";
296
296
 
297
- const rootProject = new project.DBXToolsNodeProject();
297
+ const rootProject = new projectJs.DBXToolsNodeProject();
298
298
 
299
299
  project.applyToProjects(rootProject, { tags: "shared" }, (pkg) => {
300
300
  pkg.addDeps("zod@catalog:");
@@ -322,23 +322,18 @@ parameter to `Project`). Drop to `mixin.create(predicate, fn)` +
322
322
  Built-in tag mixins set runtime defaults for `shared`, `node`, `cli`, `server`,
323
323
  `ui`, and `app`. Repo-specific mixins layer package-specific dependencies,
324
324
  scripts, and generated files on top. `ui` is for reusable React component
325
- libraries. `app` owns a Bun-built browser application. Terminal
326
- `packages/**/app` and `packages/**/server` directories select those specific
327
- roles instead of inheriting a generic `ui` or `node` ancestor.
328
-
329
- AppKit mode defaults to `auto`: when the workspace has both `app` and `server`
330
- packages, the engine adds the AppKit, Vite, React plugin, and Tailwind
331
- dependencies to the package that uses each one. It also disables AppKit's
332
- package migration, includes the Vite and generated-type inputs in the browser
333
- tsconfig, generates a read-only monorepo-safe `vite.config.ts`, adds
334
- `appkit:sync`, and ignores local Databricks state. Put repository-specific Vite
335
- settings in the optional unmanaged `vite.config.override.ts`; the generated
336
- config merges it over the engine defaults. Set
337
- `appkit: false` to disable this ownership. Set `appkit: true` to require AppKit
338
- and fail synthesis when either package role or its required entry files are
339
- missing. Keep application-specific UI and server dependencies in the consuming
340
- `.projenrc.ts`. A workspace with one `server` package also receives standard
341
- `check`, `dev`, and `start` tasks unless the repository defines them.
325
+ libraries. The generic `app` tag still owns a standalone Bun browser package.
326
+
327
+ One private Bun/AppKit application can live at `packages/app`, with browser
328
+ source under `client/` and backend source under `server/`. Set `appRoot` to
329
+ override that location or false to disable application-root discovery. AppKit
330
+ mode defaults to `auto` and configures the application whenever the root exists;
331
+ `appkit: true` additionally requires `client/index.html` and
332
+ `server/server.ts`. The engine generates the root Bun/TypeScript/AppKit
333
+ configuration, `client/vite.config.ts`, `app.yaml`, and a minimal direct-engine
334
+ bundle. Set `appBundle: false` when the application owns a richer
335
+ `databricks.yml`. Put repository-specific Vite settings in the unmanaged
336
+ `client/vite.config.override.ts`.
342
337
 
343
338
  The generated `deploy` task validates with the native Bun build, then delegates
344
339
  to `appkit:deploy` unless the repository already owns `deploy`. The AppKit task
@@ -370,11 +365,6 @@ dependencies are watched with the shared generated/dependency/test/temp ignores.
370
365
  The configured restart key triggers an immediate restart. The demo uses this
371
366
  task to run its concrete server entrypoint. The `server` tag does not assume one.
372
367
 
373
- AppKit 0.81's `appkitServerConfig()` is the preferred tsdown preset for a
374
- consumer app using conventional compiled `server/agents/*/agent.ts` entries. It
375
- does not replace this engine's package discovery, Bun browser build, source-run
376
- server, publication, or Databricks deployment staging.
377
-
378
368
  A tag layers over a shared compiler floor that every package receives at
379
369
  construction: ES2022 plus the web-platform globals available in every runtime,
380
370
  with no DOM library and no Node types. The tags add an environment on top.
@@ -431,9 +421,9 @@ barrels.generateBarrels();
431
421
  Add declaration inputs through the owning package's typed config:
432
422
 
433
423
  ```ts
434
- import { project } from "@dbx-tools/projen";
424
+ import { project, projectJs } from "@dbx-tools/projen";
435
425
 
436
- const rootProject = new project.DBXToolsNodeProject({ name: "my-apps" });
426
+ const rootProject = new projectJs.DBXToolsNodeProject({ name: "my-apps" });
437
427
  project.applyToProjects(rootProject, { path: "packages/shared/generated" }, (pkg) => {
438
428
  pkg.dbxToolsConfig.codegenInputs.push("node_modules/example/model.d.ts");
439
429
  });
@@ -448,16 +438,15 @@ added to `ignorePatterns` at synth - named individually using
448
438
  package may hold hand-written modules beside its generated ones, and those must
449
439
  stay linted.
450
440
 
451
- `generateBarrels()` writes the package-root `index.ts` and, for packages with the
452
- generated `"./*": "./src/*/index.ts"` export, read-only entrypoints in nested
453
- source directories. For example, `src/example/one.ts` becomes importable through
454
- `@scope/package/example`, and `src/example/wasm/one.ts` through
455
- `@scope/package/example/wasm`. A sibling `exports.ts` can extend or override the
456
- generated surface at the package root or any nested level. Existing hand-written
457
- `index.ts` entrypoints remain authoritative.
441
+ `generateBarrels()` writes read-only entrypoints at the package root. Modules
442
+ directly under `src` go into `index.ts`; modules directly under
443
+ `src/example/wasm` go into `index.example.wasm.ts` and are importable through
444
+ `@scope/package/example/wasm`. The generator never writes nested
445
+ `src/**/index.ts` files or per-module package exports.
458
446
 
459
- Generated barrels include module namespaces and flat unique type/value exports.
460
- The package root additionally exposes `PACKAGE_IDENTIFIER`. A name two modules
447
+ Generated barrels include module namespaces and conflict-free flat value and
448
+ type exports. The package root additionally exposes `PACKAGE_IDENTIFIER` and
449
+ `PACKAGE_VERSION`, even when no module lives directly under `src`. A name two modules
461
450
  both declare is ambiguous and stays namespace-only, except when one is generated:
462
451
  the hand-written module is the curated view of the generated shape
463
452
  (`shared-genie`'s `genie-model.ts` extends its own codegen'd `dashboards.ts`), so
@@ -469,9 +458,9 @@ is attempted even if one fails. Failures are re-thrown together as an
469
458
  ## Configure pnpm catalogs
470
459
 
471
460
  ```ts
472
- import { project } from "@dbx-tools/projen";
461
+ import { projectJs } from "@dbx-tools/projen";
473
462
 
474
- const rootProject = new project.DBXToolsNodeProject({ name: "my-apps" });
463
+ const rootProject = new projectJs.DBXToolsNodeProject({ name: "my-apps" });
475
464
  rootProject.pnpmWorkspace?.addCatalog("react", "^19");
476
465
  rootProject.pnpmWorkspace?.allowBuild("esbuild");
477
466
  ```
@@ -483,9 +472,9 @@ setting goes through the root's `workspaceYaml` option, which is projen's typed
483
472
  `PnpmWorkspaceYamlOptions`:
484
473
 
485
474
  ```ts
486
- import { project } from "@dbx-tools/projen";
475
+ import { projectJs } from "@dbx-tools/projen";
487
476
 
488
- const rootProject = new project.DBXToolsNodeProject({
477
+ const rootProject = new projectJs.DBXToolsNodeProject({
489
478
  name: "my-apps",
490
479
  pnpmOptions: {
491
480
  workspaceYamlOptions: {
@@ -601,11 +590,14 @@ site. Install validation prerequisites through `releaseSetupSteps`.
601
590
  Publication jobs download the resulting artifacts rather than rebuilding the
602
591
  workspace. Each Python package retains its own publishing environment and waits
603
592
  for its package dependencies to publish. The npm job uses the bundled archive
604
- publisher without a checkout or workspace install. Pages deploys the already
605
- built site after registry publication succeeds. Local npm and Python registry publication remains available
606
- through the direct local publication tooling. Those local publishers run
607
- concurrently; a failure or release termination stops every live publisher before
608
- the command returns.
593
+ publisher without a checkout or workspace install. After all selected public
594
+ publishers finish, one verifier downloads the complete release artifact set and
595
+ polls only unresolved packages concurrently. It validates npm tarball contents
596
+ and PyPI distribution hashes before Pages deploys the already built site. Local
597
+ npm and Python registry publication remains available through the direct local
598
+ publication tooling and does not wait for registry propagation. Those local
599
+ publishers run concurrently; a failure or release termination stops every live
600
+ publisher before the command returns.
609
601
 
610
602
  The default release publishes npm, Python, and docs, then publishes to
611
603
  configured local registries. Use `bun run release --help` or the generated
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.153";
6
+ export const PACKAGE_VERSION = "0.9.157";
7
7
  export * as appkitWorkspace from "./src/appkit-workspace.ts";
8
8
  export * as barrels from "./src/barrels.ts";
9
9
  export * as bunApp from "./src/bun-app.ts";
@@ -15,21 +15,24 @@ export * as devWatch from "./src/dev-watch.ts";
15
15
  export * as engineRoot from "./src/engine-root.ts";
16
16
  export * as generated from "./src/generated.ts";
17
17
  export * as mixin from "./src/mixin.ts";
18
- export * as moduleExports from "./src/module-exports.ts";
18
+ export * as npmPackaging from "./src/npm-packaging.ts";
19
+ export * as npmRelease from "./src/npm-release.ts";
19
20
  export * as packages from "./src/packages.ts";
20
21
  export * as pnpmWorkspace from "./src/pnpm-workspace.ts";
21
- export * as project from "./src/project.ts";
22
22
  export * as projectJs from "./src/project-js.ts";
23
23
  export * as projectPredicate from "./src/project-predicate.ts";
24
24
  export * as projectPy from "./src/project-py.ts";
25
+ export * as project from "./src/project.ts";
25
26
  export * as projenVersion from "./src/projen-version.ts";
26
27
  export * as publish from "./src/publish.ts";
27
- export * as pythonNodeBindings from "./src/python-node-bindings.ts";
28
28
  export * as pythonNodeBindingsComponent from "./src/python-node-bindings-component.ts";
29
+ export * as pythonNodeBindings from "./src/python-node-bindings.ts";
29
30
  export * as pythonNodeRuntime from "./src/python-node-runtime.ts";
30
- export * as release from "./src/release.ts";
31
+ export * as pythonPackaging from "./src/python-packaging.ts";
32
+ export * as pythonRelease from "./src/python-release.ts";
31
33
  export * as releaseContext from "./src/release-context.ts";
32
34
  export * as releaseOptions from "./src/release-options.ts";
35
+ export * as release from "./src/release.ts";
33
36
  export * as scaffold from "./src/scaffold.ts";
34
37
  export * as sharedCoreUsage from "./src/shared-core-usage.ts";
35
38
  export * as tags from "./src/tags.ts";
@@ -39,46 +42,65 @@ export * as watch from "./src/watch.ts";
39
42
  export * as workspaceLock from "./src/workspace-lock.ts";
40
43
  export * as workspaceManifest from "./src/workspace-manifest.ts";
41
44
  export * as workspaceVersion from "./src/workspace-version.ts";
42
- export { AppKitWorkspace } from "./src/appkit-workspace.ts";
43
- export type { AppKitWorkspaceMode, AppKitWorkspaceOptions } from "./src/appkit-workspace.ts";
45
+ export { isAppKitApplication, AppKitWorkspace } from "./src/appkit-workspace.ts";
46
+ export type { AppKitWorkspaceMode, AppKitBundleOptions, AppKitWorkspaceOptions } from "./src/appkit-workspace.ts";
47
+ export { isGeneratedBarrel, folderBarrelFile, generateBarrels } from "./src/barrels.ts";
44
48
  export { BUN_DEV_OVERRIDE, BUN_BUILD_OVERRIDE, BUN_APP_OVERRIDES, RootBunfigFile, BunfigFile, BunDevServerFile, BunBuildFile } from "./src/bun-app.ts";
49
+ export type { BunBuildFileOptions } from "./src/bun-app.ts";
45
50
  export { BUN_VERSION, MINIMUM_BUN_VERSION, BUN_VERSION_CHECK_SCRIPT } from "./src/bun-workflow.ts";
51
+ export { listGeneratedFiles, listNodeModulesDirs, removePaths } from "./src/clean.ts";
52
+ export { codegenModulePaths, generateCodegen } from "./src/codegen.ts";
46
53
  export { DBXToolsConfigDataSchema, DBXToolsConfig } from "./src/dbx-tools-config.ts";
47
54
  export type { DBXToolsConfigOptions, DBXToolsConfigData } from "./src/dbx-tools-config.ts";
48
55
  export { DEV_WATCH_TASK, DEV_WATCH_SCRIPT, DEV_RESTART_DEBOUNCE_MS, DEV_RESTART_KEY } from "./src/dev-watch.ts";
49
56
  export { resolvePkgRoot } from "./src/engine-root.ts";
50
- export { PYTHON_GENERATED_PACKAGE, PYTHON_SYNC_PACKAGE } from "./src/generated.ts";
57
+ export { PYTHON_GENERATED_PACKAGE, PYTHON_SYNC_PACKAGE, makeWritable, makeReadonly, header, headerLines, isGenerated, stampGenerated } from "./src/generated.ts";
51
58
  export type { HeaderOpts } from "./src/generated.ts";
52
- export type { ConstructsMixin } from "./src/mixin.ts";
59
+ export { create } from "./src/mixin.ts";
60
+ export { moduleStatements, moduleExports, publicFunctionExports, publicNamespaceExports } from "./src/module-exports.ts";
53
61
  export type { ModuleStatement, ModuleExport, PublicFunctionExport } from "./src/module-exports.ts";
54
- export { repoRoot, DEFAULT_PACKAGE_ROOTS, DiscoveredPackage } from "./src/packages.ts";
62
+ export { applyPublishConfig, packNpmPackage } from "./src/npm-packaging.ts";
63
+ export type { NpmArchiveManifestTransform } from "./src/npm-packaging.ts";
64
+ export { npmReleaseMatches, publishedNpmRelease, readNpmArchiveManifest, readNpmArchiveIdentity, npmArchiveContentDigest } from "./src/npm-release.ts";
65
+ export type { NpmReleaseIdentity, NpmArchiveManifest } from "./src/npm-release.ts";
66
+ export { resolveRepoRoot, repoRoot, DEFAULT_PACKAGE_ROOTS, projectName, toPosix, isGeneratedFile, isModuleFile, DiscoveredPackage, scanPackages, readPackageManifest, readDbxToolsConfig, syncResynthPaths, syncWatchTasks, recordedPackages, workspaceDependencyDirectories, recordedRoots } from "./src/packages.ts";
55
67
  export type { RecordedPackage } from "./src/packages.ts";
56
68
  export { PnpmWorkspaceState } from "./src/pnpm-workspace.ts";
57
69
  export type { Catalog, AllowBuilds, DBXToolsPNPMWorkspaceOptions } from "./src/pnpm-workspace.ts";
58
- export type { DBXToolsProjectLanguage, DBXToolsProjectOptions, DBXToolsProject, ApplyToProjectsOptions } from "./src/project.ts";
59
- export { PackageIdentifier, LICENSE, DBXToolsNodeProject, ROOT_INSTALL_ONLY_MIXIN, DBXToolsTypeScriptProject } from "./src/project-js.ts";
70
+ export { PackageIdentifier, identifier, applyCompilerOptions, applyIncludes, applyExports, addExports, addOptionalPeer, projectRepositoryUrl, projectReleaseBranch, addPackageFiles, srcFolderExports, LICENSE, DBXToolsNodeProject, ROOT_INSTALL_ONLY_MIXIN, DBXToolsTypeScriptProject, taskCommand } from "./src/project-js.ts";
60
71
  export type { DBXToolsJavaScriptProject, DBXToolsReleaseMode, DiscoveredTypeScriptPackageOptions, DBXToolsJavaScriptProjectOptions, DBXToolsTypeScriptProjectOptions } from "./src/project-js.ts";
61
- export { DBXToolsPythonProject, DBXToolsPythonWorkspace } from "./src/project-py.ts";
72
+ export { isProject, isDBXToolsProject, isDBXToolsJavaScriptProject, hasName, hasIdentifierPackageName, hasIdentifierName, hasIdentifierScope, hasTag, hasPath } from "./src/project-predicate.ts";
73
+ export { pythonPackagePath, pythonModuleName, DBXToolsPythonProject, DBXToolsPythonWorkspace } from "./src/project-py.ts";
62
74
  export type { PythonRepositoryOptions, PythonPackageOptions, PythonSourceSyncOptions, DBXToolsPythonProjectOptions, PythonReleaseOptions, DBXToolsPythonWorkspaceOptions } from "./src/project-py.ts";
75
+ export { applyToProjects } from "./src/project.ts";
76
+ export type { DBXToolsProjectLanguage, DBXToolsProjectOptions, DBXToolsProject, ApplyToProjectsOptions } from "./src/project.ts";
63
77
  export { PROJEN_VERSION } from "./src/projen-version.ts";
64
- export { COMPILED_DIR, COMPILED_COMPILER_OPTIONS } from "./src/publish.ts";
65
- export type { ResolvedPythonNodeFunctionOverride, ResolvedPythonNodeBindings, GeneratePythonNodeBindingsOptions } from "./src/python-node-bindings.ts";
78
+ export { COMPILED_DIR, COMPILED_COMPILER_OPTIONS, publishesCompiled, applyCompiledPublish } from "./src/publish.ts";
66
79
  export { PYTHON_NODE_BINDINGS_TASK, PYTHON_NODE_BINDINGS_CHECK_TASK, PYTHON_NODE_BINDINGS_WATCH_TASK, PythonNodeBindings } from "./src/python-node-bindings-component.ts";
67
80
  export type { PythonNodeFunctionOverride, PythonNodeBindingsOptions, PythonNodeBindingsComponentOptions } from "./src/python-node-bindings-component.ts";
81
+ export { generatePythonNodeBindings, resolvePythonNodeBindingModules, pythonNodeBindingFunctionName, isPythonNodeBindingIdentifier, pythonNodeBindingInputFingerprint, pythonNodeBindingOutputs, pythonNodeBindingOutputsCurrent, fingerprintPythonNodeBindingOutput, resolveAllPythonNodeBindings, pythonNodeBindingProjects, resolvePythonNodeBindings, resolvePythonNodeBindingModule, pythonNodeBindingWatchInputs, affectedPythonNodeBindingProjects } from "./src/python-node-bindings.ts";
82
+ export type { ResolvedPythonNodeFunctionOverride, ResolvedPythonNodeBindings, GeneratePythonNodeBindingsOptions } from "./src/python-node-bindings.ts";
68
83
  export { PYTHON_NODE_RUNTIME_DISTRIBUTION, PYTHON_NODE_RUNTIME_MODULE, PYTHON_NODE_RUNTIME_TASK, PYTHON_NODE_RUNTIME_CHECK_TASK, PYTHON_NODE_RUNTIME_WATCH_TASK, PythonNodeRuntime } from "./src/python-node-runtime.ts";
69
84
  export type { PythonNodeRuntimeOptions } from "./src/python-node-runtime.ts";
70
- export { DBXToolsRelease } from "./src/release.ts";
71
- export type { ReleaseDocsOptions, DBXToolsReleaseOptions } from "./src/release.ts";
72
- export { RELEASE_VERSION, RELEASE_WORKFLOW_FILE } from "./src/release-context.ts";
73
- export { RELEASE_PUBLISH_TARGETS, RELEASE_INSTALL_MODES, ReleaseStepSelectionSchema } from "./src/release-options.ts";
85
+ export { pythonDistributionPaths, publishPythonProjects, buildPythonProjects } from "./src/python-packaging.ts";
86
+ export { pythonProjectInfo, preparePythonProjectForPublication } from "./src/python-release.ts";
87
+ export { RELEASE_VERSION, RELEASE_WORKFLOW_FILE, PUBLIC_NPM_REGISTRY_URL, PUBLIC_PYPI_REGISTRY_URL } from "./src/release-context.ts";
88
+ export { RELEASE_PUBLISH_TARGETS, RELEASE_INSTALL_MODES, ReleaseStepSelectionSchema, releaseStepSelection, releaseTagAnnotation, parseReleaseTagAnnotation, releasePublishesLocally } from "./src/release-options.ts";
74
89
  export type { ReleasePublishTarget, ReleaseInstallMode, ReleaseStepSelection, ReleaseSelectionOptions } from "./src/release-options.ts";
75
- export { SHARED_CORE_BINDING_EXPORTS } from "./src/shared-core-usage.ts";
90
+ export { tryReleaseWorkflow, releaseTagPattern, releaseCondition, releaseBuildSteps, nodeReleaseSetupSteps, uvSetupStep, refreshReleaseDocsDependencies, refreshPublicationVerification, DBXToolsRelease } from "./src/release.ts";
91
+ export type { ReleaseDocsOptions, DBXToolsReleaseOptions } from "./src/release.ts";
92
+ export { runSynth } from "./src/scaffold.ts";
93
+ export { SHARED_CORE_BINDING_EXPORTS, sharedCorePackageDir, sharedCoreExportUsage, duplicatedOwnedHelpers, formatSharedCoreUsage } from "./src/shared-core-usage.ts";
76
94
  export type { SharedCoreUsageKind, SharedCoreExportUsage } from "./src/shared-core-usage.ts";
77
95
  export { AGNOSTIC_COMPILER_OPTIONS, PACKAGE_TAG_MIXINS } from "./src/tags.ts";
78
96
  export type { PackageTag } from "./src/tags.ts";
79
97
  export { DBXToolsRootTsconfig } from "./src/tsconfig.ts";
80
98
  export type { DBXToolsRootTsconfigOptions } from "./src/tsconfig.ts";
99
+ export { configureVsCode } from "./src/vscode.ts";
100
+ export { watchRoots, watchLoop } from "./src/watch.ts";
81
101
  export type { IgnoreGroupOptions, WatchLoopOptions } from "./src/watch.ts";
102
+ export { withWorkspaceMutationLock } from "./src/workspace-lock.ts";
82
103
  export type { WorkspaceMutationLockOptions } from "./src/workspace-lock.ts";
83
- export { VERSION_FILE, DEFAULT_VERSION } from "./src/workspace-version.ts";
104
+ export { materializeWorkspaceManifest, withMaterializedWorkspaceManifests, withStagedWorkspaceManifests } from "./src/workspace-manifest.ts";
105
+ export { VERSION_FILE, DEFAULT_VERSION, parseSemver, compareSemver, incrementSemver, versionPath, readWorkspaceVersion, writeWorkspaceVersion, syncWorkspaceManifestVersion, resolveNextVersion } from "./src/workspace-version.ts";
84
106
  export type { Semver, VersionLevel } from "./src/workspace-version.ts";
package/package.json CHANGED
@@ -30,11 +30,11 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@clack/prompts": "^1.7.0",
33
- "@dbx-tools/auth": "^0.9.153",
34
- "@dbx-tools/cli-args": "^0.9.153",
35
- "@dbx-tools/core": "^0.9.153",
36
- "@dbx-tools/path": "^0.9.153",
37
- "@dbx-tools/shared-core": "^0.9.153",
33
+ "@dbx-tools/auth": "^0.9.157",
34
+ "@dbx-tools/cli-args": "^0.9.157",
35
+ "@dbx-tools/core": "^0.9.157",
36
+ "@dbx-tools/path": "^0.9.157",
37
+ "@dbx-tools/shared-core": "^0.9.157",
38
38
  "commander": "^15.0.0",
39
39
  "concurrently": "^10.0.3",
40
40
  "constructs": "^10.6.0",
@@ -56,14 +56,14 @@
56
56
  },
57
57
  "main": "index.ts",
58
58
  "license": "Apache-2.0",
59
- "version": "0.9.153",
59
+ "version": "0.9.157",
60
60
  "types": "index.ts",
61
61
  "type": "module",
62
62
  "exports": {
63
63
  ".": "./index.ts",
64
64
  "./pypi-trusted-publisher-instructions": "./tasks/pypi-trusted-publisher-instructions.ts",
65
- "./python-release-packaging": "./tasks/publish-python.ts",
66
- "./release-packaging": "./tasks/publish-npm.ts",
65
+ "./python-release-packaging": "./src/python-packaging.ts",
66
+ "./release-packaging": "./src/npm-packaging.ts",
67
67
  "./package.json": "./package.json"
68
68
  },
69
69
  "files": [
@@ -1,6 +1,6 @@
1
1
  /** Shared subprocess policy for Projen source and task entrypoints. */
2
2
 
3
- import * as exec from "@dbx-tools/core/exec";
3
+ import { spawnSync, type ChildProcessResult, spawn } from "@dbx-tools/core";
4
4
 
5
5
  export interface TaskCommandOptions {
6
6
  readonly env?: NodeJS.ProcessEnv;
@@ -23,7 +23,7 @@ export function runTaskCommand(
23
23
  args: readonly string[],
24
24
  options: TaskCommandOptions = {},
25
25
  ): void {
26
- exec.spawnSync(executable(command), [...args], {
26
+ spawnSync(executable(command), [...args], {
27
27
  cwd,
28
28
  env: options.env,
29
29
  stdout: "inherit",
@@ -49,8 +49,8 @@ export function spawnTaskCommand(
49
49
  command: string,
50
50
  args: readonly string[],
51
51
  options: TaskCommandOptions & { readonly signal?: AbortSignal } = {},
52
- ): exec.ChildProcessResult {
53
- return exec.spawn(executable(command), [...args], {
52
+ ): ChildProcessResult {
53
+ return spawn(executable(command), [...args], {
54
54
  cwd,
55
55
  env: options.env,
56
56
  stdout: "inherit",
@@ -68,7 +68,7 @@ export function captureTaskCommand(
68
68
  args: readonly string[],
69
69
  options: CaptureTaskCommandOptions = {},
70
70
  ): string {
71
- const result = exec.spawnSync(executable(command), [...args], {
71
+ const result = spawnSync(executable(command), [...args], {
72
72
  cwd,
73
73
  env: options.env,
74
74
  stdout: "capture",
@@ -87,7 +87,7 @@ export function tryTaskCommand(
87
87
  options: TaskCommandOptions = {},
88
88
  ): boolean {
89
89
  return (
90
- exec.spawnSync(executable(command), [...args], {
90
+ spawnSync(executable(command), [...args], {
91
91
  cwd,
92
92
  env: options.env,
93
93
  stdout: "inherit",
@@ -106,7 +106,7 @@ export function taskCommandSucceeds(
106
106
  options: Pick<TaskCommandOptions, "env"> = {},
107
107
  ): boolean {
108
108
  return (
109
- exec.spawnSync(executable(command), [...args], {
109
+ spawnSync(executable(command), [...args], {
110
110
  cwd,
111
111
  env: options.env,
112
112
  stdout: "ignore",