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.
- package/migrations.json +5 -0
- package/package.json +11 -11
- package/release/changelog-renderer/index.d.ts +1 -0
- package/release/changelog-renderer/index.d.ts.map +1 -1
- package/release/changelog-renderer/index.js +46 -15
- package/schemas/nx-schema.json +254 -86
- package/src/command-line/configure-ai-agents/command-object.d.ts +1 -1
- package/src/command-line/configure-ai-agents/command-object.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/command-object.js +18 -4
- package/src/command-line/configure-ai-agents/configure-ai-agents.d.ts.map +1 -1
- package/src/command-line/configure-ai-agents/configure-ai-agents.js +58 -31
- package/src/command-line/migrate/migrate.d.ts.map +1 -1
- package/src/command-line/migrate/migrate.js +0 -4
- package/src/command-line/nx-cloud/login/command-object.d.ts.map +1 -1
- package/src/command-line/nx-cloud/login/command-object.js +2 -2
- package/src/command-line/nx-cloud/logout/command-object.js +1 -1
- package/src/command-line/nx-commands.js +1 -1
- package/src/command-line/release/changelog.d.ts.map +1 -1
- package/src/command-line/release/changelog.js +58 -47
- package/src/command-line/release/command-object.d.ts +7 -3
- package/src/command-line/release/command-object.d.ts.map +1 -1
- package/src/command-line/release/config/config.d.ts +6 -2
- package/src/command-line/release/config/config.d.ts.map +1 -1
- package/src/command-line/release/config/config.js +124 -61
- package/src/command-line/release/config/version-plans.d.ts.map +1 -1
- package/src/command-line/release/config/version-plans.js +4 -1
- package/src/command-line/release/publish.d.ts.map +1 -1
- package/src/command-line/release/publish.js +35 -11
- package/src/command-line/release/release.d.ts.map +1 -1
- package/src/command-line/release/release.js +31 -30
- package/src/command-line/release/utils/git.d.ts +2 -2
- package/src/command-line/release/utils/git.d.ts.map +1 -1
- package/src/command-line/release/utils/git.js +5 -5
- package/src/command-line/release/utils/release-graph.d.ts +219 -0
- package/src/command-line/release/utils/release-graph.d.ts.map +1 -0
- package/src/command-line/release/utils/release-graph.js +658 -0
- package/src/command-line/release/utils/semver.d.ts +1 -2
- package/src/command-line/release/utils/semver.d.ts.map +1 -1
- package/src/command-line/release/utils/semver.js +3 -5
- package/src/command-line/release/utils/shared.d.ts +1 -1
- package/src/command-line/release/utils/shared.d.ts.map +1 -1
- package/src/command-line/release/utils/shared.js +53 -19
- package/src/command-line/release/version/release-group-processor.d.ts +3 -152
- package/src/command-line/release/version/release-group-processor.d.ts.map +1 -1
- package/src/command-line/release/version/release-group-processor.js +58 -569
- package/src/command-line/release/version/resolve-current-version.d.ts +1 -1
- package/src/command-line/release/version/resolve-current-version.d.ts.map +1 -1
- package/src/command-line/release/version/resolve-current-version.js +1 -1
- package/src/command-line/release/version/test-utils.d.ts +13 -4
- package/src/command-line/release/version/test-utils.d.ts.map +1 -1
- package/src/command-line/release/version/test-utils.js +26 -11
- package/src/command-line/release/version/version-actions.d.ts +12 -5
- package/src/command-line/release/version/version-actions.d.ts.map +1 -1
- package/src/command-line/release/version/version-actions.js +36 -19
- package/src/command-line/release/version.d.ts +6 -1
- package/src/command-line/release/version.d.ts.map +1 -1
- package/src/command-line/release/version.js +57 -28
- package/src/config/nx-json.d.ts +139 -58
- package/src/config/nx-json.d.ts.map +1 -1
- package/src/config/nx-json.js +8 -8
- package/src/core/graph/main.js +1 -1
- package/src/daemon/client/client.d.ts +4 -0
- package/src/daemon/client/client.d.ts.map +1 -1
- package/src/daemon/client/client.js +23 -0
- package/src/daemon/message-types/register-project-graph-listener.d.ts +6 -0
- package/src/daemon/message-types/register-project-graph-listener.d.ts.map +1 -0
- package/src/daemon/message-types/register-project-graph-listener.js +11 -0
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts +3 -1
- package/src/daemon/server/project-graph-incremental-recomputation.d.ts.map +1 -1
- package/src/daemon/server/project-graph-incremental-recomputation.js +13 -5
- package/src/daemon/server/project-graph-listener-sockets.d.ts +8 -0
- package/src/daemon/server/project-graph-listener-sockets.d.ts.map +1 -0
- package/src/daemon/server/project-graph-listener-sockets.js +24 -0
- package/src/daemon/server/server.d.ts.map +1 -1
- package/src/daemon/server/server.js +9 -2
- package/src/migrations/update-22-0-0/consolidate-release-tag-config.d.ts +3 -0
- package/src/migrations/update-22-0-0/consolidate-release-tag-config.d.ts.map +1 -0
- package/src/migrations/update-22-0-0/consolidate-release-tag-config.js +100 -0
- package/src/native/nx.wasm32-wasi.wasm +0 -0
- package/src/tasks-runner/is-tui-enabled.d.ts.map +1 -1
- package/src/tasks-runner/is-tui-enabled.js +0 -1
- package/src/tasks-runner/run-command.d.ts.map +1 -1
- package/src/tasks-runner/run-command.js +5 -2
- package/src/utils/package-manager.d.ts.map +1 -1
- 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 ?? '
|
|
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
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
|
247
|
-
|
|
248
|
-
|
|
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
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
//
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
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
|
-
|
|
406
|
-
|
|
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
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
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
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
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.
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
|
82
|
-
const
|
|
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
|
|
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;
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
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,
|
|
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,
|
|
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
|
|
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 (
|
|
245
|
-
hasNewVersion = Object.values(
|
|
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:
|
|
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
|
|
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
|
-
|
|
33
|
-
|
|
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":"AAWA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gCAAgC;IAC/C,oBAAoB,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,
|
|
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 {
|
|
41
|
+
const { requireSemver } = options;
|
|
42
42
|
const [latestMatchingTag, ...rest] = tag.match(tagRegexp);
|
|
43
|
-
let version =
|
|
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,
|
|
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 (
|
|
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 (!
|
|
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
|
}
|