nx 21.4.0-canary.20250725-0359f0d → 21.4.0-canary.20250726-64897b7

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 (63) hide show
  1. package/.eslintrc.json +2 -0
  2. package/bin/nx.js +6 -6
  3. package/package.json +12 -11
  4. package/schemas/nx-schema.json +77 -0
  5. package/src/command-line/nx-cloud/connect/command-object.d.ts.map +1 -1
  6. package/src/command-line/nx-cloud/connect/command-object.js +2 -1
  7. package/src/command-line/nx-cloud/connect/connect-to-nx-cloud.d.ts +1 -0
  8. package/src/command-line/nx-cloud/connect/connect-to-nx-cloud.d.ts.map +1 -1
  9. package/src/command-line/nx-cloud/connect/connect-to-nx-cloud.js +12 -0
  10. package/src/command-line/release/changelog.d.ts.map +1 -1
  11. package/src/command-line/release/changelog.js +6 -2
  12. package/src/command-line/release/command-object.d.ts +1 -0
  13. package/src/command-line/release/command-object.d.ts.map +1 -1
  14. package/src/command-line/release/command-object.js +4 -0
  15. package/src/command-line/release/config/config.d.ts +10 -3
  16. package/src/command-line/release/config/config.d.ts.map +1 -1
  17. package/src/command-line/release/config/config.js +103 -0
  18. package/src/command-line/release/config/filter-release-groups.d.ts +5 -1
  19. package/src/command-line/release/config/filter-release-groups.d.ts.map +1 -1
  20. package/src/command-line/release/release.d.ts.map +1 -1
  21. package/src/command-line/release/release.js +6 -1
  22. package/src/command-line/release/utils/shared.d.ts +9 -0
  23. package/src/command-line/release/utils/shared.d.ts.map +1 -1
  24. package/src/command-line/release/utils/shared.js +25 -4
  25. package/src/command-line/release/version/project-logger.d.ts.map +1 -1
  26. package/src/command-line/release/version/project-logger.js +1 -0
  27. package/src/command-line/release/version/release-group-processor.d.ts +6 -1
  28. package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
  29. package/src/command-line/release/version/release-group-processor.js +73 -3
  30. package/src/command-line/release/version/version-actions.d.ts +21 -0
  31. package/src/command-line/release/version/version-actions.d.ts.map +1 -1
  32. package/src/command-line/release/version/version-actions.js +32 -1
  33. package/src/command-line/release/version.d.ts.map +1 -1
  34. package/src/command-line/release/version.js +42 -11
  35. package/src/command-line/sync/sync.d.ts.map +1 -1
  36. package/src/command-line/sync/sync.js +8 -2
  37. package/src/config/nx-json.d.ts +58 -0
  38. package/src/config/nx-json.d.ts.map +1 -1
  39. package/src/config/workspace-json-project-json.d.ts +2 -1
  40. package/src/config/workspace-json-project-json.d.ts.map +1 -1
  41. package/src/core/graph/main.js +1 -1
  42. package/src/daemon/server/handle-get-sync-generator-changes.d.ts.map +1 -1
  43. package/src/daemon/server/handle-get-sync-generator-changes.js +1 -0
  44. package/src/native/index.d.ts +1 -0
  45. package/src/native/nx.wasm32-wasi.wasm +0 -0
  46. package/src/plugins/js/lock-file/pnpm-parser.js +2 -1
  47. package/src/project-graph/utils/normalize-project-nodes.d.ts +5 -5
  48. package/src/project-graph/utils/normalize-project-nodes.d.ts.map +1 -1
  49. package/src/project-graph/utils/normalize-project-nodes.js +35 -6
  50. package/src/tasks-runner/life-cycle.d.ts +2 -0
  51. package/src/tasks-runner/life-cycle.d.ts.map +1 -1
  52. package/src/tasks-runner/life-cycle.js +7 -0
  53. package/src/tasks-runner/task-orchestrator.d.ts.map +1 -1
  54. package/src/tasks-runner/task-orchestrator.js +5 -0
  55. package/src/tasks-runner/tasks-schedule.d.ts +1 -0
  56. package/src/tasks-runner/tasks-schedule.d.ts.map +1 -1
  57. package/src/tasks-runner/tasks-schedule.js +3 -0
  58. package/src/utils/git-utils.d.ts +1 -0
  59. package/src/utils/git-utils.d.ts.map +1 -1
  60. package/src/utils/git-utils.js +11 -4
  61. package/src/utils/sync-generators.d.ts +3 -1
  62. package/src/utils/sync-generators.d.ts.map +1 -1
  63. package/src/utils/sync-generators.js +7 -1
package/.eslintrc.json CHANGED
@@ -138,6 +138,8 @@
138
138
  // Powerpack plugin conditionally available dynamically at runtime
139
139
  "@nx/powerpack-conformance",
140
140
  "@nx/conformance",
141
+ // Nx Docker plugin conditionally available dynamically at runtime
142
+ "@nx/docker",
141
143
  // Only used in test-utils at the time of writing
142
144
  "@ltd/j-toml"
143
145
  ]
package/bin/nx.js CHANGED
@@ -68,7 +68,12 @@ async function main() {
68
68
  handleMissingLocalInstallation(workspace ? workspace.dir : null);
69
69
  }
70
70
  // this file is already in the local workspace
71
- if (isLocalInstall) {
71
+ if (isNxCloudCommand(process.argv[2])) {
72
+ // nx-cloud commands can run without local Nx installation
73
+ process.env.NX_DAEMON = 'false';
74
+ require('nx/src/command-line/nx-commands').commandsObject.argv;
75
+ }
76
+ else if (isLocalInstall) {
72
77
  await (0, init_local_1.initLocal)(workspace);
73
78
  }
74
79
  else if (localNx) {
@@ -82,11 +87,6 @@ async function main() {
82
87
  require(localNx);
83
88
  }
84
89
  }
85
- else if (isNxCloudCommand(process.argv[2])) {
86
- // nx-cloud commands can run without local Nx installation
87
- process.env.NX_DAEMON = 'false';
88
- require('nx/src/command-line/nx-commands').commandsObject.argv;
89
- }
90
90
  }
91
91
  }
92
92
  function handleNoWorkspace(globalNxVersion) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "21.4.0-canary.20250725-0359f0d",
3
+ "version": "21.4.0-canary.20250726-64897b7",
4
4
  "private": false,
5
5
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
6
6
  "repository": {
@@ -83,16 +83,16 @@
83
83
  }
84
84
  },
85
85
  "optionalDependencies": {
86
- "@nx/nx-darwin-arm64": "21.4.0-canary.20250725-0359f0d",
87
- "@nx/nx-darwin-x64": "21.4.0-canary.20250725-0359f0d",
88
- "@nx/nx-freebsd-x64": "21.4.0-canary.20250725-0359f0d",
89
- "@nx/nx-linux-arm-gnueabihf": "21.4.0-canary.20250725-0359f0d",
90
- "@nx/nx-linux-arm64-gnu": "21.4.0-canary.20250725-0359f0d",
91
- "@nx/nx-linux-arm64-musl": "21.4.0-canary.20250725-0359f0d",
92
- "@nx/nx-linux-x64-gnu": "21.4.0-canary.20250725-0359f0d",
93
- "@nx/nx-linux-x64-musl": "21.4.0-canary.20250725-0359f0d",
94
- "@nx/nx-win32-arm64-msvc": "21.4.0-canary.20250725-0359f0d",
95
- "@nx/nx-win32-x64-msvc": "21.4.0-canary.20250725-0359f0d"
86
+ "@nx/nx-darwin-arm64": "21.4.0-canary.20250726-64897b7",
87
+ "@nx/nx-darwin-x64": "21.4.0-canary.20250726-64897b7",
88
+ "@nx/nx-freebsd-x64": "21.4.0-canary.20250726-64897b7",
89
+ "@nx/nx-linux-arm-gnueabihf": "21.4.0-canary.20250726-64897b7",
90
+ "@nx/nx-linux-arm64-gnu": "21.4.0-canary.20250726-64897b7",
91
+ "@nx/nx-linux-arm64-musl": "21.4.0-canary.20250726-64897b7",
92
+ "@nx/nx-linux-x64-gnu": "21.4.0-canary.20250726-64897b7",
93
+ "@nx/nx-linux-x64-musl": "21.4.0-canary.20250726-64897b7",
94
+ "@nx/nx-win32-arm64-msvc": "21.4.0-canary.20250726-64897b7",
95
+ "@nx/nx-win32-x64-msvc": "21.4.0-canary.20250726-64897b7"
96
96
  },
97
97
  "nx-migrations": {
98
98
  "migrations": "./migrations.json",
@@ -129,6 +129,7 @@
129
129
  "@nx/vue",
130
130
  "@nx/web",
131
131
  "@nx/webpack",
132
+ "@nx/docker",
132
133
  {
133
134
  "package": "nx-cloud",
134
135
  "version": "latest"
@@ -224,6 +224,18 @@
224
224
  "description": "Enables using version plans as a specifier source for versioning and to determine changes for changelog generation."
225
225
  }
226
226
  ]
227
+ },
228
+ "docker": {
229
+ "oneOf": [
230
+ {
231
+ "type": "boolean",
232
+ "enum": [true],
233
+ "description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning. "
234
+ },
235
+ {
236
+ "$ref": "#/definitions/NxReleaseGroupDockerConfiguration"
237
+ }
238
+ ]
227
239
  }
228
240
  },
229
241
  "required": ["projects"]
@@ -309,6 +321,18 @@
309
321
  },
310
322
  "releaseTagPatternStrictPreid": {
311
323
  "$ref": "#/definitions/NxReleaseReleaseTagPatternStrictPreidConfiguration"
324
+ },
325
+ "docker": {
326
+ "oneOf": [
327
+ {
328
+ "type": "boolean",
329
+ "enum": [true],
330
+ "description": "Enable docker configuration with default settings. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning."
331
+ },
332
+ {
333
+ "$ref": "#/definitions/NxReleaseDockerConfiguration"
334
+ }
335
+ ]
312
336
  }
313
337
  }
314
338
  },
@@ -995,6 +1019,59 @@
995
1019
  }
996
1020
  }
997
1021
  }
1022
+ },
1023
+ "NxReleaseDockerConfiguration": {
1024
+ "type": "object",
1025
+ "description": "Configuration for handling Docker projects during nx release.",
1026
+ "properties": {
1027
+ "preVersionCommand": {
1028
+ "type": "string",
1029
+ "description": "A command to run after validation of nx release configuration, but before docker versioning begins. Useful for preparing docker build artifacts. If --dry-run is passed, the command is still executed, but with the NX_DRY_RUN environment variable set to 'true'."
1030
+ },
1031
+ "skipVersionActions": {
1032
+ "oneOf": [
1033
+ {
1034
+ "type": "array",
1035
+ "items": {
1036
+ "type": "string"
1037
+ },
1038
+ "description": "Array of projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins."
1039
+ },
1040
+ {
1041
+ "type": "boolean",
1042
+ "description": "When set to true, all projects in the release setup/release group will use a no-op VersionActions implementation."
1043
+ }
1044
+ ],
1045
+ "description": "Projects which should use a no-op VersionActions implementation rather than any potentially inferred by default or via Inference Plugins. Can be an array of project names (subset of projects in the release setup/release group) or a boolean (true means all projects)."
1046
+ },
1047
+ "versionSchemes": {
1048
+ "type": "object",
1049
+ "additionalProperties": {
1050
+ "type": "string"
1051
+ },
1052
+ "description": "Record of named version patterns to choose between when versioning docker projects. e.g. \"production\": \"{currentDate|YYMM.DD}.{shortCommitSha}\", \"hotfix\": \"{currentDate|YYMM.DD}-hotfix\""
1053
+ },
1054
+ "repositoryName": {
1055
+ "type": "string",
1056
+ "description": "Repository name for the image on the configured registry"
1057
+ },
1058
+ "registryUrl": {
1059
+ "type": "string",
1060
+ "description": "Url of the Docker Image/Container Registry to push images to. Defaults to Docker Hub."
1061
+ }
1062
+ },
1063
+ "additionalProperties": false
1064
+ },
1065
+ "NxReleaseGroupDockerConfiguration": {
1066
+ "type": "object",
1067
+ "$comment": "We need to improve this configuration definition to be more precise once legacy versioning is removed. Right now it needs to be left open and runtime validation will ensure correct behavior.",
1068
+ "properties": {
1069
+ "groupPreVersionCommand": {
1070
+ "type": "string",
1071
+ "description": "A command to run after validation of nx release configuration, but before docker versioning begins. Used for preparing docker build artifacts. If --dry-run is passed, the command is still executed, but with the NX_DRY_RUN environment variable set to 'true'. It will run in addition to the global `preVersionCommand`"
1072
+ }
1073
+ },
1074
+ "additionalProperties": true
998
1075
  }
999
1076
  }
1000
1077
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,OAAO,CAAC;AAK5C,eAAO,MAAM,mBAAmB,EAAE,aAiBjC,CAAC;AAUF,eAAO,MAAM,oBAAoB,EAAE,aAMlC,CAAC"}
1
+ {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAE,MAAM,OAAO,CAAC;AAK5C,eAAO,MAAM,mBAAmB,EAAE,aAoBjC,CAAC;AAUF,eAAO,MAAM,oBAAoB,EAAE,aAMlC,CAAC"}
@@ -10,7 +10,8 @@ exports.yargsConnectCommand = {
10
10
  describe: `Connect workspace to Nx Cloud.`,
11
11
  builder: (yargs) => (0, documentation_1.linkToNxDevAndExamples)(withConnectOptions(yargs), 'connect-to-nx-cloud'),
12
12
  handler: async (args) => {
13
- await (await Promise.resolve().then(() => require('./connect-to-nx-cloud'))).connectToNxCloudCommand(args);
13
+ const checkRemote = process.env.NX_SKIP_CHECK_REMOTE !== 'true';
14
+ await (await Promise.resolve().then(() => require('./connect-to-nx-cloud'))).connectToNxCloudCommand({ ...args, checkRemote });
14
15
  await (await Promise.resolve().then(() => require('../../../utils/ab-testing'))).recordStat({
15
16
  command: 'connect',
16
17
  nxVersion: versions_1.nxVersion,
@@ -7,6 +7,7 @@ export declare function connectToNxCloudIfExplicitlyAsked(opts: NxArgs): Promise
7
7
  export declare function connectWorkspaceToCloud(options: ConnectToNxCloudOptions, directory?: string): Promise<string>;
8
8
  export declare function connectToNxCloudCommand(options: {
9
9
  generateToken?: boolean;
10
+ checkRemote?: boolean;
10
11
  }, command?: string): Promise<boolean>;
11
12
  export declare function connectExistingRepoToNxCloudPrompt(command?: string, key?: MessageKey): Promise<boolean>;
12
13
  export declare function connectToNxCloudWithPrompt(command: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"connect-to-nx-cloud.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/connect-to-nx-cloud.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,uBAAuB,EACxB,MAAM,sEAAsE,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EACL,UAAU,EAIX,MAAM,2BAA2B,CAAC;AAOnC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,WAclE;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,EAChC,SAAS,SAAgB,mBAO1B;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA+DlB;AAMD,wBAAsB,kCAAkC,CACtD,OAAO,SAAS,EAChB,GAAG,GAAE,UAA2B,GAC/B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,iBAY/D"}
1
+ {"version":3,"file":"connect-to-nx-cloud.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/nx-cloud/connect/connect-to-nx-cloud.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,uBAAuB,EACxB,MAAM,sEAAsE,CAAC;AAI9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EACL,UAAU,EAIX,MAAM,2BAA2B,CAAC;AAQnC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,WAclE;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,uBAAuB,EAChC,SAAS,SAAgB,mBAO1B;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3D,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA2ElB;AAMD,wBAAsB,kCAAkC,CACtD,OAAO,SAAS,EAChB,GAAG,GAAE,UAA2B,GAC/B,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,iBAY/D"}
@@ -17,6 +17,7 @@ const ab_testing_1 = require("../../../utils/ab-testing");
17
17
  const versions_1 = require("../../../utils/versions");
18
18
  const workspace_root_1 = require("../../../utils/workspace-root");
19
19
  const chalk = require("chalk");
20
+ const git_utils_1 = require("../../../utils/git-utils");
20
21
  const ora = require('ora');
21
22
  const open = require('open');
22
23
  function onlyDefaultRunnerIsUsed(nxJson) {
@@ -59,6 +60,17 @@ async function connectToNxCloudCommand(options, command) {
59
60
  const installationSource = process.env.NX_CONSOLE
60
61
  ? 'nx-console'
61
62
  : 'nx-connect';
63
+ const hasRemote = !!(0, git_utils_1.getGitRemote)();
64
+ if (!hasRemote && options.checkRemote) {
65
+ output_1.output.error({
66
+ title: 'Missing VCS provider',
67
+ bodyLines: [
68
+ 'Push this repository to a VCS provider (e.g., GitHub) and try again.',
69
+ 'Go to https://github.com/new to create a repository on GitHub.',
70
+ ],
71
+ });
72
+ return false;
73
+ }
62
74
  if ((0, nx_cloud_utils_1.isNxCloudUsed)(nxJson)) {
63
75
  const token = process.env.NX_CLOUD_ACCESS_TOKEN ||
64
76
  nxJson.nxCloudAccessToken ||
@@ -1 +1 @@
1
- {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/changelog.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AAkB1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmBpD,OAAO,EAEL,SAAS,EAUV,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,cAAc,EAQf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE;QACnB,cAAc,EAAE,cAAc,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B,GAAI,MAAM,gBAAgB,oBACV,CAAC;AAExD,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAOnE,MAAM,gBAAgB,KACrB,OAAO,CAAC,wBAAwB,CAAC,CAqrBrC"}
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/changelog.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AAkB1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAmBpD,OAAO,EAEL,SAAS,EAUV,MAAM,aAAa,CAAC;AAQrB,OAAO,EACL,cAAc,EASf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE;QACnB,cAAc,EAAE,cAAc,CAAC;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;KACjC,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,cAAc,EAAE,cAAc,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElE,eAAO,MAAM,0BAA0B,GAAI,MAAM,gBAAgB,oBACV,CAAC;AAExD,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAOnE,MAAM,gBAAgB,KACrB,OAAO,CAAC,wBAAwB,CAAC,CAqrBrC"}
@@ -827,11 +827,15 @@ async function generateChangelogForProjects({ tree, args, changes, projectsVersi
827
827
  * no changelog entry is relevant in that case.
828
828
  */
829
829
  if (!projectsVersionData[project.name] ||
830
- projectsVersionData[project.name].newVersion === null) {
830
+ (projectsVersionData[project.name].newVersion === null &&
831
+ !projectsVersionData[project.name].dockerVersion)) {
831
832
  continue;
832
833
  }
834
+ const preferDockerVersion = (0, shared_1.shouldPreferDockerVersionForReleaseGroup)(releaseGroup);
833
835
  const releaseVersion = new shared_1.ReleaseVersion({
834
- version: projectsVersionData[project.name].newVersion,
836
+ version: preferDockerVersion && projectsVersionData[project.name].dockerVersion
837
+ ? projectsVersionData[project.name].dockerVersion
838
+ : projectsVersionData[project.name].newVersion,
835
839
  releaseTagPattern: releaseGroup.releaseTagPattern,
836
840
  projectName: project.name,
837
841
  });
@@ -33,6 +33,7 @@ export type VersionOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & Firs
33
33
  */
34
34
  generatorOptionsOverrides?: Record<string, unknown>;
35
35
  versionActionsOptionsOverrides?: Record<string, unknown>;
36
+ dockerVersionScheme?: string;
36
37
  };
37
38
  export type ChangelogOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & FirstReleaseArgs & {
38
39
  version?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/command-object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-object.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/command-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,aAAa,EAAY,MAAM,OAAO,CAAC;AAEtD,OAAO,EACL,WAAW,EACX,cAAc,EAQf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,aAAa,GACxC,UAAU,GACV,eAAe,GACf,gBAAgB,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,8BAA8B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAC1C,UAAU,GACV,eAAe,GACf,gBAAgB,GAAG;IAEjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC7C,CAAC;AAEJ,MAAM,MAAM,cAAc,GAAG,aAAa,GACxC,OAAO,CAAC,cAAc,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,WAAW,CAAA;CAAE,GAAG,gBAAgB,GAAG;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,aAAa,GACxC,gBAAgB,GAAG;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAC7C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvB,aAAa,CA0Ed,CAAC"}
@@ -80,6 +80,10 @@ const releaseCommand = {
80
80
  type: 'string',
81
81
  describe: 'The optional prerelease identifier to apply to the version. This will only be applied in the case that the specifier argument has been set to `prerelease` OR when conventional commits are enabled, in which case it will modify the resolved specifier from conventional commits to be its prerelease equivalent. E.g. minor -> preminor.',
82
82
  default: '',
83
+ })
84
+ .options('dockerVersionScheme', {
85
+ type: 'string',
86
+ describe: 'Exact docker version scheme to apply to the selected release group. Warning: Docker support is experimental. Breaking changes may occur and not adhere to semver versioning.',
83
87
  })
84
88
  .option('yes', {
85
89
  type: 'boolean',
@@ -1,8 +1,13 @@
1
- import { NxJsonConfiguration, NxReleaseConfiguration } from '../../../config/nx-json';
1
+ import { NxJsonConfiguration, NxReleaseConfiguration, NxReleaseDockerConfiguration } from '../../../config/nx-json';
2
2
  import { ProjectFileMap, ProjectGraph } from '../../../config/project-graph';
3
3
  type DeepRequired<T> = Required<{
4
4
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
5
5
  }>;
6
+ type EnsureDockerOptional<T> = {
7
+ [K in keyof T]: Omit<T[K], 'docker'> & {
8
+ docker: DeepRequired<NxReleaseDockerConfiguration> | undefined;
9
+ };
10
+ };
6
11
  type EnsureProjectsArray<T> = {
7
12
  [K in keyof T]: T[K] extends {
8
13
  projects: any;
@@ -36,12 +41,14 @@ export declare const DEFAULT_VERSION_ACTIONS_PATH = "@nx/js/src/release/version-
36
41
  * pattern such as directories and globs).
37
42
  */
38
43
  export type NxReleaseConfig = Omit<DeepRequired<NxReleaseConfiguration & {
39
- groups: DeepRequired<RemoveTrueFromPropertiesOnEach<EnsureProjectsArray<NxReleaseConfiguration['groups']>, 'changelog'>>;
44
+ groups: EnsureDockerOptional<DeepRequired<RemoveTrueFromPropertiesOnEach<EnsureProjectsArray<NxReleaseConfiguration['groups']>, 'changelog' | 'docker'>>>;
40
45
  changelog: RemoveTrueFromProperties<DeepRequired<NxReleaseConfiguration['changelog']>, 'workspaceChangelog' | 'projectChangelogs'>;
41
46
  conventionalCommits: {
42
47
  types: RemoveBooleanFromPropertiesOnEach<DeepRequired<RemoveBooleanFromProperties<DeepRequired<NxReleaseConfiguration['conventionalCommits']['types']>, string>>, 'changelog'>;
43
48
  };
44
- }>, 'projects'>;
49
+ }>, 'projects' | 'docker'> & {
50
+ docker: DeepRequired<NxReleaseDockerConfiguration> | undefined;
51
+ };
45
52
  export interface CreateNxReleaseConfigError {
46
53
  code: 'PROJECTS_AND_GROUPS_DEFINED' | 'RELEASE_GROUP_MATCHES_NO_PROJECTS' | 'RELEASE_GROUP_RELEASE_TAG_PATTERN_VERSION_PLACEHOLDER_MISSING_OR_EXCESSIVE' | 'PROJECT_MATCHES_MULTIPLE_GROUPS' | 'CONVENTIONAL_COMMITS_SHORTHAND_MIXED_WITH_OVERLAPPING_OPTIONS' | 'GLOBAL_GIT_CONFIG_MIXED_WITH_GRANULAR_GIT_CONFIG' | 'CANNOT_RESOLVE_CHANGELOG_RENDERER' | 'INVALID_CHANGELOG_CREATE_RELEASE_PROVIDER' | 'INVALID_CHANGELOG_CREATE_RELEASE_HOSTNAME' | 'INVALID_CHANGELOG_CREATE_RELEASE_API_BASE_URL' | 'GIT_PUSH_FALSE_WITH_CREATE_RELEASE';
47
54
  data: Record<string, string | string[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/config.ts"],"names":[],"mappings":"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"}
@@ -139,9 +139,56 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
139
139
  (userConfig.projectsRelationship === 'independent' &&
140
140
  !userGroups.some((g) => g.projectsRelationship === 'fixed'));
141
141
  const defaultRendererPath = (0, node_path_1.join)(__dirname, '../../../../release/changelog-renderer');
142
+ // Helper function to create meaningful docker defaults when user opts in
143
+ function createDockerDefaults(userDockerConfig) {
144
+ const defaultVersionSchemes = {
145
+ production: '{currentDate|YYMM.DD}.{shortCommitSha}',
146
+ hotfix: '{currentDate|YYMM.DD}.{shortCommitSha}-hotfix',
147
+ };
148
+ const defaultPreVersionCommand = 'npx nx run-many -t docker:build';
149
+ // If user explicitly sets docker: true, apply meaningful defaults
150
+ if (userDockerConfig === true) {
151
+ return {
152
+ preVersionCommand: defaultPreVersionCommand,
153
+ skipVersionActions: undefined,
154
+ versionSchemes: defaultVersionSchemes,
155
+ repositoryName: undefined,
156
+ registryUrl: undefined,
157
+ };
158
+ }
159
+ // If user provides docker configuration object, merge with base defaults
160
+ return {
161
+ preVersionCommand: userDockerConfig.preVersionCommand ?? defaultPreVersionCommand,
162
+ skipVersionActions: userDockerConfig.skipVersionActions
163
+ ? Array.isArray(userDockerConfig.skipVersionActions)
164
+ ? (0, find_matching_projects_1.findMatchingProjects)(userDockerConfig.skipVersionActions, projectGraph.nodes)
165
+ : userDockerConfig.skipVersionActions
166
+ : undefined,
167
+ versionSchemes: userDockerConfig.versionSchemes ?? defaultVersionSchemes,
168
+ repositoryName: userDockerConfig.repositoryName,
169
+ registryUrl: userDockerConfig.registryUrl,
170
+ };
171
+ }
172
+ // Helper function to normalize docker config at group level
173
+ function normalizeDockerConfig(dockerConfig) {
174
+ // If user explicitly sets docker: true at group level, apply meaningful defaults
175
+ if (dockerConfig === true) {
176
+ return createDockerDefaults(true);
177
+ }
178
+ // If user provides docker configuration object at group level, return it
179
+ if (dockerConfig && typeof dockerConfig === 'object') {
180
+ return createDockerDefaults(dockerConfig);
181
+ }
182
+ // No group-level docker config
183
+ return undefined;
184
+ }
142
185
  const WORKSPACE_DEFAULTS = {
143
186
  // By default all projects in all groups are released together
144
187
  projectsRelationship: workspaceProjectsRelationship,
188
+ // Create docker defaults only if user has explicitly configured it, otherwise undefined
189
+ docker: userConfig.docker !== undefined
190
+ ? createDockerDefaults(userConfig.docker)
191
+ : undefined,
145
192
  git: gitDefaults,
146
193
  version: {
147
194
  useLegacyVersioning: USE_LEGACY_VERSIONING,
@@ -218,8 +265,16 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
218
265
  WORKSPACE_DEFAULTS.releaseTagPatternRequireSemver;
219
266
  const groupReleaseTagPatternStrictPreid = userConfig.releaseTagPatternStrictPreid ??
220
267
  defaultReleaseTagPatternStrictPreid;
268
+ const groupDocker = normalizeDockerConfig(userConfig.docker ?? WORKSPACE_DEFAULTS.docker);
221
269
  const GROUP_DEFAULTS = {
222
270
  projectsRelationship: groupProjectsRelationship,
271
+ // Only include docker configuration if user has explicitly configured it
272
+ docker: groupDocker && Object.keys(groupDocker).length > 0
273
+ ? {
274
+ ...groupDocker,
275
+ groupPreVersionCommand: '',
276
+ }
277
+ : undefined,
223
278
  version: USE_LEGACY_VERSIONING
224
279
  ? {
225
280
  conventionalCommits: false,
@@ -270,6 +325,10 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
270
325
  git: userConfig.git,
271
326
  },
272
327
  ], userConfig.version);
328
+ const rootDockerConfig = userConfig.docker && {
329
+ ...normalizeDockerConfig(WORKSPACE_DEFAULTS.docker),
330
+ ...normalizeDockerConfig(userConfig.docker),
331
+ };
273
332
  if (userConfig.changelog?.workspaceChangelog) {
274
333
  userConfig.changelog.workspaceChangelog = normalizeTrueToEmptyObject(userConfig.changelog.workspaceChangelog);
275
334
  }
@@ -333,6 +392,8 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
333
392
  delete rootVersionWithoutGlobalOptions
334
393
  .specifierSource;
335
394
  }
395
+ const rootDockerWithoutGlobalOptions = { ...rootDockerConfig };
396
+ delete rootDockerWithoutGlobalOptions.preVersionCommand;
336
397
  const groups = userConfig.groups && Object.keys(userConfig.groups).length
337
398
  ? ensureProjectsConfigIsArray(userConfig.groups)
338
399
  : /**
@@ -342,6 +403,10 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
342
403
  {
343
404
  [exports.IMPLICIT_DEFAULT_RELEASE_GROUP]: {
344
405
  projectsRelationship: GROUP_DEFAULTS.projectsRelationship,
406
+ // Only include docker configuration if user has explicitly configured it
407
+ docker: Object.keys(rootDockerWithoutGlobalOptions).length > 0
408
+ ? deepMergeDefaults([GROUP_DEFAULTS.docker], rootDockerWithoutGlobalOptions)
409
+ : undefined,
345
410
  projects: userConfig.projects
346
411
  ? // user-defined top level "projects" config takes priority if set
347
412
  (0, find_matching_projects_1.findMatchingProjects)(ensureArray(userConfig.projects), projectGraph.nodes)
@@ -414,8 +479,21 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
414
479
  if (releaseGroup.changelog) {
415
480
  releaseGroup.changelog = normalizeTrueToEmptyObject(releaseGroup.changelog);
416
481
  }
482
+ const normalizedGroupDockerConfig = normalizeDockerConfig(releaseGroup.docker);
483
+ // Only include docker configuration if user has explicitly configured it at root or group level
484
+ const shouldIncludeDockerConfig = Object.keys(rootDockerWithoutGlobalOptions).length > 0 ||
485
+ normalizedGroupDockerConfig !== undefined;
417
486
  const groupDefaults = {
418
487
  projectsRelationship,
488
+ // Only include docker configuration if user has explicitly configured it
489
+ docker: shouldIncludeDockerConfig
490
+ ? {
491
+ ...GROUP_DEFAULTS.docker,
492
+ ...rootDockerWithoutGlobalOptions,
493
+ groupPreVersionCommand: '',
494
+ ...releaseGroup.docker,
495
+ }
496
+ : undefined,
419
497
  projects: matchingProjects,
420
498
  version: deepMergeDefaults(
421
499
  // First apply any group level defaults, then apply actual root level config, then group level config
@@ -450,6 +528,10 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
450
528
  });
451
529
  finalReleaseGroup.version =
452
530
  finalReleaseGroup.version;
531
+ // Clean up docker global options that are not supported at the group level
532
+ if (finalReleaseGroup.docker) {
533
+ delete finalReleaseGroup.docker.preVersionCommand;
534
+ }
453
535
  // Apply conventionalCommits shorthand to the final group if explicitly configured in the original group
454
536
  if (releaseGroup.version?.conventionalCommits === true) {
455
537
  if (USE_LEGACY_VERSIONING) {
@@ -501,6 +583,22 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
501
583
  }
502
584
  releaseGroups[releaseGroupName] = finalReleaseGroup;
503
585
  }
586
+ // Infer docker-related properties based on project configurations
587
+ for (const [releaseGroupName, releaseGroup] of Object.entries(releaseGroups)) {
588
+ const hasDockerProjects = releaseGroup.projects.some((projectName) => {
589
+ const projectNode = projectGraph.nodes[projectName];
590
+ // Check if project has meaningful docker config (not just undefined/empty values)
591
+ const projectDockerConfig = projectNode?.data.release?.docker;
592
+ const hasProjectDockerConfig = projectDockerConfig !== undefined;
593
+ // Check if release group has docker config at all (since we now only include it when explicitly configured)
594
+ const hasGroupDockerConfig = !!releaseGroup.docker;
595
+ return hasProjectDockerConfig || hasGroupDockerConfig;
596
+ });
597
+ if (hasDockerProjects) {
598
+ // If any project in the group has docker configuration, disable semver requirement
599
+ releaseGroup.releaseTagPatternRequireSemver = false;
600
+ }
601
+ }
504
602
  const configError = validateChangelogConfig(releaseGroups, rootChangelogConfig);
505
603
  if (configError) {
506
604
  return {
@@ -512,11 +610,16 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
512
610
  error: null,
513
611
  nxReleaseConfig: {
514
612
  projectsRelationship: WORKSPACE_DEFAULTS.projectsRelationship,
613
+ // Only include docker configuration if user has explicitly configured it
614
+ ...(WORKSPACE_DEFAULTS.docker
615
+ ? { docker: WORKSPACE_DEFAULTS.docker }
616
+ : {}),
515
617
  releaseTagPattern: WORKSPACE_DEFAULTS.releaseTagPattern,
516
618
  releaseTagPatternCheckAllBranchesWhen: WORKSPACE_DEFAULTS.releaseTagPatternCheckAllBranchesWhen,
517
619
  releaseTagPatternRequireSemver: WORKSPACE_DEFAULTS.releaseTagPatternRequireSemver,
518
620
  releaseTagPatternStrictPreid: WORKSPACE_DEFAULTS.releaseTagPatternStrictPreid,
519
621
  git: rootGitConfig,
622
+ docker: rootDockerConfig,
520
623
  version: rootVersionConfig,
521
624
  changelog: rootChangelogConfig,
522
625
  groups: releaseGroups,
@@ -1,9 +1,13 @@
1
1
  import { ProjectGraph } from '../../../config/project-graph';
2
2
  import { NxReleaseConfig } from './config';
3
3
  import { GroupVersionPlan, ProjectsVersionPlan } from './version-plans';
4
- export type ReleaseGroupWithName = NxReleaseConfig['groups'][string] & {
4
+ import { NxReleaseDockerConfiguration } from '../../../config/nx-json';
5
+ export type ReleaseGroupWithName = Omit<NxReleaseConfig['groups'][string], 'docker'> & {
5
6
  name: string;
6
7
  resolvedVersionPlans: (ProjectsVersionPlan | GroupVersionPlan)[] | false;
8
+ docker?: NxReleaseDockerConfiguration & {
9
+ groupPreVersionCommand?: string;
10
+ };
7
11
  };
8
12
  export declare function filterReleaseGroups(projectGraph: ProjectGraph, nxReleaseConfig: NxReleaseConfig, projectsFilter?: string[], groupsFilter?: string[]): {
9
13
  error: null | {
@@ -1 +1 @@
1
- {"version":3,"file":"filter-release-groups.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/filter-release-groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAkC,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,EAAE,GAAG,KAAK,CAAC;CAC1E,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB;IACD,KAAK,EAAE,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACtD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,GAAG,IAAI,CAAC;IACT,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,8BAA8B,EAAE,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACxE,CAgMA"}
1
+ {"version":3,"file":"filter-release-groups.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/filter-release-groups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAkC,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EACjC,QAAQ,CACT,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,EAAE,GAAG,KAAK,CAAC;IACzE,MAAM,CAAC,EAAE,4BAA4B,GAAG;QAAE,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7E,CAAC;AAEF,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB;IACD,KAAK,EAAE,IAAI,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACtD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,GAAG,IAAI,CAAC;IACT,aAAa,EAAE,oBAAoB,EAAE,CAAC;IACtC,8BAA8B,EAAE,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACxE,CAgMA"}
@@ -1 +1 @@
1
- {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/release.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AAM1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAyBlE,OAAO,EACL,sBAAsB,EAEvB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,iBAAiB,GAAI,MAAM,cAAc,oBACC,CAAC;AAExD,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAMnE,MAAM,cAAc,KACnB,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,CA4U5C"}
1
+ {"version":3,"file":"release.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/release.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAc,MAAM,sBAAsB,CAAC;AAM1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAyBlE,OAAO,EACL,sBAAsB,EAEvB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,iBAAiB,GAAI,MAAM,cAAc,oBACC,CAAC;AAExD,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAMnE,MAAM,cAAc,KACnB,OAAO,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAkV5C"}
@@ -225,7 +225,12 @@ function createAPI(overrideReleaseConfig) {
225
225
  let hasNewVersion = false;
226
226
  // null means that all projects are versioned together but there were no changes
227
227
  if (versionResult.workspaceVersion !== null) {
228
- hasNewVersion = Object.values(versionResult.projectsVersionData).some((version) => version.newVersion !== null);
228
+ hasNewVersion = Object.values(versionResult.projectsVersionData).some((version) =>
229
+ /**
230
+ * There is a scenario where applications will not have a newVersion created by VerisonActions,
231
+ * however, there will still be a dockerVersion created from the docker release.
232
+ */
233
+ version.newVersion !== null || version.dockerVersion !== null);
229
234
  }
230
235
  let shouldPublish = !!args.yes && !args.skipPublish && hasNewVersion;
231
236
  const shouldPromptPublishing = !args.yes && !args.skipPublish && !args.dryRun && hasNewVersion;
@@ -10,6 +10,11 @@ export interface VersionDataEntry {
10
10
  * e.g. when using conventional commits
11
11
  */
12
12
  newVersion: string | null;
13
+ /**
14
+ * dockerVersion will be populated if the project is a docker project and has been
15
+ * included within this release.
16
+ */
17
+ dockerVersion?: string;
13
18
  /**
14
19
  * The list of projects which depend upon the current project.
15
20
  */
@@ -43,6 +48,10 @@ export declare function commitChanges({ changedFiles, deletedFiles, isDryRun, is
43
48
  gitCommitArgs?: string | string[];
44
49
  }): Promise<void>;
45
50
  export declare function createCommitMessageValues(releaseGroups: ReleaseGroupWithName[], releaseGroupToFilteredProjects: Map<ReleaseGroupWithName, Set<string>>, versionData: VersionData, commitMessage: string): string[];
51
+ export declare function shouldPreferDockerVersionForReleaseGroup(releaseGroup: ReleaseGroupWithName): boolean;
52
+ export declare function shouldSkipVersionActions(dockerOptions: {
53
+ skipVersionActions?: string[] | boolean;
54
+ }, projectName: string): boolean;
46
55
  export declare function createGitTagValues(releaseGroups: ReleaseGroupWithName[], releaseGroupToFilteredProjects: Map<ReleaseGroupWithName, Set<string>>, versionData: VersionData): string[];
47
56
  export declare function handleDuplicateGitTags(gitTagValues: string[]): void;
48
57
  export declare function getCommitsRelevantToProjects(projectGraph: ProjectGraph, commits: GitCommit[], projects: string[]): Promise<GitCommit[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAErD,eAAO,MAAM,wBAAwB,QAEpC,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;OAEG;IACH,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACL;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED,qBAAa,cAAc;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;gBAEV,EACV,OAAO,EAAE,qEAAqE;IAC9E,iBAAiB,EAAE,8EAA8E;IACjG,WAAW,GACZ,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CAQF;AAED,wBAAsB,aAAa,CAAC,EAClC,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,GACd,EAAE;IACD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC,iBAsBA;AAED,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,oBAAoB,EAAE,EACrC,8BAA8B,EAAE,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtE,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,MAAM,GACpB,MAAM,EAAE,CA0GV;AAcD,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,oBAAoB,EAAE,EACrC,8BAA8B,EAAE,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtE,WAAW,EAAE,WAAW,GACvB,MAAM,EAAE,CAmCV;AAeD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAcnE;AAED,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAwBtB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAErD,eAAO,MAAM,wBAAwB,QAEpC,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,iBAAiB,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,oBAAoB,EAAE,MAAM,CAAC;QAC7B,cAAc,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;CACL;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED,qBAAa,cAAc;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;gBAEV,EACV,OAAO,EAAE,qEAAqE;IAC9E,iBAAiB,EAAE,8EAA8E;IACjG,WAAW,GACZ,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CAQF;AAED,wBAAsB,aAAa,CAAC,EAClC,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,GACd,EAAE;IACD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACnC,iBAsBA;AAED,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,oBAAoB,EAAE,EACrC,8BAA8B,EAAE,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtE,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,MAAM,GACpB,MAAM,EAAE,CA0GV;AAcD,wBAAgB,wCAAwC,CACtD,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAIT;AAED,wBAAgB,wBAAwB,CACtC,aAAa,EAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;CAAE,EAC1D,WAAW,EAAE,MAAM,GAClB,OAAO,CAOT;AAED,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,oBAAoB,EAAE,EACrC,8BAA8B,EAAE,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtE,WAAW,EAAE,WAAW,GACvB,MAAM,EAAE,CAiDV;AAeD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAcnE;AAED,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,SAAS,EAAE,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,SAAS,EAAE,CAAC,CAwBtB"}