@ohos-ports/nx 23.3.0-beta.2 → 24.0.2-beta.0
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 +3 -6
- package/dist/bin/nx.js +2 -2
- package/dist/bin/post-install.js +5 -3
- package/dist/nx-cloud-internals.d.ts +1 -0
- package/dist/nx-cloud-internals.js +7 -1
- package/dist/src/adapter/ngcli-adapter.js +2 -2
- package/dist/src/ai/clone-ai-config-repo.js +49 -12
- package/dist/src/command-line/add/add.d.ts +2 -0
- package/dist/src/command-line/add/add.js +23 -5
- package/dist/src/command-line/affected/affected.js +2 -2
- package/dist/src/command-line/configure-ai-agents/configure-ai-agents.js +0 -12
- package/dist/src/command-line/graph/graph.js +38 -10
- package/dist/src/command-line/init/command-object.js +0 -12
- package/dist/src/command-line/init/implementation/add-nx-to-nest.js +21 -62
- package/dist/src/command-line/init/init-v2.js +0 -2
- package/dist/src/command-line/migrate/agentic/close-agent-session.d.ts +1 -1
- package/dist/src/command-line/migrate/agentic/close-agent-session.js +4 -3
- package/dist/src/command-line/migrate/agentic/definitions.d.ts +1 -3
- package/dist/src/command-line/migrate/agentic/definitions.js +5 -97
- package/dist/src/command-line/migrate/agentic/handoff-gitignore.d.ts +7 -45
- package/dist/src/command-line/migrate/agentic/handoff-gitignore.js +9 -51
- package/dist/src/command-line/migrate/agentic/handoff.d.ts +1 -43
- package/dist/src/command-line/migrate/agentic/handoff.js +3 -119
- package/dist/src/command-line/migrate/agentic/instruction-files.d.ts +0 -21
- package/dist/src/command-line/migrate/agentic/instruction-files.js +6 -27
- package/dist/src/command-line/migrate/agentic/master/run-master-session.d.ts +19 -1
- package/dist/src/command-line/migrate/agentic/master/run-master-session.js +88 -49
- package/dist/src/command-line/migrate/agentic/master/spawn-master.d.ts +1 -0
- package/dist/src/command-line/migrate/agentic/master/spawn-master.js +86 -24
- package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.d.ts +2 -2
- package/dist/src/command-line/migrate/agentic/print-dropped-agent-context.js +2 -2
- package/dist/src/command-line/migrate/agentic/prompts/fragments.d.ts +1 -12
- package/dist/src/command-line/migrate/agentic/prompts/fragments.js +8 -17
- package/dist/src/command-line/migrate/agentic/prompts/shared-rendering.d.ts +0 -15
- package/dist/src/command-line/migrate/agentic/prompts/shared-rendering.js +3 -100
- package/dist/src/command-line/migrate/agentic/select.d.ts +12 -6
- package/dist/src/command-line/migrate/agentic/select.js +38 -8
- package/dist/src/command-line/migrate/agentic/types.d.ts +9 -68
- package/dist/src/command-line/migrate/agentic/types.js +6 -8
- package/dist/src/command-line/migrate/command-object.js +6 -10
- package/dist/src/command-line/migrate/execute-migration.d.ts +6 -6
- package/dist/src/command-line/migrate/execute-migration.js +25 -15
- package/dist/src/command-line/migrate/migrate-analytics.d.ts +18 -1
- package/dist/src/command-line/migrate/migrate-analytics.js +38 -0
- package/dist/src/command-line/migrate/migrate-commits.d.ts +29 -17
- package/dist/src/command-line/migrate/migrate-commits.js +86 -32
- package/dist/src/command-line/migrate/migrate-config.d.ts +6 -6
- package/dist/src/command-line/migrate/migrate-config.js +12 -6
- package/dist/src/command-line/migrate/migrate-output.d.ts +1 -6
- package/dist/src/command-line/migrate/migrate-output.js +1 -10
- package/dist/src/command-line/migrate/migrate.d.ts +6 -30
- package/dist/src/command-line/migrate/migrate.js +257 -255
- package/dist/src/command-line/migrate/resolve-package-version.d.ts +2 -4
- package/dist/src/command-line/migrate/resolve-package-version.js +2 -35
- package/dist/src/command-line/migrate/run/agent-output.d.ts +2 -0
- package/dist/src/command-line/migrate/run/agent-output.js +9 -0
- package/dist/src/command-line/migrate/run/broker.d.ts +14 -5
- package/dist/src/command-line/migrate/run/broker.js +69 -21
- package/dist/src/command-line/migrate/run/clean-retry.js +4 -2
- package/dist/src/command-line/migrate/run/existing-run-report.d.ts +1 -1
- package/dist/src/command-line/migrate/run/existing-run-report.js +7 -5
- package/dist/src/command-line/migrate/run/give-up.d.ts +4 -3
- package/dist/src/command-line/migrate/run/give-up.js +8 -5
- package/dist/src/command-line/migrate/run/index.d.ts +7 -5
- package/dist/src/command-line/migrate/run/index.js +16 -1
- package/dist/src/command-line/migrate/run/issues.js +7 -2
- package/dist/src/command-line/migrate/run/orchestrator.d.ts +61 -4
- package/dist/src/command-line/migrate/run/orchestrator.js +397 -133
- package/dist/src/command-line/migrate/run/run-state.d.ts +17 -1
- package/dist/src/command-line/migrate/run/run-state.js +41 -2
- package/dist/src/command-line/migrate/run/runbook.d.ts +1 -0
- package/dist/src/command-line/migrate/run/runbook.js +115 -18
- package/dist/src/command-line/migrate/run/state-lock.d.ts +29 -4
- package/dist/src/command-line/migrate/run/state-lock.js +102 -10
- package/dist/src/command-line/migrate/run/state-machine.js +4 -1
- package/dist/src/command-line/migrate/run/util.d.ts +7 -2
- package/dist/src/command-line/migrate/run/util.js +30 -3
- package/dist/src/command-line/migrate/run/worker.d.ts +1 -1
- package/dist/src/command-line/migrate/run/worker.js +252 -250
- package/dist/src/command-line/migrate/sort-migrations.d.ts +1 -7
- package/dist/src/command-line/migrate/sort-migrations.js +1 -12
- package/dist/src/command-line/nx-cloud/connect/connect-to-nx-cloud.js +17 -12
- package/dist/src/command-line/release/changelog.js +9 -6
- package/dist/src/command-line/release/config/config.d.ts +1 -0
- package/dist/src/command-line/release/config/config.js +48 -9
- package/dist/src/command-line/release/release.js +2 -2
- package/dist/src/command-line/release/utils/git.js +8 -7
- package/dist/src/command-line/release/utils/interpolate-release-config.d.ts +6 -0
- package/dist/src/command-line/release/utils/interpolate-release-config.js +39 -0
- package/dist/src/command-line/release/utils/release-graph.d.ts +5 -0
- package/dist/src/command-line/release/utils/release-graph.js +1 -0
- package/dist/src/command-line/release/utils/remote-release-clients/github.js +5 -6
- package/dist/src/command-line/release/utils/remote-release-clients/gitlab.js +5 -6
- package/dist/src/command-line/release/utils/resolve-changelog-renderer.js +2 -2
- package/dist/src/command-line/release/utils/shared.js +10 -10
- package/dist/src/command-line/release/utils/version-plan-utils.d.ts +3 -12
- package/dist/src/command-line/release/utils/version-plan-utils.js +33 -55
- package/dist/src/command-line/release/version/version-actions.js +2 -1
- package/dist/src/command-line/release/version.js +5 -2
- package/dist/src/command-line/reset/reset.js +58 -62
- package/dist/src/command-line/run/executor-utils.js +1 -0
- package/dist/src/command-line/run/run-one.d.ts +20 -1
- package/dist/src/command-line/run/run-one.js +153 -5
- package/dist/src/command-line/run/run.js +2 -1
- package/dist/src/command-line/show/projects.js +5 -3
- package/dist/src/command-line/show/show-target/info.d.ts +10 -1
- package/dist/src/command-line/show/show-target/info.js +100 -15
- package/dist/src/command-line/show/show-target/inputs.js +10 -2
- package/dist/src/command-line/show/show-target/utils.js +1 -0
- package/dist/src/command-line/watch/command-object.js +3 -22
- package/dist/src/command-line/watch/watch.d.ts +0 -7
- package/dist/src/command-line/watch/watch.js +1 -1
- package/dist/src/command-line/yargs-utils/shared-options.js +1 -1
- package/dist/src/config/misc-interfaces.d.ts +18 -0
- package/dist/src/config/nx-json.d.ts +22 -11
- package/dist/src/config/task-graph.d.ts +1 -1
- package/dist/src/config/workspace-json-project-json.d.ts +88 -0
- package/dist/src/core/graph/main.js +1 -1
- package/dist/src/core/graph/runtime.js +1 -1
- package/dist/src/core/graph/styles.css +1 -1
- package/dist/src/core/graph/styles.js +1 -1
- package/dist/src/daemon/client/client.d.ts +15 -0
- package/dist/src/daemon/client/client.js +181 -71
- package/dist/src/daemon/client/daemon-socket-messenger.d.ts +1 -1
- package/dist/src/daemon/client/daemon-socket-messenger.js +2 -2
- package/dist/src/daemon/server/client-socket-context.js +1 -1
- package/dist/src/daemon/server/handle-process-in-background.js +21 -9
- package/dist/src/daemon/server/handle-select-affected-tasks.d.ts +2 -1
- package/dist/src/daemon/server/handle-select-affected-tasks.js +21 -13
- package/dist/src/daemon/server/native-js-loader.d.ts +1 -0
- package/dist/src/daemon/server/native-js-loader.js +21 -0
- package/dist/src/daemon/server/project-graph-incremental-recomputation.js +4 -8
- package/dist/src/daemon/server/server.d.ts +2 -1
- package/dist/src/daemon/server/server.js +17 -4
- package/dist/src/daemon/server/shutdown-utils.js +0 -3
- package/dist/src/daemon/server/start.d.ts +1 -0
- package/dist/src/daemon/server/start.js +2 -0
- package/dist/src/daemon/socket-utils.d.ts +11 -9
- package/dist/src/daemon/socket-utils.js +31 -61
- package/dist/src/daemon/tmp-dir.d.ts +19 -14
- package/dist/src/daemon/tmp-dir.js +142 -354
- package/dist/src/devkit-exports.d.ts +9 -1
- package/dist/src/devkit-exports.js +12 -1
- package/dist/src/devkit-internals.d.ts +6 -5
- package/dist/src/devkit-internals.js +13 -4
- package/dist/src/executors/run-commands/run-commands.impl.d.ts +4 -2
- package/dist/src/executors/run-commands/run-commands.impl.js +53 -27
- package/dist/src/executors/run-commands/running-tasks.d.ts +13 -4
- package/dist/src/executors/run-commands/running-tasks.js +148 -95
- package/dist/src/executors/run-commands/schema.json +1 -1
- package/dist/src/hasher/check-task-files.js +5 -8
- package/dist/src/hasher/file-hasher.js +9 -7
- package/dist/src/hasher/hash-task.js +4 -0
- package/dist/src/hasher/native-task-hasher-impl.js +3 -1
- package/dist/src/hasher/task-hasher.d.ts +2 -0
- package/dist/src/hasher/task-hasher.js +4 -1
- package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.d.ts +1 -2
- package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.js +6 -11
- package/dist/src/migrations/update-23-2-0/set-cache-on-executor-target-defaults.md +2 -2
- package/dist/src/migrations/update-24-0-0/enable-legacy-affected.d.ts +4 -0
- package/dist/src/migrations/update-24-0-0/enable-legacy-affected.js +15 -0
- package/dist/src/migrations/update-24-0-0/enable-legacy-affected.md +30 -0
- package/dist/src/migrations/update-24-0-0/find-custom-hashers.d.ts +3 -0
- package/dist/src/migrations/update-24-0-0/find-custom-hashers.js +100 -0
- package/dist/src/migrations/update-24-0-0/find-custom-hashers.md +63 -0
- package/dist/src/migrations/update-24-0-0/move-custom-hashers-to-inputs.md +146 -0
- package/dist/src/migrations/update-24-0-0/rename-ultracache-ignore-options.d.ts +3 -0
- package/dist/src/migrations/update-24-0-0/rename-ultracache-ignore-options.js +130 -0
- package/dist/src/migrations/update-24-0-0/rename-ultracache-ignore-options.md +62 -0
- package/dist/src/native/assert-supported-platform.js +1 -1
- package/dist/src/native/index.d.ts +238 -18
- package/dist/src/native/index.js +6 -1
- package/dist/src/native/native-bindings.js +15 -6
- package/dist/src/native/nx.openharmony-arm64.node +0 -0
- package/dist/src/native/nx.wasi-browser.js +1 -0
- package/dist/src/native/nx.wasi.cjs +1 -0
- package/dist/src/native/nx.wasm32-wasi.debug.wasm +0 -0
- package/dist/src/native/nx.wasm32-wasi.wasm +0 -0
- package/dist/src/nx-cloud/update-manager.d.ts +14 -0
- package/dist/src/nx-cloud/update-manager.js +237 -50
- package/dist/src/plugins/js/lock-file/pnpm-parser.js +3 -4
- package/dist/src/plugins/js/lock-file/pruned-output.d.ts +2 -2
- package/dist/src/plugins/js/lock-file/pruned-output.js +4 -4
- package/dist/src/plugins/js/utils/register.js +9 -4
- package/dist/src/project-graph/affected/affected-tasks.d.ts +9 -6
- package/dist/src/project-graph/affected/affected-tasks.js +31 -7
- package/dist/src/project-graph/plugins/isolation/isolated-plugin.js +7 -0
- package/dist/src/project-graph/plugins/loaded-nx-plugin.js +49 -6
- package/dist/src/project-graph/utils/project-configuration/target-merging.js +1 -1
- package/dist/src/project-graph/utils/project-configuration/target-normalization.js +12 -133
- package/dist/src/project-graph/utils/project-configuration-utils.js +2 -2
- package/dist/src/project-graph/utils/retrieve-workspace-files.js +27 -6
- package/dist/src/tasks-runner/create-task-graph.d.ts +8 -7
- package/dist/src/tasks-runner/create-task-graph.js +50 -27
- package/dist/src/tasks-runner/default-tasks-runner.js +1 -1
- package/dist/src/tasks-runner/init-tasks-runner.js +116 -59
- package/dist/src/tasks-runner/life-cycle.d.ts +4 -1
- package/dist/src/tasks-runner/life-cycle.js +7 -0
- package/dist/src/tasks-runner/life-cycles/performance-analysis.d.ts +5 -2
- package/dist/src/tasks-runner/life-cycles/performance-analysis.js +13 -7
- package/dist/src/tasks-runner/life-cycles/performance-life-cycle.d.ts +4 -3
- package/dist/src/tasks-runner/life-cycles/performance-life-cycle.js +9 -2
- package/dist/src/tasks-runner/life-cycles/static-run-many-terminal-output-life-cycle.js +5 -2
- package/dist/src/tasks-runner/life-cycles/static-run-one-terminal-output-life-cycle.js +4 -1
- package/dist/src/tasks-runner/life-cycles/summary-terminal-output-life-cycle.js +5 -1
- package/dist/src/tasks-runner/pseudo-ipc.d.ts +1 -0
- package/dist/src/tasks-runner/pseudo-ipc.js +4 -0
- package/dist/src/tasks-runner/pseudo-terminal.d.ts +1 -1
- package/dist/src/tasks-runner/pseudo-terminal.js +2 -2
- package/dist/src/tasks-runner/readiness/executor-ready-signal.d.ts +7 -0
- package/dist/src/tasks-runner/readiness/executor-ready-signal.js +43 -0
- package/dist/src/tasks-runner/readiness/probes.d.ts +14 -0
- package/dist/src/tasks-runner/readiness/probes.js +101 -0
- package/dist/src/tasks-runner/readiness/ready-signal-server.d.ts +18 -0
- package/dist/src/tasks-runner/readiness/ready-signal-server.js +72 -0
- package/dist/src/tasks-runner/readiness/ready-signal.d.ts +33 -0
- package/dist/src/tasks-runner/readiness/ready-signal.js +92 -0
- package/dist/src/tasks-runner/readiness/ready-when.d.ts +84 -0
- package/dist/src/tasks-runner/readiness/ready-when.js +371 -0
- package/dist/src/tasks-runner/readiness/startup-host.d.ts +1 -0
- package/dist/src/tasks-runner/readiness/startup-host.js +32 -0
- package/dist/src/tasks-runner/run-command.d.ts +6 -2
- package/dist/src/tasks-runner/run-command.js +21 -31
- package/dist/src/tasks-runner/run-outcome.d.ts +16 -0
- package/dist/src/tasks-runner/run-outcome.js +39 -0
- package/dist/src/tasks-runner/running-tasks/batch-process.js +6 -0
- package/dist/src/tasks-runner/running-tasks/node-child-process.js +5 -4
- package/dist/src/tasks-runner/running-tasks/running-task.d.ts +1 -1
- package/dist/src/tasks-runner/task-env.d.ts +10 -0
- package/dist/src/tasks-runner/task-env.js +37 -5
- package/dist/src/tasks-runner/task-graph-utils.d.ts +9 -6
- package/dist/src/tasks-runner/task-graph-utils.js +17 -12
- package/dist/src/tasks-runner/task-orchestrator.d.ts +62 -18
- package/dist/src/tasks-runner/task-orchestrator.js +750 -150
- package/dist/src/tasks-runner/tasks-runner.d.ts +1 -1
- package/dist/src/tasks-runner/tasks-schedule.d.ts +18 -1
- package/dist/src/tasks-runner/tasks-schedule.js +63 -6
- package/dist/src/tasks-runner/tokens.d.ts +54 -0
- package/dist/src/tasks-runner/tokens.js +161 -0
- package/dist/src/tasks-runner/utils.d.ts +35 -6
- package/dist/src/tasks-runner/utils.js +149 -68
- package/dist/src/ultracache/ci-status.d.ts +24 -0
- package/dist/src/ultracache/ci-status.js +87 -0
- package/dist/src/ultracache/config.d.ts +3 -3
- package/dist/src/ultracache/config.js +4 -4
- package/dist/src/ultracache/fetch.d.ts +2 -0
- package/dist/src/ultracache/fetch.js +1 -0
- package/dist/src/ultracache/overrides.js +4 -0
- package/dist/src/utils/acknowledge-build-scripts.d.ts +34 -1
- package/dist/src/utils/acknowledge-build-scripts.js +171 -32
- package/dist/src/utils/child-process.js +2 -1
- package/dist/src/utils/find-matching-projects.js +9 -6
- package/dist/src/utils/git-utils.d.ts +12 -5
- package/dist/src/utils/git-utils.js +69 -11
- package/dist/src/utils/long-running-target.d.ts +1 -3
- package/dist/src/utils/long-running-target.js +1 -3
- package/dist/src/utils/output.d.ts +4 -3
- package/dist/src/utils/output.js +4 -3
- package/dist/src/utils/owned-private-dir.d.ts +1 -17
- package/dist/src/utils/owned-private-dir.js +10 -62
- package/dist/src/utils/package-manager.d.ts +8 -0
- package/dist/src/utils/package-manager.js +65 -8
- package/dist/src/utils/perf-hooks.d.ts +1 -0
- package/dist/src/utils/plugins/core-plugins.js +5 -1
- package/dist/src/utils/progress-topics.d.ts +1 -0
- package/dist/src/utils/progress-topics.js +1 -0
- package/dist/src/utils/safe-spawn.js +1 -5
- package/dist/src/utils/shell-quoting.d.ts +8 -1
- package/dist/src/utils/shell-quoting.js +12 -1
- package/dist/src/utils/spawn-without-terminal.d.ts +27 -0
- package/dist/src/utils/spawn-without-terminal.js +110 -0
- package/dist/src/utils/string-similarity.d.ts +38 -0
- package/dist/src/utils/string-similarity.js +108 -0
- package/migrations.json +20 -6
- package/package.json +15 -24
- package/schemas/migrations-schema.json +11 -0
- package/schemas/nx-schema.json +133 -11
- package/schemas/project-schema.json +114 -4
- package/dist/src/command-line/migrate/agentic/prompts/generic-validation.d.ts +0 -56
- package/dist/src/command-line/migrate/agentic/prompts/generic-validation.js +0 -67
- package/dist/src/command-line/migrate/agentic/prompts/hybrid-prompt-migration.d.ts +0 -49
- package/dist/src/command-line/migrate/agentic/prompts/hybrid-prompt-migration.js +0 -53
- package/dist/src/command-line/migrate/agentic/prompts/prompt-migration.d.ts +0 -26
- package/dist/src/command-line/migrate/agentic/prompts/prompt-migration.js +0 -27
- package/dist/src/command-line/migrate/agentic/prompts/system-prompt.d.ts +0 -70
- package/dist/src/command-line/migrate/agentic/prompts/system-prompt.js +0 -113
- package/dist/src/command-line/migrate/agentic/run-step.d.ts +0 -68
- package/dist/src/command-line/migrate/agentic/run-step.js +0 -148
- package/dist/src/command-line/migrate/agentic/runner.d.ts +0 -21
- package/dist/src/command-line/migrate/agentic/runner.js +0 -262
- package/dist/src/migrations/update-23-0-0/consolidate-release-tag-config.d.ts +0 -9
- package/dist/src/migrations/update-23-0-0/consolidate-release-tag-config.js +0 -18
- package/dist/src/tasks-runner/legacy-depends-on-warning.d.ts +0 -18
- package/dist/src/tasks-runner/legacy-depends-on-warning.js +0 -109
|
@@ -5,12 +5,6 @@ interface SortableMigration {
|
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Sorts in place (like `Array.prototype.sort`) and returns the same array.
|
|
8
|
-
*
|
|
9
|
-
* `hoistHandoffGitignore` is set for agentic runs, which write scratch under
|
|
10
|
-
* `.nx/migrate-runs`; see `agentic/handoff-gitignore.ts` for why the v23
|
|
11
|
-
* gitignore migration must run first there.
|
|
12
8
|
*/
|
|
13
|
-
export declare function sortMigrations<T extends SortableMigration>(migrations: T[]
|
|
14
|
-
hoistHandoffGitignore: boolean;
|
|
15
|
-
}): T[];
|
|
9
|
+
export declare function sortMigrations<T extends SortableMigration>(migrations: T[]): T[];
|
|
16
10
|
export {};
|
|
@@ -2,23 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.sortMigrations = sortMigrations;
|
|
4
4
|
const semver_1 = require("semver");
|
|
5
|
-
const types_1 = require("./agentic/types");
|
|
6
5
|
const version_utils_1 = require("./version-utils");
|
|
7
6
|
/**
|
|
8
7
|
* Sorts in place (like `Array.prototype.sort`) and returns the same array.
|
|
9
|
-
*
|
|
10
|
-
* `hoistHandoffGitignore` is set for agentic runs, which write scratch under
|
|
11
|
-
* `.nx/migrate-runs`; see `agentic/handoff-gitignore.ts` for why the v23
|
|
12
|
-
* gitignore migration must run first there.
|
|
13
8
|
*/
|
|
14
|
-
function sortMigrations(migrations
|
|
9
|
+
function sortMigrations(migrations) {
|
|
15
10
|
return migrations.sort((a, b) => {
|
|
16
|
-
if (opts.hoistHandoffGitignore) {
|
|
17
|
-
if ((0, types_1.isHandoffGitignoreMigration)(a))
|
|
18
|
-
return -1;
|
|
19
|
-
if ((0, types_1.isHandoffGitignoreMigration)(b))
|
|
20
|
-
return 1;
|
|
21
|
-
}
|
|
22
11
|
if (a.name === '15-7-0-split-configuration-into-project-json-files') {
|
|
23
12
|
return -1;
|
|
24
13
|
}
|
|
@@ -155,23 +155,28 @@ async function runConnectToNxCloud(options, command) {
|
|
|
155
155
|
installationSource: command ?? installationSource,
|
|
156
156
|
});
|
|
157
157
|
const connectCloudUrl = await (0, url_shorten_1.createNxCloudOnboardingURL)('nx-connect', token, undefined, options?.generateToken === true);
|
|
158
|
+
const manualConnectNote = {
|
|
159
|
+
title: `Your Nx Cloud workspace is ready.`,
|
|
160
|
+
bodyLines: [
|
|
161
|
+
`To claim it, connect it to your Nx Cloud account:`,
|
|
162
|
+
`- Go to the following URL to connect your workspace to Nx Cloud:`,
|
|
163
|
+
'',
|
|
164
|
+
`${connectCloudUrl}`,
|
|
165
|
+
],
|
|
166
|
+
};
|
|
158
167
|
try {
|
|
159
168
|
const cloudConnectSpinner = ora(`Opening Nx Cloud ${connectCloudUrl} in your browser to connect your workspace.`).start();
|
|
160
169
|
await sleep(2000);
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
170
|
+
if ((0, native_1.openUrl)(connectCloudUrl)) {
|
|
171
|
+
cloudConnectSpinner.succeed();
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
cloudConnectSpinner.fail();
|
|
175
|
+
output_1.output.note(manualConnectNote);
|
|
176
|
+
}
|
|
164
177
|
}
|
|
165
178
|
catch (e) {
|
|
166
|
-
output_1.output.note(
|
|
167
|
-
title: `Your Nx Cloud workspace is ready.`,
|
|
168
|
-
bodyLines: [
|
|
169
|
-
`To claim it, connect it to your Nx Cloud account:`,
|
|
170
|
-
`- Go to the following URL to connect your workspace to Nx Cloud:`,
|
|
171
|
-
'',
|
|
172
|
-
`${connectCloudUrl}`,
|
|
173
|
-
],
|
|
174
|
-
});
|
|
179
|
+
output_1.output.note(manualConnectNote);
|
|
175
180
|
}
|
|
176
181
|
return true;
|
|
177
182
|
}
|
|
@@ -13,7 +13,7 @@ const nx_json_1 = require("../../config/nx-json");
|
|
|
13
13
|
const tree_1 = require("../../generators/tree");
|
|
14
14
|
const file_map_utils_1 = require("../../project-graph/file-map-utils");
|
|
15
15
|
const project_graph_1 = require("../../project-graph/project-graph");
|
|
16
|
-
const
|
|
16
|
+
const interpolate_release_config_1 = require("./utils/interpolate-release-config");
|
|
17
17
|
const handle_errors_1 = require("../../utils/handle-errors");
|
|
18
18
|
const is_ci_1 = require("../../utils/is-ci");
|
|
19
19
|
const output_1 = require("../../utils/output");
|
|
@@ -66,6 +66,9 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
66
66
|
if (configError) {
|
|
67
67
|
return await (0, config_1.handleNxReleaseConfigError)(configError);
|
|
68
68
|
}
|
|
69
|
+
if (args.gitCommitMessage) {
|
|
70
|
+
(0, config_1.validateCommitMessageTokens)(args.gitCommitMessage);
|
|
71
|
+
}
|
|
69
72
|
// --print-config exits directly as it is not designed to be combined with any other programmatic operations
|
|
70
73
|
if (args.printConfig) {
|
|
71
74
|
return (0, print_config_1.printConfigAndExit)({
|
|
@@ -168,9 +171,9 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
// Set resolved version plans on groups
|
|
171
|
-
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.
|
|
174
|
+
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.allReleaseGroups, Object.keys(projectGraph.nodes), args.verbose);
|
|
172
175
|
// Validate version plans against the filter after resolution
|
|
173
|
-
const versionPlanValidationError = (0, version_plan_utils_2.validateResolvedVersionPlansAgainstFilter)(releaseGraph.
|
|
176
|
+
const versionPlanValidationError = (0, version_plan_utils_2.validateResolvedVersionPlansAgainstFilter)(releaseGraph.allReleaseGroups, releaseGraph.releaseGroupToFilteredProjects);
|
|
174
177
|
if (versionPlanValidationError) {
|
|
175
178
|
output_1.output.error(versionPlanValidationError);
|
|
176
179
|
process.exit(1);
|
|
@@ -632,7 +635,7 @@ async function generateChangelogForWorkspace({ tree, args, nxReleaseConfig, work
|
|
|
632
635
|
const ChangelogRendererClass = (0, resolve_changelog_renderer_1.resolveChangelogRenderer)(config.renderer);
|
|
633
636
|
let interpolatedTreePath = config.file || '';
|
|
634
637
|
if (interpolatedTreePath) {
|
|
635
|
-
interpolatedTreePath = (0,
|
|
638
|
+
interpolatedTreePath = (0, interpolate_release_config_1.interpolateReleaseConfig)(interpolatedTreePath, {
|
|
636
639
|
projectName: '', // n/a for the workspace changelog
|
|
637
640
|
projectRoot: '', // n/a for the workspace changelog
|
|
638
641
|
workspaceRoot: '', // within the tree, workspaceRoot is the root
|
|
@@ -725,7 +728,7 @@ async function generateChangelogForProjects({ tree, args, changes, projectsVersi
|
|
|
725
728
|
for (const project of projects) {
|
|
726
729
|
let interpolatedTreePath = config.file || '';
|
|
727
730
|
if (interpolatedTreePath) {
|
|
728
|
-
interpolatedTreePath = (0,
|
|
731
|
+
interpolatedTreePath = (0, interpolate_release_config_1.interpolateReleaseConfig)(interpolatedTreePath, {
|
|
729
732
|
projectName: project.name,
|
|
730
733
|
projectRoot: project.data.root,
|
|
731
734
|
workspaceRoot: '', // within the tree, workspaceRoot is the root
|
|
@@ -761,7 +764,7 @@ async function generateChangelogForProjects({ tree, args, changes, projectsVersi
|
|
|
761
764
|
changelogEntryVersion: releaseVersion.rawVersion,
|
|
762
765
|
project: project.name,
|
|
763
766
|
entryWhenNoChanges: typeof config.entryWhenNoChanges === 'string'
|
|
764
|
-
? (0,
|
|
767
|
+
? (0, interpolate_release_config_1.interpolateReleaseConfig)(config.entryWhenNoChanges, {
|
|
765
768
|
projectName: project.name,
|
|
766
769
|
projectRoot: project.data.root,
|
|
767
770
|
workspaceRoot: '', // within the tree, workspaceRoot is the root
|
|
@@ -59,6 +59,7 @@ export declare function createNxReleaseConfig(projectGraph: ProjectGraph, projec
|
|
|
59
59
|
nxReleaseConfig: NxReleaseConfig | null;
|
|
60
60
|
}>;
|
|
61
61
|
export declare function handleNxReleaseConfigError(error: CreateNxReleaseConfigError): Promise<never>;
|
|
62
|
+
export declare function validateCommitMessageTokens(commitMessage: string): void;
|
|
62
63
|
/**
|
|
63
64
|
* Full form of the createRelease config, with the provider, hostname, and apiBaseUrl resolved.
|
|
64
65
|
*/
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DEFAULT_VERSION_ACTIONS_PATH = exports.IMPLICIT_DEFAULT_RELEASE_GROUP = void 0;
|
|
4
4
|
exports.createNxReleaseConfig = createNxReleaseConfig;
|
|
5
5
|
exports.handleNxReleaseConfigError = handleNxReleaseConfigError;
|
|
6
|
+
exports.validateCommitMessageTokens = validateCommitMessageTokens;
|
|
6
7
|
/**
|
|
7
8
|
* `nx release` is a powerful feature which spans many possible use cases. The possible variations
|
|
8
9
|
* of configuration are therefore quite complex, particularly when you consider release groups.
|
|
@@ -25,18 +26,14 @@ const path_1 = require("../../../utils/path");
|
|
|
25
26
|
const workspace_root_1 = require("../../../utils/workspace-root");
|
|
26
27
|
const github_1 = require("../utils/remote-release-clients/github");
|
|
27
28
|
const gitlab_1 = require("../utils/remote-release-clients/gitlab");
|
|
29
|
+
const interpolate_release_config_1 = require("../utils/interpolate-release-config");
|
|
28
30
|
const resolve_changelog_renderer_1 = require("../utils/resolve-changelog-renderer");
|
|
29
31
|
const resolve_nx_json_error_message_1 = require("../utils/resolve-nx-json-error-message");
|
|
30
32
|
const conventional_commits_1 = require("./conventional-commits");
|
|
31
33
|
exports.IMPLICIT_DEFAULT_RELEASE_GROUP = '__default__';
|
|
32
34
|
exports.DEFAULT_VERSION_ACTIONS_PATH = '@nx/js/src/release/version-actions';
|
|
33
|
-
//
|
|
34
|
-
// the
|
|
35
|
-
// `releaseTagPattern*` properties were moved to the nested `releaseTag`
|
|
36
|
-
// object in Nx 22 and the consolidation migration runs again in Nx 23 to
|
|
37
|
-
// catch any configs added after the v22 migration. Once Nx 24 lands, configs
|
|
38
|
-
// that still carry the legacy keys are expected to have been repaired via
|
|
39
|
-
// `nx repair`, and we can drop this back-compat error path entirely.
|
|
35
|
+
// Kept on purpose: these keys are otherwise ignored, so a stale config would
|
|
36
|
+
// silently tag with the default pattern. `nx repair` fixes them (22-0-0 migration).
|
|
40
37
|
const LEGACY_RELEASE_TAG_PROPERTY_NAMES = [
|
|
41
38
|
'releaseTagPattern',
|
|
42
39
|
'releaseTagPatternCheckAllBranchesWhen',
|
|
@@ -69,7 +66,6 @@ function detectLegacyReleaseTagProperties(userConfig) {
|
|
|
69
66
|
}
|
|
70
67
|
// Apply default configuration to any optional user configuration and handle known errors
|
|
71
68
|
async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig = {}) {
|
|
72
|
-
// TODO(v24): remove this back-compat error along with detectLegacyReleaseTagProperties
|
|
73
69
|
const legacyReleaseTagProperties = detectLegacyReleaseTagProperties(userConfig);
|
|
74
70
|
if (legacyReleaseTagProperties.length > 0) {
|
|
75
71
|
return {
|
|
@@ -630,6 +626,15 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
|
|
|
630
626
|
}
|
|
631
627
|
}
|
|
632
628
|
}
|
|
629
|
+
// Before validateChangelogConfig, which reports any renderer path error as
|
|
630
|
+
// an unresolvable renderer
|
|
631
|
+
validateReleaseConfigTokens({
|
|
632
|
+
releaseTag: WORKSPACE_DEFAULTS.releaseTag,
|
|
633
|
+
git: rootGitConfig,
|
|
634
|
+
version: rootVersionConfig,
|
|
635
|
+
changelog: rootChangelogConfig,
|
|
636
|
+
groups: releaseGroups,
|
|
637
|
+
});
|
|
633
638
|
const configError = validateChangelogConfig(releaseGroups, rootChangelogConfig);
|
|
634
639
|
if (configError) {
|
|
635
640
|
return {
|
|
@@ -775,7 +780,6 @@ async function handleNxReleaseConfigError(error) {
|
|
|
775
780
|
});
|
|
776
781
|
}
|
|
777
782
|
break;
|
|
778
|
-
// TODO(v24): remove this case along with detectLegacyReleaseTagProperties
|
|
779
783
|
case 'LEGACY_RELEASE_TAG_PATTERN_PROPERTIES_DETECTED':
|
|
780
784
|
{
|
|
781
785
|
const properties = error.data.properties;
|
|
@@ -1038,6 +1042,41 @@ function isProjectPublic(project, projectGraph, projectFileMap) {
|
|
|
1038
1042
|
return false;
|
|
1039
1043
|
}
|
|
1040
1044
|
}
|
|
1045
|
+
const releaseTagPatternTokens = ['version', 'projectName', 'releaseGroupName'];
|
|
1046
|
+
const commitMessageTokens = ['version', 'projectName'];
|
|
1047
|
+
const changelogFileTokens = ['projectName', 'projectRoot', 'workspaceRoot'];
|
|
1048
|
+
const changelogRendererTokens = ['workspaceRoot'];
|
|
1049
|
+
/**
|
|
1050
|
+
* A release can interpolate these fields after it writes files, so an invalid
|
|
1051
|
+
* token has to fail when the config is loaded
|
|
1052
|
+
*/
|
|
1053
|
+
function validateReleaseConfigTokens(config) {
|
|
1054
|
+
const templates = [
|
|
1055
|
+
[config.releaseTag.pattern, releaseTagPatternTokens],
|
|
1056
|
+
[config.git.commitMessage, commitMessageTokens],
|
|
1057
|
+
[config.version.git.commitMessage, commitMessageTokens],
|
|
1058
|
+
[config.changelog.git.commitMessage, commitMessageTokens],
|
|
1059
|
+
];
|
|
1060
|
+
const { workspaceChangelog } = config.changelog;
|
|
1061
|
+
if (workspaceChangelog) {
|
|
1062
|
+
// The workspace changelog uses its entryWhenNoChanges as written
|
|
1063
|
+
templates.push([workspaceChangelog.file, changelogFileTokens], [workspaceChangelog.renderer, changelogRendererTokens]);
|
|
1064
|
+
}
|
|
1065
|
+
for (const group of Object.values(config.groups)) {
|
|
1066
|
+
templates.push([group.releaseTag.pattern, releaseTagPatternTokens]);
|
|
1067
|
+
if (group.changelog) {
|
|
1068
|
+
templates.push([group.changelog.file, changelogFileTokens], [group.changelog.entryWhenNoChanges, changelogFileTokens], [group.changelog.renderer, changelogRendererTokens]);
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
for (const [template, tokens] of templates) {
|
|
1072
|
+
if (typeof template === 'string') {
|
|
1073
|
+
(0, interpolate_release_config_1.validateReleaseConfigTemplate)(template, tokens);
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
function validateCommitMessageTokens(commitMessage) {
|
|
1078
|
+
(0, interpolate_release_config_1.validateReleaseConfigTemplate)(commitMessage, commitMessageTokens);
|
|
1079
|
+
}
|
|
1041
1080
|
/**
|
|
1042
1081
|
* We need to ensure that changelog renderers are resolvable up front so that we do not end up erroring after performing
|
|
1043
1082
|
* actions later, and we also make sure that any configured createRelease options are valid.
|
|
@@ -84,9 +84,9 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
|
|
|
84
84
|
});
|
|
85
85
|
// Suppress the filter log for the changelog command as it would have already been printed by the version command
|
|
86
86
|
process.env.NX_RELEASE_INTERNAL_SUPPRESS_FILTER_LOG = 'true';
|
|
87
|
-
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.
|
|
87
|
+
await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.allReleaseGroups, Object.keys(projectGraph.nodes), args.verbose);
|
|
88
88
|
// Validate version plans against the filter after resolution
|
|
89
|
-
const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGraph.
|
|
89
|
+
const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGraph.allReleaseGroups, releaseGraph.releaseGroupToFilteredProjects);
|
|
90
90
|
if (versionPlanValidationError) {
|
|
91
91
|
output_1.output.error(versionPlanValidationError);
|
|
92
92
|
process.exit(1);
|
|
@@ -22,7 +22,7 @@ exports.getFirstProjectCommit = getFirstProjectCommit;
|
|
|
22
22
|
*/
|
|
23
23
|
const node_path_1 = require("node:path");
|
|
24
24
|
const semver_1 = require("semver");
|
|
25
|
-
const
|
|
25
|
+
const interpolate_release_config_1 = require("./interpolate-release-config");
|
|
26
26
|
const workspace_root_1 = require("../../../utils/workspace-root");
|
|
27
27
|
const exec_command_1 = require("./exec-command");
|
|
28
28
|
const shared_1 = require("./shared");
|
|
@@ -103,17 +103,18 @@ function extractTagAndVersion(tag, tagRegexp, options) {
|
|
|
103
103
|
*/
|
|
104
104
|
async function getLatestGitTagForPattern(releaseTagPattern, additionalInterpolationData = {}, resolveTags, options) {
|
|
105
105
|
const { requireSemver, strictPreid, preid, checkAllBranchesWhen } = options;
|
|
106
|
+
// Outside the try: an invalid pattern must fail, not read as "no tags"
|
|
107
|
+
const interpolatedTagPattern = (0, interpolate_release_config_1.interpolateReleaseConfig)(releaseTagPattern, {
|
|
108
|
+
version: '%v%',
|
|
109
|
+
projectName: '%p%',
|
|
110
|
+
releaseGroupName: '%rg%',
|
|
111
|
+
...additionalInterpolationData,
|
|
112
|
+
});
|
|
106
113
|
try {
|
|
107
114
|
let tags = await resolveTags(checkAllBranchesWhen);
|
|
108
115
|
if (!tags.length) {
|
|
109
116
|
return null;
|
|
110
117
|
}
|
|
111
|
-
const interpolatedTagPattern = (0, utils_1.interpolate)(releaseTagPattern, {
|
|
112
|
-
version: '%v%',
|
|
113
|
-
projectName: '%p%',
|
|
114
|
-
releaseGroupName: '%rg%',
|
|
115
|
-
...additionalInterpolationData,
|
|
116
|
-
});
|
|
117
118
|
const tagRegexp = `^${escapeRegExp(interpolatedTagPattern)
|
|
118
119
|
.replace('%v%', '(.+)')
|
|
119
120
|
.replace('%p%', '(.+)')
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function interpolateReleaseConfig(template: string, data: Record<string, unknown>): string;
|
|
2
|
+
/**
|
|
3
|
+
* Throws what `interpolateReleaseConfig` throws for `template` when it gets
|
|
4
|
+
* values for `tokens`, so a release can fail before it writes anything
|
|
5
|
+
*/
|
|
6
|
+
export declare function validateReleaseConfigTemplate(template: string, tokens: readonly string[]): void;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.interpolateReleaseConfig = interpolateReleaseConfig;
|
|
4
|
+
exports.validateReleaseConfigTemplate = validateReleaseConfigTemplate;
|
|
5
|
+
const tokens_1 = require("../../../tasks-runner/tokens");
|
|
6
|
+
const utils_1 = require("../../../tasks-runner/utils");
|
|
7
|
+
// A call site passes only the values it has, so a fallback is found by name
|
|
8
|
+
const releaseTokens = new Set([
|
|
9
|
+
'version',
|
|
10
|
+
'projectName',
|
|
11
|
+
'releaseGroupName',
|
|
12
|
+
'projectRoot',
|
|
13
|
+
'workspaceRoot',
|
|
14
|
+
]);
|
|
15
|
+
function interpolateReleaseConfig(template, data) {
|
|
16
|
+
rejectFallbacks(template);
|
|
17
|
+
return (0, utils_1.interpolate)(template, data, {
|
|
18
|
+
envNotAllowed: (template) => `Release configuration '${template}' is invalid. It can't read environment variables, because every release run must resolve it the same way.`,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Throws what `interpolateReleaseConfig` throws for `template` when it gets
|
|
23
|
+
* values for `tokens`, so a release can fail before it writes anything
|
|
24
|
+
*/
|
|
25
|
+
function validateReleaseConfigTemplate(template, tokens) {
|
|
26
|
+
interpolateReleaseConfig(template, Object.fromEntries(tokens.map((token) => [token, ''])));
|
|
27
|
+
}
|
|
28
|
+
// Tags, commit messages and the previous-tag lookup fill in different values,
|
|
29
|
+
// so a fallback wouldn't resolve the same way in each
|
|
30
|
+
function rejectFallbacks(template) {
|
|
31
|
+
const nodes = (0, tokens_1.parseTokens)(template, {
|
|
32
|
+
isToken: (name) => name === 'env' || releaseTokens.has(name),
|
|
33
|
+
read: () => undefined,
|
|
34
|
+
noValue: (token) => token,
|
|
35
|
+
});
|
|
36
|
+
if (nodes.some((node) => node.kind === 'token' && node.parts.length > 1)) {
|
|
37
|
+
throw new Error(`Release configuration '${template}' is invalid. It can't use ?? fallbacks.`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -107,6 +107,11 @@ export declare class ReleaseGraph {
|
|
|
107
107
|
title: string;
|
|
108
108
|
bodyLines: string[];
|
|
109
109
|
} | null;
|
|
110
|
+
/**
|
|
111
|
+
* Every configured release group, regardless of filters. Version plans must be resolved
|
|
112
|
+
* against these, as pending plans may target projects outside the current filter.
|
|
113
|
+
*/
|
|
114
|
+
readonly allReleaseGroups: ReleaseGroupWithName[];
|
|
110
115
|
constructor(releaseGroups: ReleaseGroupWithName[], filters: {
|
|
111
116
|
projects?: string[];
|
|
112
117
|
groups?: string[];
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const pc = tslib_1.__importStar(require("picocolors"));
|
|
6
6
|
const prompt_helpers_1 = require("../../../../utils/prompt-helpers");
|
|
7
7
|
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const native_1 = require("../../../../native");
|
|
8
9
|
const node_fs_1 = require("node:fs");
|
|
9
10
|
const node_os_1 = require("node:os");
|
|
10
11
|
const output_1 = require("../../../../utils/output");
|
|
@@ -238,18 +239,16 @@ class GithubRemoteReleaseClient extends remote_release_client_1.RemoteReleaseCli
|
|
|
238
239
|
if (!shouldContinueInGitHub) {
|
|
239
240
|
return;
|
|
240
241
|
}
|
|
241
|
-
|
|
242
|
-
await open(result.url)
|
|
243
|
-
.then(() => {
|
|
242
|
+
if ((0, native_1.openUrl)(result.url)) {
|
|
244
243
|
console.info(`\nFollow up in the browser to manually create the release:\n\n` +
|
|
245
244
|
pc.underline(pc.cyan(result.url)) +
|
|
246
245
|
`\n`);
|
|
247
|
-
}
|
|
248
|
-
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
249
248
|
console.info(`Open this link to manually create a release: \n` +
|
|
250
249
|
pc.underline(pc.cyan(result.url)) +
|
|
251
250
|
'\n');
|
|
252
|
-
}
|
|
251
|
+
}
|
|
253
252
|
}
|
|
254
253
|
async promptForContinueInGitHub() {
|
|
255
254
|
try {
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const pc = tslib_1.__importStar(require("picocolors"));
|
|
6
6
|
const prompt_helpers_1 = require("../../../../utils/prompt-helpers");
|
|
7
7
|
const node_child_process_1 = require("node:child_process");
|
|
8
|
+
const native_1 = require("../../../../native");
|
|
8
9
|
const output_1 = require("../../../../utils/output");
|
|
9
10
|
const extract_repo_slug_1 = require("./extract-repo-slug");
|
|
10
11
|
const remote_release_client_1 = require("./remote-release-client");
|
|
@@ -157,18 +158,16 @@ class GitLabRemoteReleaseClient extends remote_release_client_1.RemoteReleaseCli
|
|
|
157
158
|
if (!shouldContinueInGitLab) {
|
|
158
159
|
return;
|
|
159
160
|
}
|
|
160
|
-
|
|
161
|
-
await open(result.url)
|
|
162
|
-
.then(() => {
|
|
161
|
+
if ((0, native_1.openUrl)(result.url)) {
|
|
163
162
|
console.info(`\nFollow up in the browser to manually create the release:\n\n` +
|
|
164
163
|
pc.underline(pc.cyan(result.url)) +
|
|
165
164
|
`\n`);
|
|
166
|
-
}
|
|
167
|
-
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
168
167
|
console.info(`Open this link to manually create a release: \n` +
|
|
169
168
|
pc.underline(pc.cyan(result.url)) +
|
|
170
169
|
'\n');
|
|
171
|
-
}
|
|
170
|
+
}
|
|
172
171
|
}
|
|
173
172
|
async promptForContinueInGitLab() {
|
|
174
173
|
try {
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveChangelogRenderer = resolveChangelogRenderer;
|
|
4
4
|
const register_1 = require("../../../plugins/js/utils/register");
|
|
5
|
-
const
|
|
5
|
+
const interpolate_release_config_1 = require("./interpolate-release-config");
|
|
6
6
|
const workspace_root_1 = require("../../../utils/workspace-root");
|
|
7
7
|
function resolveChangelogRenderer(changelogRendererPathOrImplementation) {
|
|
8
8
|
// An implementation was provided directly via the programmatic API
|
|
9
9
|
if (typeof changelogRendererPathOrImplementation === 'function') {
|
|
10
10
|
return changelogRendererPathOrImplementation;
|
|
11
11
|
}
|
|
12
|
-
const interpolatedChangelogRendererPath = (0,
|
|
12
|
+
const interpolatedChangelogRendererPath = (0, interpolate_release_config_1.interpolateReleaseConfig)(changelogRendererPathOrImplementation, {
|
|
13
13
|
workspaceRoot: workspace_root_1.workspaceRoot,
|
|
14
14
|
});
|
|
15
15
|
// TS renderers go through loadTsFile (native-strip -> swc/ts-node + paths).
|
|
@@ -12,7 +12,7 @@ exports.getCommitsRelevantToProjects = getCommitsRelevantToProjects;
|
|
|
12
12
|
const tslib_1 = require("tslib");
|
|
13
13
|
const pc = tslib_1.__importStar(require("picocolors"));
|
|
14
14
|
const semver_1 = require("semver");
|
|
15
|
-
const
|
|
15
|
+
const interpolate_release_config_1 = require("./interpolate-release-config");
|
|
16
16
|
const output_1 = require("../../../utils/output");
|
|
17
17
|
const git_1 = require("./git");
|
|
18
18
|
const find_matching_projects_1 = require("../../../utils/find-matching-projects");
|
|
@@ -34,7 +34,7 @@ class ReleaseVersion {
|
|
|
34
34
|
releaseGroupName, // optional release group name to interpolate into the releaseTagPattern
|
|
35
35
|
}) {
|
|
36
36
|
this.rawVersion = version;
|
|
37
|
-
this.gitTag = (0,
|
|
37
|
+
this.gitTag = (0, interpolate_release_config_1.interpolateReleaseConfig)(releaseTagPattern, {
|
|
38
38
|
version,
|
|
39
39
|
projectName: projectName
|
|
40
40
|
? (0, git_1.sanitizeProjectNameForGitTag)(projectName)
|
|
@@ -83,7 +83,7 @@ function createCommitMessageValues(releaseGroups, releaseGroupToFilteredProjects
|
|
|
83
83
|
releaseTagPattern: releaseGroup.releaseTag.pattern,
|
|
84
84
|
releaseGroupName: releaseGroup.name,
|
|
85
85
|
});
|
|
86
|
-
commitMessageValues[0] = (0,
|
|
86
|
+
commitMessageValues[0] = (0, interpolate_release_config_1.interpolateReleaseConfig)(commitMessageValues[0], {
|
|
87
87
|
version: releaseVersion.rawVersion,
|
|
88
88
|
}).trim();
|
|
89
89
|
return commitMessageValues;
|
|
@@ -106,7 +106,7 @@ function createCommitMessageValues(releaseGroups, releaseGroupToFilteredProjects
|
|
|
106
106
|
projectName: releaseGroupProjectNames[0],
|
|
107
107
|
releaseGroupName: releaseGroup.name,
|
|
108
108
|
});
|
|
109
|
-
commitMessageValues[0] = (0,
|
|
109
|
+
commitMessageValues[0] = (0, interpolate_release_config_1.interpolateReleaseConfig)(commitMessageValues[0], {
|
|
110
110
|
version: releaseVersion.rawVersion,
|
|
111
111
|
projectName: releaseGroupProjectNames[0],
|
|
112
112
|
}).trim();
|
|
@@ -199,14 +199,14 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
|
|
|
199
199
|
if (preferDockerVersion === 'both') {
|
|
200
200
|
// Create tags for both docker and semver versions
|
|
201
201
|
if (projectVersionData.dockerVersion) {
|
|
202
|
-
tags.push((0,
|
|
202
|
+
tags.push((0, interpolate_release_config_1.interpolateReleaseConfig)(releaseGroup.releaseTag.pattern, {
|
|
203
203
|
version: projectVersionData.dockerVersion,
|
|
204
204
|
projectName: (0, git_1.sanitizeProjectNameForGitTag)(project),
|
|
205
205
|
releaseGroupName: releaseGroup.name,
|
|
206
206
|
}));
|
|
207
207
|
}
|
|
208
208
|
if (projectVersionData.newVersion) {
|
|
209
|
-
tags.push((0,
|
|
209
|
+
tags.push((0, interpolate_release_config_1.interpolateReleaseConfig)(releaseGroup.releaseTag.pattern, {
|
|
210
210
|
version: projectVersionData.newVersion,
|
|
211
211
|
projectName: (0, git_1.sanitizeProjectNameForGitTag)(project),
|
|
212
212
|
releaseGroupName: releaseGroup.name,
|
|
@@ -221,7 +221,7 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
|
|
|
221
221
|
: (projectVersionData.newVersion ??
|
|
222
222
|
projectVersionData.dockerVersion);
|
|
223
223
|
if (version) {
|
|
224
|
-
tags.push((0,
|
|
224
|
+
tags.push((0, interpolate_release_config_1.interpolateReleaseConfig)(releaseGroup.releaseTag.pattern, {
|
|
225
225
|
version,
|
|
226
226
|
projectName: (0, git_1.sanitizeProjectNameForGitTag)(project),
|
|
227
227
|
releaseGroupName: releaseGroup.name,
|
|
@@ -241,13 +241,13 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
|
|
|
241
241
|
if (preferDockerVersion === 'both') {
|
|
242
242
|
// Create tags for both docker and semver versions
|
|
243
243
|
if (projectVersionData.dockerVersion) {
|
|
244
|
-
tags.push((0,
|
|
244
|
+
tags.push((0, interpolate_release_config_1.interpolateReleaseConfig)(releaseGroup.releaseTag.pattern, {
|
|
245
245
|
version: projectVersionData.dockerVersion,
|
|
246
246
|
releaseGroupName: releaseGroup.name,
|
|
247
247
|
}));
|
|
248
248
|
}
|
|
249
249
|
if (projectVersionData.newVersion) {
|
|
250
|
-
tags.push((0,
|
|
250
|
+
tags.push((0, interpolate_release_config_1.interpolateReleaseConfig)(releaseGroup.releaseTag.pattern, {
|
|
251
251
|
version: projectVersionData.newVersion,
|
|
252
252
|
releaseGroupName: releaseGroup.name,
|
|
253
253
|
}));
|
|
@@ -259,7 +259,7 @@ function createGitTagValues(releaseGroups, releaseGroupToFilteredProjects, versi
|
|
|
259
259
|
? (projectVersionData.dockerVersion ?? projectVersionData.newVersion)
|
|
260
260
|
: (projectVersionData.newVersion ?? projectVersionData.dockerVersion);
|
|
261
261
|
if (version) {
|
|
262
|
-
tags.push((0,
|
|
262
|
+
tags.push((0, interpolate_release_config_1.interpolateReleaseConfig)(releaseGroup.releaseTag.pattern, {
|
|
263
263
|
version,
|
|
264
264
|
releaseGroupName: releaseGroup.name,
|
|
265
265
|
}));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { GroupVersionPlan, ProjectsVersionPlan } from '../config/version-plans';
|
|
2
2
|
import { ReleaseGroupWithName } from '../config/filter-release-groups';
|
|
3
3
|
/**
|
|
4
|
-
* Validates that
|
|
5
|
-
*
|
|
4
|
+
* Validates that no version plan mixes projects being released with projects outside the release filter,
|
|
5
|
+
* as such a plan could neither be fully applied nor safely deleted.
|
|
6
6
|
*
|
|
7
|
-
* @param releaseGroups -
|
|
7
|
+
* @param releaseGroups - All configured release groups, so that plans spanning groups outside the filter are caught
|
|
8
8
|
* @param releaseGroupToFilteredProjects - Map of release groups to their filtered projects
|
|
9
9
|
* @returns An error object if validation fails, null otherwise
|
|
10
10
|
*/
|
|
@@ -29,12 +29,3 @@ export declare function getProjectsAffectedByVersionPlan(plan: GroupVersionPlan
|
|
|
29
29
|
* @returns True if ALL projects in the version plan are being filtered/released
|
|
30
30
|
*/
|
|
31
31
|
export declare function areAllVersionPlanProjectsFiltered(plan: GroupVersionPlan | ProjectsVersionPlan, releaseGroup: ReleaseGroupWithName, filteredProjects: Set<string> | undefined): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Finds projects in a version plan that are NOT included in the filtered projects set.
|
|
34
|
-
*
|
|
35
|
-
* @param plan - The version plan to check
|
|
36
|
-
* @param releaseGroup - The release group containing the version plan
|
|
37
|
-
* @param filteredProjects - Set of projects that are being released (filtered)
|
|
38
|
-
* @returns Array of project names that are in the version plan but not in the filter
|
|
39
|
-
*/
|
|
40
|
-
export declare function getVersionPlanProjectsOutsideFilter(plan: GroupVersionPlan | ProjectsVersionPlan, releaseGroup: ReleaseGroupWithName, filteredProjects: Set<string> | undefined): string[];
|