nx 22.0.0-beta.3 → 22.0.0-beta.5

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 (85) hide show
  1. package/migrations.json +5 -0
  2. package/package.json +11 -11
  3. package/release/changelog-renderer/index.d.ts +1 -0
  4. package/release/changelog-renderer/index.d.ts.map +1 -1
  5. package/release/changelog-renderer/index.js +46 -15
  6. package/schemas/nx-schema.json +254 -86
  7. package/src/command-line/configure-ai-agents/command-object.d.ts +1 -1
  8. package/src/command-line/configure-ai-agents/command-object.d.ts.map +1 -1
  9. package/src/command-line/configure-ai-agents/command-object.js +18 -4
  10. package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
  11. package/src/command-line/configure-ai-agents/configure-ai-agents.js +58 -31
  12. package/src/command-line/migrate/migrate.d.ts.map +1 -1
  13. package/src/command-line/migrate/migrate.js +0 -4
  14. package/src/command-line/nx-cloud/login/command-object.d.ts.map +1 -1
  15. package/src/command-line/nx-cloud/login/command-object.js +2 -2
  16. package/src/command-line/nx-cloud/logout/command-object.js +1 -1
  17. package/src/command-line/nx-commands.js +1 -1
  18. package/src/command-line/release/changelog.d.ts.map +1 -1
  19. package/src/command-line/release/changelog.js +58 -47
  20. package/src/command-line/release/command-object.d.ts +7 -3
  21. package/src/command-line/release/command-object.d.ts.map +1 -1
  22. package/src/command-line/release/config/config.d.ts +6 -2
  23. package/src/command-line/release/config/config.d.ts.map +1 -1
  24. package/src/command-line/release/config/config.js +124 -61
  25. package/src/command-line/release/config/version-plans.d.ts.map +1 -1
  26. package/src/command-line/release/config/version-plans.js +4 -1
  27. package/src/command-line/release/publish.d.ts.map +1 -1
  28. package/src/command-line/release/publish.js +35 -11
  29. package/src/command-line/release/release.d.ts.map +1 -1
  30. package/src/command-line/release/release.js +31 -30
  31. package/src/command-line/release/utils/git.d.ts +2 -2
  32. package/src/command-line/release/utils/git.d.ts.map +1 -1
  33. package/src/command-line/release/utils/git.js +5 -5
  34. package/src/command-line/release/utils/release-graph.d.ts +219 -0
  35. package/src/command-line/release/utils/release-graph.d.ts.map +1 -0
  36. package/src/command-line/release/utils/release-graph.js +658 -0
  37. package/src/command-line/release/utils/semver.d.ts +1 -2
  38. package/src/command-line/release/utils/semver.d.ts.map +1 -1
  39. package/src/command-line/release/utils/semver.js +3 -5
  40. package/src/command-line/release/utils/shared.d.ts +1 -1
  41. package/src/command-line/release/utils/shared.d.ts.map +1 -1
  42. package/src/command-line/release/utils/shared.js +53 -19
  43. package/src/command-line/release/version/release-group-processor.d.ts +3 -152
  44. package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
  45. package/src/command-line/release/version/release-group-processor.js +58 -569
  46. package/src/command-line/release/version/resolve-current-version.d.ts +1 -1
  47. package/src/command-line/release/version/resolve-current-version.d.ts.map +1 -1
  48. package/src/command-line/release/version/resolve-current-version.js +1 -1
  49. package/src/command-line/release/version/test-utils.d.ts +13 -4
  50. package/src/command-line/release/version/test-utils.d.ts.map +1 -1
  51. package/src/command-line/release/version/test-utils.js +26 -11
  52. package/src/command-line/release/version/version-actions.d.ts +12 -5
  53. package/src/command-line/release/version/version-actions.d.ts.map +1 -1
  54. package/src/command-line/release/version/version-actions.js +36 -19
  55. package/src/command-line/release/version.d.ts +6 -1
  56. package/src/command-line/release/version.d.ts.map +1 -1
  57. package/src/command-line/release/version.js +57 -28
  58. package/src/config/nx-json.d.ts +139 -58
  59. package/src/config/nx-json.d.ts.map +1 -1
  60. package/src/config/nx-json.js +8 -8
  61. package/src/core/graph/main.js +1 -1
  62. package/src/daemon/client/client.d.ts +4 -0
  63. package/src/daemon/client/client.d.ts.map +1 -1
  64. package/src/daemon/client/client.js +23 -0
  65. package/src/daemon/message-types/register-project-graph-listener.d.ts +6 -0
  66. package/src/daemon/message-types/register-project-graph-listener.d.ts.map +1 -0
  67. package/src/daemon/message-types/register-project-graph-listener.js +11 -0
  68. package/src/daemon/server/project-graph-incremental-recomputation.d.ts +3 -1
  69. package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
  70. package/src/daemon/server/project-graph-incremental-recomputation.js +13 -5
  71. package/src/daemon/server/project-graph-listener-sockets.d.ts +8 -0
  72. package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -0
  73. package/src/daemon/server/project-graph-listener-sockets.js +24 -0
  74. package/src/daemon/server/server.d.ts.map +1 -1
  75. package/src/daemon/server/server.js +9 -2
  76. package/src/migrations/update-22-0-0/consolidate-release-tag-config.d.ts +3 -0
  77. package/src/migrations/update-22-0-0/consolidate-release-tag-config.d.ts.map +1 -0
  78. package/src/migrations/update-22-0-0/consolidate-release-tag-config.js +100 -0
  79. package/src/native/nx.wasm32-wasi.wasm +0 -0
  80. package/src/tasks-runner/is-tui-enabled.d.ts.map +1 -1
  81. package/src/tasks-runner/is-tui-enabled.js +0 -1
  82. package/src/tasks-runner/run-command.d.ts.map +1 -1
  83. package/src/tasks-runner/run-command.js +5 -2
  84. package/src/utils/package-manager.d.ts.map +1 -1
  85. package/src/utils/package-manager.js +1 -3
@@ -193,7 +193,7 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
193
193
  preserveLocalDependencyProtocols: userConfig.version?.preserveLocalDependencyProtocols ?? true,
194
194
  preserveMatchingDependencyRanges: userConfig.version?.preserveMatchingDependencyRanges ?? true,
195
195
  logUnchangedProjects: userConfig.version?.logUnchangedProjects ?? true,
196
- updateDependents: userConfig.version?.updateDependents ?? 'auto',
196
+ updateDependents: userConfig.version?.updateDependents ?? 'always',
197
197
  },
198
198
  changelog: {
199
199
  git: changelogGitDefaults,
@@ -228,24 +228,36 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
228
228
  : false,
229
229
  automaticFromRef: false,
230
230
  },
231
- releaseTagPattern: userConfig.releaseTagPattern ||
232
- // The appropriate default releaseTagPattern is dependent upon the projectRelationships
233
- (workspaceProjectsRelationship === 'independent'
234
- ? defaultIndependentReleaseTagPattern
235
- : defaultFixedReleaseTagPattern),
236
- releaseTagPatternCheckAllBranchesWhen: userConfig.releaseTagPatternCheckAllBranchesWhen ?? undefined,
237
- releaseTagPatternRequireSemver: userConfig.releaseTagPatternRequireSemver ??
238
- defaultReleaseTagPatternRequireSemver,
239
- releaseTagPatternStrictPreid: userConfig.releaseTagPatternStrictPreid ??
240
- defaultReleaseTagPatternStrictPreid,
231
+ releaseTag: {
232
+ pattern: userConfig.releaseTag?.pattern ||
233
+ userConfig.releaseTagPattern ||
234
+ // The appropriate default pattern is dependent upon the projectRelationships
235
+ (workspaceProjectsRelationship === 'independent'
236
+ ? defaultIndependentReleaseTagPattern
237
+ : defaultFixedReleaseTagPattern),
238
+ checkAllBranchesWhen: userConfig.releaseTag?.checkAllBranchesWhen ??
239
+ userConfig.releaseTagPatternCheckAllBranchesWhen ??
240
+ undefined,
241
+ requireSemver: userConfig.releaseTag?.requireSemver ??
242
+ userConfig.releaseTagPatternRequireSemver ??
243
+ defaultReleaseTagPatternRequireSemver,
244
+ preferDockerVersion: userConfig.releaseTag?.preferDockerVersion ??
245
+ userConfig.releaseTagPatternPreferDockerVersion ??
246
+ false,
247
+ strictPreid: userConfig.releaseTag?.strictPreid ??
248
+ userConfig.releaseTagPatternStrictPreid ??
249
+ defaultReleaseTagPatternStrictPreid,
250
+ },
241
251
  conventionalCommits: conventional_commits_1.DEFAULT_CONVENTIONAL_COMMITS_CONFIG,
242
252
  versionPlans: (userConfig.versionPlans ||
243
253
  false),
244
254
  };
245
255
  const groupProjectsRelationship = userConfig.projectsRelationship || WORKSPACE_DEFAULTS.projectsRelationship;
246
- const groupReleaseTagPatternRequireSemver = userConfig.releaseTagPatternRequireSemver ??
247
- WORKSPACE_DEFAULTS.releaseTagPatternRequireSemver;
248
- const groupReleaseTagPatternStrictPreid = userConfig.releaseTagPatternStrictPreid ??
256
+ const groupReleaseTagRequireSemver = userConfig.releaseTag?.requireSemver ??
257
+ userConfig.releaseTagPatternRequireSemver ??
258
+ WORKSPACE_DEFAULTS.releaseTag.requireSemver;
259
+ const groupReleaseTagStrictPreid = userConfig.releaseTag?.strictPreid ??
260
+ userConfig.releaseTagPatternStrictPreid ??
249
261
  defaultReleaseTagPatternStrictPreid;
250
262
  const groupDocker = normalizeDockerConfig(userConfig.docker ?? WORKSPACE_DEFAULTS.docker);
251
263
  const GROUP_DEFAULTS = {
@@ -275,18 +287,23 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
275
287
  versionTitleDate: true,
276
288
  },
277
289
  },
278
- releaseTagPattern:
279
- // The appropriate group default releaseTagPattern is dependent upon the projectRelationships
280
- groupProjectsRelationship === 'independent'
281
- ? // If the default pattern contains {projectName} then it will create unique release tags for each project.
282
- // Otherwise, use the default value to guarantee unique tags
283
- WORKSPACE_DEFAULTS.releaseTagPattern?.includes('{projectName}')
284
- ? WORKSPACE_DEFAULTS.releaseTagPattern
285
- : defaultIndependentReleaseTagPattern
286
- : WORKSPACE_DEFAULTS.releaseTagPattern,
287
- releaseTagPatternCheckAllBranchesWhen: userConfig.releaseTagPatternCheckAllBranchesWhen ?? undefined,
288
- releaseTagPatternRequireSemver: groupReleaseTagPatternRequireSemver,
289
- releaseTagPatternStrictPreid: groupReleaseTagPatternStrictPreid,
290
+ releaseTag: {
291
+ pattern:
292
+ // The appropriate group default pattern is dependent upon the projectRelationships
293
+ groupProjectsRelationship === 'independent'
294
+ ? // If the default pattern contains {projectName} then it will create unique release tags for each project.
295
+ // Otherwise, use the default value to guarantee unique tags
296
+ WORKSPACE_DEFAULTS.releaseTag.pattern?.includes('{projectName}')
297
+ ? WORKSPACE_DEFAULTS.releaseTag.pattern
298
+ : defaultIndependentReleaseTagPattern
299
+ : WORKSPACE_DEFAULTS.releaseTag.pattern,
300
+ checkAllBranchesWhen: userConfig.releaseTag?.checkAllBranchesWhen ??
301
+ userConfig.releaseTagPatternCheckAllBranchesWhen ??
302
+ undefined,
303
+ requireSemver: groupReleaseTagRequireSemver,
304
+ preferDockerVersion: false,
305
+ strictPreid: groupReleaseTagStrictPreid,
306
+ },
290
307
  versionPlans: false,
291
308
  };
292
309
  /**
@@ -372,10 +389,24 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
372
389
  * be the valid source of truth for that type of config.
373
390
  */
374
391
  version: deepMergeDefaults([GROUP_DEFAULTS.version], rootVersionWithoutGlobalOptions),
375
- // If the user has set something custom for releaseTagPattern at the top level, respect it for the implicit default group
376
- releaseTagPattern: userConfig.releaseTagPattern || GROUP_DEFAULTS.releaseTagPattern,
377
- releaseTagPatternRequireSemver: userConfig.releaseTagPatternRequireSemver ??
378
- GROUP_DEFAULTS.releaseTagPatternRequireSemver,
392
+ // If the user has set something custom for releaseTag at the top level, respect it for the implicit default group
393
+ releaseTag: {
394
+ pattern: userConfig.releaseTag?.pattern ||
395
+ userConfig.releaseTagPattern ||
396
+ GROUP_DEFAULTS.releaseTag.pattern,
397
+ checkAllBranchesWhen: userConfig.releaseTag?.checkAllBranchesWhen ??
398
+ userConfig.releaseTagPatternCheckAllBranchesWhen ??
399
+ GROUP_DEFAULTS.releaseTag.checkAllBranchesWhen,
400
+ requireSemver: userConfig.releaseTag?.requireSemver ??
401
+ userConfig.releaseTagPatternRequireSemver ??
402
+ GROUP_DEFAULTS.releaseTag.requireSemver,
403
+ preferDockerVersion: userConfig.releaseTag?.preferDockerVersion ??
404
+ userConfig.releaseTagPatternPreferDockerVersion ??
405
+ GROUP_DEFAULTS.releaseTag.preferDockerVersion,
406
+ strictPreid: userConfig.releaseTag?.strictPreid ??
407
+ userConfig.releaseTagPatternStrictPreid ??
408
+ GROUP_DEFAULTS.releaseTag.strictPreid,
409
+ },
379
410
  // Directly inherit the root level config for projectChangelogs, if set
380
411
  changelog: rootChangelogConfig.projectChangelogs || false,
381
412
  versionPlans: rootVersionPlansConfig || GROUP_DEFAULTS.versionPlans,
@@ -402,8 +433,9 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
402
433
  };
403
434
  }
404
435
  // If provided, ensure release tag pattern is valid
405
- if (releaseGroup.releaseTagPattern) {
406
- const error = ensureReleaseGroupReleaseTagPatternIsValid(releaseGroup.releaseTagPattern, releaseGroupName);
436
+ const releaseTagPattern = releaseGroup.releaseTag?.pattern || releaseGroup.releaseTagPattern;
437
+ if (releaseTagPattern) {
438
+ const error = ensureReleaseGroupReleaseTagPatternIsValid(releaseTagPattern, releaseGroupName);
407
439
  if (error) {
408
440
  return {
409
441
  error,
@@ -412,12 +444,19 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
412
444
  }
413
445
  }
414
446
  else {
415
- releaseGroup.releaseTagPattern =
416
- releaseGroup.projectsRelationship === 'independent'
417
- ? WORKSPACE_DEFAULTS.releaseTagPattern?.includes('{projectName}')
418
- ? WORKSPACE_DEFAULTS.releaseTagPattern
419
- : defaultIndependentReleaseTagPattern
420
- : userConfig?.releaseTagPattern ?? defaultFixedGroupReleaseTagPattern;
447
+ // Set default pattern if not provided
448
+ const defaultPattern = releaseGroup.projectsRelationship === 'independent'
449
+ ? WORKSPACE_DEFAULTS.releaseTag.pattern?.includes('{projectName}')
450
+ ? WORKSPACE_DEFAULTS.releaseTag.pattern
451
+ : defaultIndependentReleaseTagPattern
452
+ : userConfig?.releaseTag?.pattern ??
453
+ userConfig?.releaseTagPattern ??
454
+ defaultFixedGroupReleaseTagPattern;
455
+ // Initialize releaseTag object if it doesn't exist
456
+ if (!releaseGroup.releaseTag) {
457
+ releaseGroup.releaseTag = {};
458
+ }
459
+ releaseGroup.releaseTag.pattern = defaultPattern;
421
460
  }
422
461
  for (const project of matchingProjects) {
423
462
  if (alreadyMatchedProjects.has(project)) {
@@ -468,24 +507,40 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
468
507
  changelog: releaseGroup.changelog || rootChangelogConfig.projectChangelogs
469
508
  ? deepMergeDefaults(groupChangelogDefaults, releaseGroup.changelog || {})
470
509
  : false,
471
- releaseTagPattern: releaseGroup.releaseTagPattern ||
472
- // The appropriate group default releaseTagPattern is dependent upon the projectRelationships
473
- (projectsRelationship === 'independent'
474
- ? // If the default pattern contains {projectName} then it will create unique release tags for each project.
475
- // Otherwise, use the default value to guarantee unique tags
476
- userConfig.releaseTagPattern?.includes('{projectName}')
477
- ? userConfig.releaseTagPattern
478
- : defaultIndependentReleaseTagPattern
479
- : userConfig.releaseTagPattern || defaultFixedReleaseTagPattern),
480
- releaseTagPatternCheckAllBranchesWhen: releaseGroup.releaseTagPatternCheckAllBranchesWhen ??
481
- userConfig.releaseTagPatternCheckAllBranchesWhen ??
482
- undefined,
483
- releaseTagPatternRequireSemver: releaseGroup.releaseTagPatternRequireSemver ??
484
- userConfig.releaseTagPatternRequireSemver ??
485
- defaultReleaseTagPatternRequireSemver,
486
- releaseTagPatternStrictPreid: releaseGroup.releaseTagPatternStrictPreid ??
487
- userConfig.releaseTagPatternStrictPreid ??
488
- defaultReleaseTagPatternStrictPreid,
510
+ releaseTag: {
511
+ pattern: releaseGroup.releaseTag?.pattern ||
512
+ releaseGroup.releaseTagPattern ||
513
+ // The appropriate group default pattern is dependent upon the projectRelationships
514
+ (projectsRelationship === 'independent'
515
+ ? // If the default pattern contains {projectName} then it will create unique release tags for each project.
516
+ // Otherwise, use the default value to guarantee unique tags
517
+ (userConfig.releaseTag?.pattern || userConfig.releaseTagPattern)?.includes('{projectName}')
518
+ ? userConfig.releaseTag?.pattern || userConfig.releaseTagPattern
519
+ : defaultIndependentReleaseTagPattern
520
+ : userConfig.releaseTag?.pattern ||
521
+ userConfig.releaseTagPattern ||
522
+ defaultFixedReleaseTagPattern),
523
+ checkAllBranchesWhen: releaseGroup.releaseTag?.checkAllBranchesWhen ??
524
+ releaseGroup.releaseTagPatternCheckAllBranchesWhen ??
525
+ userConfig.releaseTag?.checkAllBranchesWhen ??
526
+ userConfig.releaseTagPatternCheckAllBranchesWhen ??
527
+ undefined,
528
+ requireSemver: releaseGroup.releaseTag?.requireSemver ??
529
+ releaseGroup.releaseTagPatternRequireSemver ??
530
+ userConfig.releaseTag?.requireSemver ??
531
+ userConfig.releaseTagPatternRequireSemver ??
532
+ defaultReleaseTagPatternRequireSemver,
533
+ preferDockerVersion: releaseGroup.releaseTag?.preferDockerVersion ??
534
+ releaseGroup.releaseTagPatternPreferDockerVersion ??
535
+ userConfig.releaseTag?.preferDockerVersion ??
536
+ userConfig.releaseTagPatternPreferDockerVersion ??
537
+ false,
538
+ strictPreid: releaseGroup.releaseTag?.strictPreid ??
539
+ releaseGroup.releaseTagPatternStrictPreid ??
540
+ userConfig.releaseTag?.strictPreid ??
541
+ userConfig.releaseTagPatternStrictPreid ??
542
+ defaultReleaseTagPatternStrictPreid,
543
+ },
489
544
  versionPlans: releaseGroup.versionPlans ?? rootVersionPlansConfig,
490
545
  };
491
546
  const finalReleaseGroup = deepMergeDefaults([groupDefaults], {
@@ -532,7 +587,18 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
532
587
  });
533
588
  if (hasDockerProjects) {
534
589
  // If any project in the group has docker configuration, disable semver requirement
535
- releaseGroup.releaseTagPatternRequireSemver = false;
590
+ releaseGroup.releaseTag.requireSemver = false;
591
+ // Set preferDockerVersion to true by default when docker projects exist,
592
+ // unless user has explicitly configured it
593
+ if (releaseGroup.releaseTag.preferDockerVersion === false &&
594
+ userConfig.groups?.[releaseGroupName]?.releaseTag
595
+ ?.preferDockerVersion === undefined &&
596
+ userConfig.groups?.[releaseGroupName]
597
+ ?.releaseTagPatternPreferDockerVersion === undefined &&
598
+ userConfig.releaseTag?.preferDockerVersion === undefined &&
599
+ userConfig.releaseTagPatternPreferDockerVersion === undefined) {
600
+ releaseGroup.releaseTag.preferDockerVersion = true;
601
+ }
536
602
  }
537
603
  }
538
604
  const configError = validateChangelogConfig(releaseGroups, rootChangelogConfig);
@@ -550,10 +616,7 @@ async function createNxReleaseConfig(projectGraph, projectFileMap, userConfig =
550
616
  ...(WORKSPACE_DEFAULTS.docker
551
617
  ? { docker: WORKSPACE_DEFAULTS.docker }
552
618
  : {}),
553
- releaseTagPattern: WORKSPACE_DEFAULTS.releaseTagPattern,
554
- releaseTagPatternCheckAllBranchesWhen: WORKSPACE_DEFAULTS.releaseTagPatternCheckAllBranchesWhen,
555
- releaseTagPatternRequireSemver: WORKSPACE_DEFAULTS.releaseTagPatternRequireSemver,
556
- releaseTagPatternStrictPreid: WORKSPACE_DEFAULTS.releaseTagPatternStrictPreid,
619
+ releaseTag: WORKSPACE_DEFAULTS.releaseTag,
557
620
  git: rootGitConfig,
558
621
  docker: rootDockerConfig,
559
622
  version: rootVersionConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"version-plans.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/version-plans.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,gBAAgB,EAAE,WAAW,CAAC;IAC9B;;;;OAIG;IACH,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAClD;AAID,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CA0BrE;AAED,wBAAsB,+BAA+B,CACnD,eAAe,EAAE,cAAc,EAAE,EACjC,aAAa,EAAE,oBAAoB,EAAE,EACrC,0BAA0B,EAAE,MAAM,EAAE,EACpC,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAqNjC;AASD,wBAAgB,2BAA2B,WAE1C"}
1
+ {"version":3,"file":"version-plans.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/config/version-plans.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,gBAAgB,EAAE,WAAW,CAAC;IAC9B;;;;OAIG;IACH,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAClD;AAID,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CA0BrE;AAED,wBAAsB,+BAA+B,CACnD,eAAe,EAAE,cAAc,EAAE,EACjC,aAAa,EAAE,oBAAoB,EAAE,EACrC,0BAA0B,EAAE,MAAM,EAAE,EACpC,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAwNjC;AASD,wBAAgB,2BAA2B,WAE1C"}
@@ -149,7 +149,10 @@ async function setResolvedVersionPlansOnGroups(rawVersionPlans, releaseGroups, a
149
149
  }
150
150
  }
151
151
  else {
152
- existingPlan.triggeredByProjects.push(key);
152
+ // Avoid duplicates when releaseGraph is reused and version plans are resolved multiple times
153
+ if (!existingPlan.triggeredByProjects.includes(key)) {
154
+ existingPlan.triggeredByProjects.push(key);
155
+ }
153
156
  }
154
157
  }
155
158
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAEvB,MAAM,sBAAsB,CAAC;AAsB9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD,MAAM,WAAW,qBAAqB;IACpC,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,cAAc,oBAWzD,CAAC;AAEL,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAOnE,MAAM,cAAc,KACnB,OAAO,CAAC,qBAAqB,CAAC,CAkHlC"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../../../../../packages/nx/src/command-line/release/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,EAEvB,MAAM,sBAAsB,CAAC;AAuB9B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASlD,MAAM,WAAW,qBAAqB;IACpC,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,eAAO,MAAM,wBAAwB,GAAI,MAAM,cAAc,oBAWzD,CAAC;AAEL,wBAAgB,SAAS,CAAC,qBAAqB,EAAE,sBAAsB,IAOnE,MAAM,cAAc,KACnB,OAAO,CAAC,qBAAqB,CAAC,CAuIlC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.releasePublishCLIHandler = void 0;
4
4
  exports.createAPI = createAPI;
5
5
  const nx_json_1 = require("../../config/nx-json");
6
+ const tree_1 = require("../../generators/tree");
6
7
  const native_1 = require("../../native");
7
8
  const file_map_utils_1 = require("../../project-graph/file-map-utils");
8
9
  const tasks_execution_hooks_1 = require("../../project-graph/plugins/tasks-execution-hooks");
@@ -16,8 +17,8 @@ const workspace_root_1 = require("../../utils/workspace-root");
16
17
  const graph_1 = require("../graph/graph");
17
18
  const config_1 = require("./config/config");
18
19
  const deep_merge_json_1 = require("./config/deep-merge-json");
19
- const filter_release_groups_1 = require("./config/filter-release-groups");
20
20
  const print_config_1 = require("./utils/print-config");
21
+ const release_graph_1 = require("./utils/release-graph");
21
22
  const releasePublishCLIHandler = (args) => (0, handle_errors_1.handleErrors)(args.verbose, async () => {
22
23
  const publishProjectsResult = await createAPI({})(args);
23
24
  // If all projects are published successfully, return 0, otherwise return 1
@@ -57,14 +58,26 @@ function createAPI(overrideReleaseConfig) {
57
58
  isDebug: args.printConfig === 'debug',
58
59
  });
59
60
  }
60
- const { error: filterError, filterLog, releaseGroups, releaseGroupToFilteredProjects, } = (0, filter_release_groups_1.filterReleaseGroups)(projectGraph, nxReleaseConfig, _args.projects, _args.groups);
61
- if (filterError) {
62
- output_1.output.error(filterError);
63
- process.exit(1);
64
- }
65
- if (filterLog &&
61
+ // Use pre-built release graph if provided, otherwise create a new one
62
+ const releaseGraph = args.releaseGraph ||
63
+ (await (0, release_graph_1.createReleaseGraph)({
64
+ // Only build the tree if no existing graph, it's only needed for this
65
+ tree: new tree_1.FsTree(workspace_root_1.workspaceRoot, args.verbose),
66
+ projectGraph,
67
+ nxReleaseConfig,
68
+ filters: {
69
+ projects: _args.projects,
70
+ groups: _args.groups,
71
+ },
72
+ firstRelease: args.firstRelease,
73
+ verbose: args.verbose,
74
+ // Publish doesn't need to resolve current versions during graph construction
75
+ skipVersionResolution: true,
76
+ }));
77
+ // Display filter log if filters were applied
78
+ if (releaseGraph.filterLog &&
66
79
  process.env.NX_RELEASE_INTERNAL_SUPPRESS_FILTER_LOG !== 'true') {
67
- output_1.output.note(filterLog);
80
+ output_1.output.note(releaseGraph.filterLog);
68
81
  }
69
82
  /**
70
83
  * If the user is filtering to a subset of projects or groups, we should not run the publish task
@@ -77,9 +90,15 @@ function createAPI(overrideReleaseConfig) {
77
90
  if (args.projects?.length) {
78
91
  /**
79
92
  * Run publishing for all remaining release groups and filtered projects within them
93
+ * in topological order
80
94
  */
81
- for (const releaseGroup of releaseGroups) {
82
- const publishProjectsResult = await runPublishOnProjects(_args, projectGraph, nxJson, Array.from(releaseGroupToFilteredProjects.get(releaseGroup)), {
95
+ for (const releaseGroupName of releaseGraph.sortedReleaseGroups) {
96
+ const releaseGroup = releaseGraph.releaseGroups.find((g) => g.name === releaseGroupName);
97
+ if (!releaseGroup) {
98
+ // Release group was filtered out, skip
99
+ continue;
100
+ }
101
+ const publishProjectsResult = await runPublishOnProjects(_args, projectGraph, nxJson, Array.from(releaseGraph.releaseGroupToFilteredProjects.get(releaseGroup)), {
83
102
  excludeTaskDependencies: shouldExcludeTaskDependencies,
84
103
  loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
85
104
  });
@@ -93,7 +112,12 @@ function createAPI(overrideReleaseConfig) {
93
112
  /**
94
113
  * Run publishing for all remaining release groups
95
114
  */
96
- for (const releaseGroup of releaseGroups) {
115
+ for (const releaseGroupName of releaseGraph.sortedReleaseGroups) {
116
+ const releaseGroup = releaseGraph.releaseGroups.find((g) => g.name === releaseGroupName);
117
+ if (!releaseGroup) {
118
+ // Release group was filtered out, skip
119
+ continue;
120
+ }
97
121
  const publishProjectsResult = await runPublishOnProjects(_args, projectGraph, nxJson, releaseGroup.projects, {
98
122
  excludeTaskDependencies: shouldExcludeTaskDependencies,
99
123
  loadDotEnvFiles: process.env.NX_LOAD_DOT_ENV_FILES !== 'false',
@@ -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;AA4BlE,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,CA4W5C"}
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;AA2BlE,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,CA4W5C"}
@@ -12,7 +12,6 @@ const output_1 = require("../../utils/output");
12
12
  const changelog_1 = require("./changelog");
13
13
  const config_1 = require("./config/config");
14
14
  const deep_merge_json_1 = require("./config/deep-merge-json");
15
- const filter_release_groups_1 = require("./config/filter-release-groups");
16
15
  const version_plans_1 = require("./config/version-plans");
17
16
  const publish_1 = require("./publish");
18
17
  const git_1 = require("./utils/git");
@@ -58,16 +57,6 @@ function createAPI(overrideReleaseConfig) {
58
57
  isDebug: args.printConfig === 'debug',
59
58
  });
60
59
  }
61
- const { error: filterError, filterLog, releaseGroups, releaseGroupToFilteredProjects, } = (0, filter_release_groups_1.filterReleaseGroups)(projectGraph, nxReleaseConfig, args.projects, args.groups);
62
- if (filterError) {
63
- output_1.output.error(filterError);
64
- process.exit(1);
65
- }
66
- if (filterLog) {
67
- output_1.output.note(filterLog);
68
- }
69
- // Do not repeat the filter log in the release subcommands
70
- process.env.NX_RELEASE_INTERNAL_SUPPRESS_FILTER_LOG = 'true';
71
60
  const rawVersionPlans = await (0, version_plans_1.readRawVersionPlans)();
72
61
  if (args.specifier && rawVersionPlans.length > 0) {
73
62
  output_1.output.error({
@@ -84,21 +73,21 @@ function createAPI(overrideReleaseConfig) {
84
73
  const shouldStage = (shouldCommit || userProvidedReleaseConfig.git?.stageChanges) ?? false;
85
74
  const shouldTag = userProvidedReleaseConfig.git?.tag ?? true;
86
75
  const shouldCreateWorkspaceRemoteRelease = shouldCreateRemoteRelease(nxReleaseConfig.changelog.workspaceChangelog);
87
- // If the workspace or any of the release groups specify that a remote release should be created, we need to push the changes to the remote
88
- const shouldPush = (shouldCreateWorkspaceRemoteRelease ||
89
- releaseGroups.some((group) => shouldCreateRemoteRelease(group.changelog))) ??
90
- false;
91
- const versionResult = await releaseVersion({
76
+ const { workspaceVersion, projectsVersionData, releaseGraph, } = await releaseVersion({
92
77
  ...args,
93
78
  stageChanges: shouldStage,
94
79
  gitCommit: false,
95
80
  gitTag: false,
96
81
  deleteVersionPlans: false,
97
82
  });
83
+ // Suppress the filter log for the changelog command as it would have already been printed by the version command
84
+ process.env.NX_RELEASE_INTERNAL_SUPPRESS_FILTER_LOG = 'true';
98
85
  const changelogResult = await releaseChangelog({
99
86
  ...args,
100
- versionData: versionResult.projectsVersionData,
101
- version: versionResult.workspaceVersion,
87
+ // Re-use existing release graph
88
+ releaseGraph,
89
+ versionData: projectsVersionData,
90
+ version: workspaceVersion,
102
91
  stageChanges: shouldStage,
103
92
  gitCommit: false,
104
93
  gitTag: false,
@@ -106,16 +95,16 @@ function createAPI(overrideReleaseConfig) {
106
95
  createRelease: false,
107
96
  deleteVersionPlans: false,
108
97
  });
109
- await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
98
+ await (0, version_plans_1.setResolvedVersionPlansOnGroups)(rawVersionPlans, releaseGraph.releaseGroups, Object.keys(projectGraph.nodes), args.verbose);
110
99
  // Validate version plans against the filter after resolution
111
- const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGroups, releaseGroupToFilteredProjects);
100
+ const versionPlanValidationError = (0, version_plan_utils_1.validateResolvedVersionPlansAgainstFilter)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects);
112
101
  if (versionPlanValidationError) {
113
102
  output_1.output.error(versionPlanValidationError);
114
103
  process.exit(1);
115
104
  }
116
105
  const planFiles = new Set();
117
- releaseGroups.forEach((group) => {
118
- const filteredProjects = releaseGroupToFilteredProjects.get(group);
106
+ releaseGraph.releaseGroups.forEach((group) => {
107
+ const filteredProjects = releaseGraph.releaseGroupToFilteredProjects.get(group);
119
108
  if (group.resolvedVersionPlans) {
120
109
  // Check each version plan individually to see if it should be deleted
121
110
  const plansToDelete = [];
@@ -162,7 +151,7 @@ function createAPI(overrideReleaseConfig) {
162
151
  if (shouldCommit) {
163
152
  output_1.output.logSingleLine(`Committing changes with git`);
164
153
  const commitMessage = nxReleaseConfig.git.commitMessage;
165
- const commitMessageValues = (0, shared_1.createCommitMessageValues)(releaseGroups, releaseGroupToFilteredProjects, versionResult.projectsVersionData, commitMessage);
154
+ const commitMessageValues = (0, shared_1.createCommitMessageValues)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects, projectsVersionData, commitMessage);
166
155
  await (0, git_1.gitCommit)({
167
156
  messages: commitMessageValues,
168
157
  additionalArgs: nxReleaseConfig.git.commitArgs,
@@ -173,7 +162,7 @@ function createAPI(overrideReleaseConfig) {
173
162
  if (shouldTag) {
174
163
  output_1.output.logSingleLine(`Tagging commit with git`);
175
164
  // Resolve any git tags as early as possible so that we can hard error in case of any duplicates before reaching the actual git command
176
- const gitTagValues = (0, shared_1.createGitTagValues)(releaseGroups, releaseGroupToFilteredProjects, versionResult.projectsVersionData);
165
+ const gitTagValues = (0, shared_1.createGitTagValues)(releaseGraph.releaseGroups, releaseGraph.releaseGroupToFilteredProjects, projectsVersionData);
177
166
  (0, shared_1.handleDuplicateGitTags)(gitTagValues);
178
167
  for (const tag of gitTagValues) {
179
168
  await (0, git_1.gitTag)({
@@ -186,6 +175,10 @@ function createAPI(overrideReleaseConfig) {
186
175
  }
187
176
  }
188
177
  let hasPushedChanges = false;
178
+ // If the workspace or any of the release groups specify that a remote release should be created, we need to push the changes to the remote
179
+ const shouldPush = (shouldCreateWorkspaceRemoteRelease ||
180
+ releaseGraph.releaseGroups.some((group) => shouldCreateRemoteRelease(group.changelog))) ??
181
+ false;
189
182
  if (shouldPush) {
190
183
  output_1.output.logSingleLine(`Pushing to git remote "origin"`);
191
184
  await (0, git_1.gitPush)({
@@ -209,7 +202,11 @@ function createAPI(overrideReleaseConfig) {
209
202
  latestCommit = await (0, git_1.getCommitHash)('HEAD');
210
203
  await remoteReleaseClient.createOrUpdateRelease(changelogResult.workspaceChangelog.releaseVersion, changelogResult.workspaceChangelog.contents, latestCommit, { dryRun: args.dryRun });
211
204
  }
212
- for (const releaseGroup of releaseGroups) {
205
+ for (const releaseGroupName of releaseGraph.sortedReleaseGroups) {
206
+ const releaseGroup = releaseGraph.releaseGroups.find((g) => g.name === releaseGroupName);
207
+ if (!releaseGroup) {
208
+ continue;
209
+ }
213
210
  const shouldCreateProjectRemoteReleases = shouldCreateRemoteRelease(releaseGroup.changelog);
214
211
  if (shouldCreateProjectRemoteReleases &&
215
212
  changelogResult.projectChangelogs) {
@@ -219,7 +216,7 @@ function createAPI(overrideReleaseConfig) {
219
216
  .createRelease);
220
217
  const projects = args.projects?.length
221
218
  ? // If the user has passed a list of projects, we need to use the filtered list of projects within the release group
222
- Array.from(releaseGroupToFilteredProjects.get(releaseGroup))
219
+ Array.from(releaseGraph.releaseGroupToFilteredProjects.get(releaseGroup))
223
220
  : // Otherwise, we use the full list of projects within the release group
224
221
  releaseGroup.projects;
225
222
  const projectNodes = projects.map((name) => projectGraph.nodes[name]);
@@ -241,8 +238,8 @@ function createAPI(overrideReleaseConfig) {
241
238
  }
242
239
  let hasNewVersion = false;
243
240
  // null means that all projects are versioned together but there were no changes
244
- if (versionResult.workspaceVersion !== null) {
245
- hasNewVersion = Object.values(versionResult.projectsVersionData).some((version) =>
241
+ if (workspaceVersion !== null) {
242
+ hasNewVersion = Object.values(projectsVersionData).some((version) =>
246
243
  /**
247
244
  * There is a scenario where applications will not have a newVersion created by VerisonActions,
248
245
  * however, there will still be a dockerVersion created from the docker release.
@@ -257,7 +254,7 @@ function createAPI(overrideReleaseConfig) {
257
254
  if (shouldPublish) {
258
255
  const publishResults = await releasePublish({
259
256
  ...args,
260
- versionData: versionResult.projectsVersionData,
257
+ versionData: projectsVersionData,
261
258
  });
262
259
  const allExitOk = Object.values(publishResults).every((result) => result.code === 0);
263
260
  if (!allExitOk) {
@@ -268,7 +265,11 @@ function createAPI(overrideReleaseConfig) {
268
265
  else {
269
266
  output_1.output.logSingleLine('Skipped publishing packages.');
270
267
  }
271
- return versionResult;
268
+ return {
269
+ workspaceVersion,
270
+ projectsVersionData,
271
+ releaseGraph,
272
+ };
272
273
  };
273
274
  }
274
275
  async function promptForPublish() {
@@ -29,8 +29,8 @@ export interface GitCommit extends RawGitCommit {
29
29
  export interface GetLatestGitTagForPatternOptions {
30
30
  checkAllBranchesWhen?: boolean | string[];
31
31
  preid?: string;
32
- releaseTagPatternRequireSemver: boolean;
33
- releaseTagPatternStrictPreid: boolean;
32
+ requireSemver: boolean;
33
+ strictPreid: boolean;
34
34
  }
35
35
  /**
36
36
  * Extract the tag and version from a tag string
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../../../../../../packages/nx/src/command-line/release/utils/git.ts"],"names":[],"mappings":"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"}
@@ -38,9 +38,9 @@ const SEMVER_REGEX = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d
38
38
  * @returns The tag and version
39
39
  */
40
40
  function extractTagAndVersion(tag, tagRegexp, options) {
41
- const { releaseTagPatternRequireSemver } = options;
41
+ const { requireSemver } = options;
42
42
  const [latestMatchingTag, ...rest] = tag.match(tagRegexp);
43
- let version = releaseTagPatternRequireSemver
43
+ let version = requireSemver
44
44
  ? rest.filter((r) => {
45
45
  return r.match(SEMVER_REGEX);
46
46
  })[0]
@@ -66,7 +66,7 @@ function extractTagAndVersion(tag, tagRegexp, options) {
66
66
  * @returns The tag and version
67
67
  */
68
68
  async function getLatestGitTagForPattern(releaseTagPattern, additionalInterpolationData = {}, options) {
69
- const { checkAllBranchesWhen, releaseTagPatternRequireSemver, releaseTagPatternStrictPreid, preid, } = options;
69
+ const { checkAllBranchesWhen, requireSemver, strictPreid, preid } = options;
70
70
  /**
71
71
  * By default, we will try and resolve the latest match for the releaseTagPattern from the current branch,
72
72
  * falling back to all branches if no match is found on the current branch.
@@ -148,7 +148,7 @@ async function getLatestGitTagForPattern(releaseTagPattern, additionalInterpolat
148
148
  .replace('%p%', '(.+)')
149
149
  .replace('%rg%', '(.+)')}`;
150
150
  const matchingTags = tags.filter((tag) => {
151
- if (releaseTagPatternRequireSemver) {
151
+ if (requireSemver) {
152
152
  // Match against Semver Regex when using semverVersioning to ensure only valid semver tags are matched
153
153
  return (!!tag.match(tagRegexp) &&
154
154
  tag.match(tagRegexp).some((r) => r.match(SEMVER_REGEX)));
@@ -160,7 +160,7 @@ async function getLatestGitTagForPattern(releaseTagPattern, additionalInterpolat
160
160
  if (!matchingTags.length) {
161
161
  return null;
162
162
  }
163
- if (!releaseTagPatternStrictPreid) {
163
+ if (!strictPreid) {
164
164
  // If not using strict preid, we can just return the first matching tag
165
165
  return extractTagAndVersion(matchingTags[0], tagRegexp, options);
166
166
  }