nx 22.1.0-canary.20251110-73ecb30 → 22.1.0-canary.20251112-36b9f7a

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 (48) hide show
  1. package/package.json +11 -11
  2. package/release/changelog-renderer/index.d.ts.map +1 -1
  3. package/release/changelog-renderer/index.js +13 -8
  4. package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
  5. package/src/command-line/configure-ai-agents/configure-ai-agents.js +3 -1
  6. package/src/command-line/init/init-v2.d.ts +1 -1
  7. package/src/command-line/init/init-v2.d.ts.map +1 -1
  8. package/src/command-line/init/init-v2.js +29 -1
  9. package/src/command-line/migrate/migrate.d.ts.map +1 -1
  10. package/src/command-line/migrate/migrate.js +2 -1
  11. package/src/command-line/release/changelog/commit-utils.d.ts +14 -0
  12. package/src/command-line/release/changelog/commit-utils.d.ts.map +1 -0
  13. package/src/command-line/release/changelog/commit-utils.js +63 -0
  14. package/src/command-line/release/changelog/version-plan-filtering.d.ts +39 -0
  15. package/src/command-line/release/changelog/version-plan-filtering.d.ts.map +1 -0
  16. package/src/command-line/release/changelog/version-plan-filtering.js +151 -0
  17. package/src/command-line/release/changelog/version-plan-utils.d.ts +32 -0
  18. package/src/command-line/release/changelog/version-plan-utils.d.ts.map +1 -0
  19. package/src/command-line/release/changelog/version-plan-utils.js +92 -0
  20. package/src/command-line/release/changelog.d.ts +1 -16
  21. package/src/command-line/release/changelog.d.ts.map +1 -1
  22. package/src/command-line/release/changelog.js +127 -269
  23. package/src/command-line/release/command-object.d.ts +1 -0
  24. package/src/command-line/release/command-object.d.ts.map +1 -1
  25. package/src/command-line/release/command-object.js +6 -0
  26. package/src/command-line/release/utils/shared.d.ts.map +1 -1
  27. package/src/command-line/release/utils/shared.js +2 -2
  28. package/src/core/graph/main.js +1 -1
  29. package/src/core/graph/styles.css +2 -2
  30. package/src/native/index.d.ts +0 -10
  31. package/src/native/nx.wasi-browser.js +53 -45
  32. package/src/native/nx.wasm32-wasi.wasm +0 -0
  33. package/src/plugins/js/index.d.ts.map +1 -1
  34. package/src/plugins/js/index.js +55 -7
  35. package/src/plugins/js/lock-file/lock-file.d.ts +5 -2
  36. package/src/plugins/js/lock-file/lock-file.d.ts.map +1 -1
  37. package/src/plugins/js/lock-file/lock-file.js +8 -6
  38. package/src/plugins/js/lock-file/npm-parser.d.ts +5 -2
  39. package/src/plugins/js/lock-file/npm-parser.d.ts.map +1 -1
  40. package/src/plugins/js/lock-file/npm-parser.js +5 -8
  41. package/src/plugins/js/lock-file/pnpm-parser.d.ts +5 -2
  42. package/src/plugins/js/lock-file/pnpm-parser.d.ts.map +1 -1
  43. package/src/plugins/js/lock-file/pnpm-parser.js +5 -7
  44. package/src/plugins/js/lock-file/yarn-parser.d.ts +5 -2
  45. package/src/plugins/js/lock-file/yarn-parser.d.ts.map +1 -1
  46. package/src/plugins/js/lock-file/yarn-parser.js +5 -7
  47. package/src/tasks-runner/tasks-schedule.d.ts.map +1 -1
  48. package/src/tasks-runner/tasks-schedule.js +10 -3
@@ -31,6 +31,9 @@ const resolve_changelog_renderer_1 = require("./utils/resolve-changelog-renderer
31
31
  const resolve_nx_json_error_message_1 = require("./utils/resolve-nx-json-error-message");
32
32
  const shared_1 = require("./utils/shared");
33
33
  const version_plan_utils_1 = require("./utils/version-plan-utils");
34
+ const version_plan_utils_2 = require("./changelog/version-plan-utils");
35
+ const commit_utils_1 = require("./changelog/commit-utils");
36
+ const version_plan_filtering_1 = require("./changelog/version-plan-filtering");
34
37
  const releaseChangelogCLIHandler = (args) => (0, handle_errors_1.handleErrors)(args.verbose, () => createAPI({}, false)(args));
35
38
  exports.releaseChangelogCLIHandler = releaseChangelogCLIHandler;
36
39
  function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
@@ -96,14 +99,7 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
96
99
  process.env.NX_RELEASE_INTERNAL_SUPPRESS_FILTER_LOG !== 'true') {
97
100
  output_1.output.note(releaseGraph.filterLog);
98
101
  }
99
- const rawVersionPlans = await (0, version_plans_1.readRawVersionPlans)();
100
- await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
101
- // Validate version plans against the filter after resolution
102
- const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects);
103
- if (versionPlanValidationError) {
104
- output_1.output.error(versionPlanValidationError);
105
- process.exit(1);
106
- }
102
+ let rawVersionPlans = await (0, version_plans_1.readRawVersionPlans)();
107
103
  if (args.deleteVersionPlans === undefined) {
108
104
  // default to deleting version plans in this command instead of after versioning
109
105
  args.deleteVersionPlans = true;
@@ -138,6 +134,28 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
138
134
  const to = args.to || 'HEAD';
139
135
  const toSHA = await (0, git_1.getCommitHash)(to);
140
136
  const headSHA = to === 'HEAD' ? toSHA : await (0, git_1.getCommitHash)('HEAD');
137
+ // Resolve the from SHA once for reuse across different contexts
138
+ const fromSHA = await (0, version_plan_filtering_1.resolveWorkspaceChangelogFromSHA)({
139
+ args,
140
+ nxReleaseConfig,
141
+ useAutomaticFromRef,
142
+ });
143
+ // Filter version plans based on resolveVersionPlans option
144
+ const shouldFilterVersionPlans = args.resolveVersionPlans === 'using-from-and-to';
145
+ if (shouldFilterVersionPlans && rawVersionPlans.length > 0 && fromSHA) {
146
+ rawVersionPlans = await (0, version_plan_filtering_1.filterVersionPlansByCommitRange)(rawVersionPlans, fromSHA, toSHA, args.verbose);
147
+ if (args.verbose) {
148
+ console.log(`Using version plans committed between ${fromSHA} and ${toSHA}`);
149
+ }
150
+ }
151
+ // Set resolved version plans on groups
152
+ await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
153
+ // Validate version plans against the filter after resolution
154
+ const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects);
155
+ if (versionPlanValidationError) {
156
+ output_1.output.error(versionPlanValidationError);
157
+ process.exit(1);
158
+ }
141
159
  /**
142
160
  * Extract the preid from the workspace version and the project versions
143
161
  */
@@ -164,92 +182,16 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
164
182
  : [];
165
183
  (0, shared_1.handleDuplicateGitTags)(gitTagValues);
166
184
  const postGitTasks = [];
167
- let workspaceChangelogChanges = [];
168
- // If there are multiple release groups, we'll just skip the workspace changelog anyway.
169
- const versionPlansEnabledForWorkspaceChangelog = releaseGraph.releaseGroups[0].resolvedVersionPlans;
170
- if (versionPlansEnabledForWorkspaceChangelog) {
171
- if (releaseGraph.releaseGroups.length === 1) {
172
- const releaseGroup = releaseGraph.releaseGroups[0];
173
- if (releaseGroup.projectsRelationship === 'fixed') {
174
- const versionPlans = releaseGroup.resolvedVersionPlans;
175
- workspaceChangelogChanges = versionPlans
176
- .flatMap((vp) => {
177
- const releaseType = versionPlanSemverReleaseTypeToChangelogType(vp.groupVersionBump);
178
- let githubReferences = [];
179
- let authors = undefined;
180
- const parsedCommit = vp.commit
181
- ? (0, git_1.parseVersionPlanCommit)(vp.commit)
182
- : null;
183
- if (parsedCommit) {
184
- githubReferences = parsedCommit.references;
185
- authors = parsedCommit.authors;
186
- }
187
- const changes = !vp.triggeredByProjects
188
- ? {
189
- type: releaseType.type,
190
- scope: '',
191
- description: vp.message,
192
- body: '',
193
- isBreaking: releaseType.isBreaking,
194
- githubReferences,
195
- authors,
196
- affectedProjects: '*',
197
- }
198
- : vp.triggeredByProjects.map((project) => {
199
- return {
200
- type: releaseType.type,
201
- scope: project,
202
- description: vp.message,
203
- body: '',
204
- isBreaking: releaseType.isBreaking,
205
- githubReferences,
206
- authors,
207
- affectedProjects: [project],
208
- };
209
- });
210
- return changes;
211
- })
212
- .filter(Boolean);
213
- }
214
- }
215
- }
216
- else {
217
- let workspaceChangelogFromRef = args.from ||
218
- (await (0, git_1.getLatestGitTagForPattern)(nxReleaseConfig.releaseTag.pattern, {}, {
219
- checkAllBranchesWhen: nxReleaseConfig.releaseTag.checkAllBranchesWhen,
220
- preid: workspacePreid ??
221
- projectsPreid?.[Object.keys(projectsPreid)[0]],
222
- requireSemver: nxReleaseConfig.releaseTag.requireSemver,
223
- strictPreid: nxReleaseConfig.releaseTag.strictPreid,
224
- }))?.tag;
225
- if (!workspaceChangelogFromRef) {
226
- if (useAutomaticFromRef) {
227
- workspaceChangelogFromRef = await (0, git_1.getFirstGitCommit)();
228
- if (args.verbose) {
229
- console.log(`Determined workspace --from ref from the first commit in the workspace: ${workspaceChangelogFromRef}`);
230
- }
231
- }
232
- else {
233
- throw new Error(`Unable to determine the previous git tag. If this is the first release of your workspace, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
234
- }
235
- }
236
- // Make sure that the fromRef is actually resolvable
237
- const workspaceChangelogFromSHA = await (0, git_1.getCommitHash)(workspaceChangelogFromRef);
238
- workspaceChangelogChanges = filterHiddenChanges((await getCommits(workspaceChangelogFromSHA, toSHA)).map((c) => {
239
- return {
240
- type: c.type,
241
- scope: c.scope,
242
- description: c.description,
243
- body: c.body,
244
- isBreaking: c.isBreaking,
245
- githubReferences: c.references,
246
- authors: c.authors,
247
- shortHash: c.shortHash,
248
- revertedHashes: c.revertedHashes,
249
- affectedProjects: '*',
250
- };
251
- }), nxReleaseConfig.conventionalCommits);
252
- }
185
+ const workspaceChangelogChanges = await resolveWorkspaceChangelogChanges({
186
+ releaseGraph,
187
+ nxReleaseConfig,
188
+ args,
189
+ workspacePreid,
190
+ projectsPreid,
191
+ useAutomaticFromRef,
192
+ toSHA,
193
+ fromSHA,
194
+ });
253
195
  const workspaceChangelog = await generateChangelogForWorkspace({
254
196
  tree,
255
197
  args,
@@ -261,6 +203,32 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
261
203
  if (workspaceChangelog && workspaceChangelog.postGitTask) {
262
204
  postGitTasks.push(workspaceChangelog.postGitTask);
263
205
  }
206
+ /**
207
+ * Create a cache for from SHA resolution to avoid duplicate git operations
208
+ */
209
+ const fromSHACache = new Map();
210
+ // Cache the workspace from SHA if available
211
+ if (fromSHA) {
212
+ fromSHACache.set('workspace', fromSHA);
213
+ }
214
+ // Helper function to get cached from SHA or resolve and cache it
215
+ const getCachedFromSHA = async (cacheKey, pattern, templateValues, preid, checkAllBranchesWhen, requireSemver, strictPreid) => {
216
+ if (fromSHACache.has(cacheKey)) {
217
+ return fromSHACache.get(cacheKey);
218
+ }
219
+ const sha = await (0, version_plan_filtering_1.resolveChangelogFromSHA)({
220
+ fromRef: args.from,
221
+ tagPattern: pattern,
222
+ tagPatternValues: templateValues,
223
+ checkAllBranchesWhen,
224
+ preid,
225
+ requireSemver,
226
+ strictPreid,
227
+ useAutomaticFromRef,
228
+ });
229
+ fromSHACache.set(cacheKey, sha);
230
+ return sha;
231
+ };
264
232
  /**
265
233
  * Compute any additional dependency bumps up front because there could be cases of circular dependencies,
266
234
  * and figuring them out during the main iteration would be too late.
@@ -318,57 +286,29 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
318
286
  for (const project of projectNodes) {
319
287
  let changes = null;
320
288
  if (releaseGroup.resolvedVersionPlans) {
321
- changes = releaseGroup.resolvedVersionPlans
322
- .map((vp) => {
323
- const bumpForProject = vp.projectVersionBumps[project.name];
324
- if (!bumpForProject) {
325
- return null;
326
- }
327
- const releaseType = versionPlanSemverReleaseTypeToChangelogType(bumpForProject);
328
- let githubReferences = [];
329
- let authors = [];
330
- const parsedCommit = vp.commit
331
- ? (0, git_1.parseVersionPlanCommit)(vp.commit)
332
- : null;
333
- if (parsedCommit) {
334
- githubReferences = parsedCommit.references;
335
- authors = parsedCommit.authors;
336
- }
337
- return {
338
- type: releaseType.type,
339
- scope: project.name,
340
- description: vp.message,
341
- body: '',
342
- isBreaking: releaseType.isBreaking,
343
- affectedProjects: Object.keys(vp.projectVersionBumps),
344
- githubReferences,
345
- authors,
346
- };
347
- })
348
- .filter(Boolean);
289
+ changes = (0, version_plan_utils_2.createChangesFromProjectsVersionPlans)(releaseGroup.resolvedVersionPlans, project.name);
349
290
  }
350
291
  else {
351
- let fromRef = args.from ||
352
- (await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTag.pattern, {
353
- projectName: project.name,
354
- releaseGroupName: releaseGroup.name,
355
- }, {
356
- checkAllBranchesWhen: releaseGroup.releaseTag.checkAllBranchesWhen,
357
- preid: projectsPreid[project.name],
358
- requireSemver: releaseGroup.releaseTag.requireSemver,
359
- strictPreid: releaseGroup.releaseTag.strictPreid,
360
- }))?.tag;
292
+ const projectCacheKey = `${releaseGroup.name}:${project.name}`;
293
+ const fromSHA = await getCachedFromSHA(projectCacheKey, releaseGroup.releaseTag.pattern, {
294
+ projectName: project.name,
295
+ releaseGroupName: releaseGroup.name,
296
+ }, projectsPreid[project.name], releaseGroup.releaseTag.checkAllBranchesWhen, releaseGroup.releaseTag.requireSemver, releaseGroup.releaseTag.strictPreid);
361
297
  let commits;
298
+ let fromRef = fromSHA;
362
299
  if (!fromRef && useAutomaticFromRef) {
363
- const firstCommit = await (0, git_1.getFirstGitCommit)();
364
- commits = await filterProjectCommits({
365
- fromSHA: firstCommit,
366
- toSHA,
367
- projectPath: project.data.root,
368
- });
369
- fromRef = commits[0]?.shortHash;
370
- if (args.verbose) {
371
- console.log(`Determined --from ref for ${project.name} from the first commit in which it exists: ${fromRef}`);
300
+ // For automatic from ref, we already have it cached
301
+ fromRef = fromSHACache.get(projectCacheKey);
302
+ if (fromRef) {
303
+ commits = await filterProjectCommits({
304
+ fromSHA: fromRef,
305
+ toSHA,
306
+ projectPath: project.data.root,
307
+ });
308
+ fromRef = commits[0]?.shortHash;
309
+ if (args.verbose) {
310
+ console.log(`Determined --from ref for ${project.name} from the first commit in which it exists: ${fromRef}`);
311
+ }
372
312
  }
373
313
  }
374
314
  if (!fromRef && !commits) {
@@ -382,21 +322,8 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
382
322
  });
383
323
  }
384
324
  const { fileMap } = await (0, file_map_utils_1.createFileMapUsingProjectGraph)(projectGraph);
385
- const fileToProjectMap = createFileToProjectMap(fileMap.projectFileMap);
386
- changes = filterHiddenChanges(commits.map((c) => ({
387
- type: c.type,
388
- scope: c.scope,
389
- description: c.description,
390
- body: c.body,
391
- isBreaking: c.isBreaking,
392
- githubReferences: c.references,
393
- authors: c.authors,
394
- shortHash: c.shortHash,
395
- revertedHashes: c.revertedHashes,
396
- affectedProjects: commitChangesNonProjectFiles(c, fileMap.nonProjectFiles)
397
- ? '*'
398
- : getProjectsAffectedByCommit(c, fileToProjectMap),
399
- })), nxReleaseConfig.conventionalCommits);
325
+ const fileToProjectMap = (0, commit_utils_1.createFileToProjectMap)(fileMap.projectFileMap);
326
+ changes = (0, commit_utils_1.createChangesFromCommits)(commits, fileMap, fileToProjectMap, nxReleaseConfig.conventionalCommits);
400
327
  }
401
328
  const projectChangelogs = await generateChangelogForProjects({
402
329
  tree,
@@ -422,83 +349,22 @@ function createAPI(overrideReleaseConfig, ignoreNxJsonConfig) {
422
349
  else {
423
350
  let changes = [];
424
351
  if (releaseGroup.resolvedVersionPlans) {
425
- changes = releaseGroup.resolvedVersionPlans
426
- .flatMap((vp) => {
427
- const releaseType = versionPlanSemverReleaseTypeToChangelogType(vp.groupVersionBump);
428
- let githubReferences = [];
429
- let authors = undefined;
430
- const parsedCommit = vp.commit
431
- ? (0, git_1.parseVersionPlanCommit)(vp.commit)
432
- : null;
433
- if (parsedCommit) {
434
- githubReferences = parsedCommit.references;
435
- authors = parsedCommit.authors;
436
- }
437
- const changes = !vp.triggeredByProjects
438
- ? {
439
- type: releaseType.type,
440
- scope: '',
441
- description: vp.message,
442
- body: '',
443
- isBreaking: releaseType.isBreaking,
444
- githubReferences,
445
- authors,
446
- affectedProjects: '*',
447
- }
448
- : vp.triggeredByProjects.map((project) => {
449
- return {
450
- type: releaseType.type,
451
- scope: project,
452
- description: vp.message,
453
- body: '',
454
- isBreaking: releaseType.isBreaking,
455
- githubReferences,
456
- authors,
457
- affectedProjects: [project],
458
- };
459
- });
460
- return changes;
461
- })
462
- .filter(Boolean);
352
+ // This is identical to workspace changelog for fixed groups
353
+ changes = (0, version_plan_utils_2.createChangesFromGroupVersionPlans)(releaseGroup.resolvedVersionPlans);
463
354
  }
464
355
  else {
465
- let fromRef = args.from ||
466
- (await (0, git_1.getLatestGitTagForPattern)(releaseGroup.releaseTag.pattern, {}, {
467
- checkAllBranchesWhen: releaseGroup.releaseTag.checkAllBranchesWhen,
468
- preid: workspacePreid ??
469
- projectsPreid?.[Object.keys(projectsPreid)[0]],
470
- requireSemver: releaseGroup.releaseTag.requireSemver,
471
- strictPreid: releaseGroup.releaseTag.strictPreid,
472
- }))?.tag;
473
- if (!fromRef) {
474
- if (useAutomaticFromRef) {
475
- fromRef = await (0, git_1.getFirstGitCommit)();
476
- if (args.verbose) {
477
- console.log(`Determined release group --from ref from the first commit in the workspace: ${fromRef}`);
478
- }
479
- }
480
- else {
481
- throw new Error(`Unable to determine the previous git tag. If this is the first release of your release group, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
482
- }
356
+ const groupCacheKey = `${releaseGroup.name}:fixed`;
357
+ const fromSHA = await getCachedFromSHA(groupCacheKey, releaseGroup.releaseTag.pattern, {}, workspacePreid ?? projectsPreid?.[Object.keys(projectsPreid)[0]], releaseGroup.releaseTag.checkAllBranchesWhen, releaseGroup.releaseTag.requireSemver, releaseGroup.releaseTag.strictPreid);
358
+ if (!fromSHA) {
359
+ throw new Error(`Unable to determine the previous git tag. If this is the first release of your release group, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
360
+ }
361
+ if (args.verbose && useAutomaticFromRef && !args.from) {
362
+ console.log(`Determined release group --from ref from the first commit in the workspace: ${fromSHA}`);
483
363
  }
484
- // Make sure that the fromRef is actually resolvable
485
- const fromSHA = await (0, git_1.getCommitHash)(fromRef);
486
364
  const { fileMap } = await (0, file_map_utils_1.createFileMapUsingProjectGraph)(projectGraph);
487
- const fileToProjectMap = createFileToProjectMap(fileMap.projectFileMap);
488
- changes = filterHiddenChanges((await getCommits(fromSHA, toSHA)).map((c) => ({
489
- type: c.type,
490
- scope: c.scope,
491
- description: c.description,
492
- body: c.body,
493
- isBreaking: c.isBreaking,
494
- githubReferences: c.references,
495
- authors: c.authors,
496
- shortHash: c.shortHash,
497
- revertedHashes: c.revertedHashes,
498
- affectedProjects: commitChangesNonProjectFiles(c, fileMap.nonProjectFiles)
499
- ? '*'
500
- : getProjectsAffectedByCommit(c, fileToProjectMap),
501
- })), nxReleaseConfig.conventionalCommits);
365
+ const fileToProjectMap = (0, commit_utils_1.createFileToProjectMap)(fileMap.projectFileMap);
366
+ const commits = await getCommits(fromSHA, toSHA);
367
+ changes = (0, commit_utils_1.createChangesFromCommits)(commits, fileMap, fileToProjectMap, nxReleaseConfig.conventionalCommits);
502
368
  }
503
369
  const projectChangelogs = await generateChangelogForProjects({
504
370
  tree,
@@ -948,17 +814,6 @@ async function filterProjectCommits({ fromSHA, toSHA, projectPath, }) {
948
814
  const allCommits = await getCommits(fromSHA, toSHA);
949
815
  return allCommits.filter((c) => c.affectedFiles.find((f) => f.startsWith(projectPath)));
950
816
  }
951
- function filterHiddenChanges(changes, conventionalCommitsConfig) {
952
- return changes.filter((change) => {
953
- const type = change.type;
954
- const typeConfig = conventionalCommitsConfig.types[type];
955
- if (!typeConfig) {
956
- // don't include changes with unknown types
957
- return false;
958
- }
959
- return !typeConfig.changelog.hidden;
960
- });
961
- }
962
817
  async function promptForRemoteRelease() {
963
818
  try {
964
819
  const result = await (0, enquirer_1.prompt)([
@@ -977,40 +832,43 @@ async function promptForRemoteRelease() {
977
832
  return false;
978
833
  }
979
834
  }
980
- function getProjectsAffectedByCommit(commit, fileToProjectMap) {
981
- const affectedProjects = new Set();
982
- for (const file of commit.affectedFiles) {
983
- affectedProjects.add(fileToProjectMap[file]);
835
+ async function resolveWorkspaceChangelogChanges({ releaseGraph, nxReleaseConfig, args, workspacePreid, projectsPreid, useAutomaticFromRef, toSHA, fromSHA, }) {
836
+ // NOTE: If there are multiple release groups, we'll just skip the workspace changelog anyway.
837
+ const versionPlansEnabledForWorkspaceChangelog = releaseGraph.releaseGroups[0]?.resolvedVersionPlans;
838
+ // Derive changes from version plan files
839
+ if (versionPlansEnabledForWorkspaceChangelog) {
840
+ return resolveWorkspaceChangelogFromVersionPlans(releaseGraph);
984
841
  }
985
- return Array.from(affectedProjects);
986
- }
987
- function commitChangesNonProjectFiles(commit, nonProjectFiles) {
988
- return nonProjectFiles.some((fileData) => commit.affectedFiles.includes(fileData.file));
842
+ // Derive changes from commits
843
+ return resolveWorkspaceChangelogFromCommits({
844
+ nxReleaseConfig,
845
+ args,
846
+ workspacePreid,
847
+ projectsPreid,
848
+ useAutomaticFromRef,
849
+ toSHA,
850
+ fromSHA,
851
+ });
989
852
  }
990
- function createFileToProjectMap(projectFileMap) {
991
- const fileToProjectMap = {};
992
- for (const [projectName, projectFiles] of Object.entries(projectFileMap)) {
993
- for (const file of projectFiles) {
994
- fileToProjectMap[file.file] = projectName;
995
- }
853
+ function resolveWorkspaceChangelogFromVersionPlans(releaseGraph) {
854
+ const firstReleaseGroup = releaseGraph.releaseGroups[0];
855
+ // We only produce a workspace changelog in the case of a single, fixed relationship release group
856
+ if (releaseGraph.releaseGroups.length !== 1 ||
857
+ firstReleaseGroup?.projectsRelationship !== 'fixed') {
858
+ return [];
996
859
  }
997
- return fileToProjectMap;
860
+ const versionPlans = firstReleaseGroup.resolvedVersionPlans;
861
+ return (0, version_plan_utils_2.createChangesFromGroupVersionPlans)(versionPlans);
998
862
  }
999
- function versionPlanSemverReleaseTypeToChangelogType(bump) {
1000
- switch (bump) {
1001
- case 'premajor':
1002
- case 'major':
1003
- return { type: 'feat', isBreaking: true };
1004
- case 'preminor':
1005
- case 'minor':
1006
- return { type: 'feat', isBreaking: false };
1007
- case 'prerelease':
1008
- case 'prepatch':
1009
- case 'patch':
1010
- return { type: 'fix', isBreaking: false };
1011
- default:
1012
- throw new Error(`Invalid semver bump type: ${bump}`);
863
+ async function resolveWorkspaceChangelogFromCommits({ nxReleaseConfig, args, workspacePreid, projectsPreid, useAutomaticFromRef, toSHA, fromSHA, }) {
864
+ // Use the cached fromSHA if available, otherwise throw an error
865
+ if (!fromSHA) {
866
+ throw new Error(`Unable to determine the previous git tag. If this is the first release of your workspace, use the --first-release option or set the "release.changelog.automaticFromRef" config property in nx.json to generate a changelog from the first commit. Otherwise, be sure to configure the "release.releaseTag.pattern" property in nx.json to match the structure of your repository's git tags.`);
1013
867
  }
868
+ const workspaceChangelogFromSHA = fromSHA;
869
+ const commits = await getCommits(workspaceChangelogFromSHA, toSHA);
870
+ // For workspace changelog, all commits affect all projects
871
+ return (0, commit_utils_1.filterHiddenChanges)(commits.map((c) => (0, commit_utils_1.mapCommitToChange)(c, '*')), nxReleaseConfig.conventionalCommits);
1014
872
  }
1015
873
  function extractPreid(version) {
1016
874
  if (!(0, shared_1.isPrerelease)(version)) {
@@ -41,6 +41,7 @@ export type ChangelogOptions = NxReleaseArgs & GitOptions & VersionPlanArgs & Fi
41
41
  from?: string;
42
42
  interactive?: string;
43
43
  createRelease?: false | 'github' | 'gitlab';
44
+ resolveVersionPlans?: 'all' | 'using-from-and-to';
44
45
  replaceExistingContents?: boolean;
45
46
  releaseGraph?: ReleaseGraph;
46
47
  };
@@ -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":"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"}
@@ -162,6 +162,12 @@ const changelogCommand = {
162
162
  type: 'boolean',
163
163
  description: 'Whether to overwrite the existing changelog contents instead of prepending to them.',
164
164
  default: false,
165
+ })
166
+ .option('resolve-version-plans', {
167
+ type: 'string',
168
+ description: 'How to resolve version plans for changelog generation, defaults to resolving all version plan files available on disk.',
169
+ choices: ['all', 'using-from-and-to'],
170
+ default: 'all',
165
171
  })
166
172
  .check((argv) => {
167
173
  if (!argv.version) {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/shared.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAK7D,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,GAAG,MAAM,CAElB;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,CA6FV;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,GAEpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,CAAC,CAwC5E"}
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;AAK7D,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,GAAG,MAAM,CAElB;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,CA6FV;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,GAEpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,qBAAqB,EAAE,OAAO,CAAA;CAAE,EAAE,CAAC,CAAC,CAwC5E"}
@@ -11,10 +11,10 @@ exports.handleDuplicateGitTags = handleDuplicateGitTags;
11
11
  exports.getCommitsRelevantToProjects = getCommitsRelevantToProjects;
12
12
  const chalk = require("chalk");
13
13
  const semver_1 = require("semver");
14
- const utils_1 = require("../../../tasks-runner/utils");
15
- const output_1 = require("../../../utils/output");
16
14
  const affected_project_graph_1 = require("../../../project-graph/affected/affected-project-graph");
17
15
  const file_utils_1 = require("../../../project-graph/file-utils");
16
+ const utils_1 = require("../../../tasks-runner/utils");
17
+ const output_1 = require("../../../utils/output");
18
18
  const git_1 = require("./git");
19
19
  exports.noDiffInChangelogMessage = chalk.yellow(`NOTE: There was no diff detected for the changelog entry. Maybe you intended to pass alternative git references via --from and --to?`);
20
20
  function isPrerelease(version) {