Skip to content

Commit 4923c15

Browse files
jogelinJamesHenry
andauthored
fix(release): interpolate releaseGroupName in getLatestGitTagForPattern (#33674)
# Fix: Pass releaseGroupName to getLatestGitTagForPattern for proper tag resolution ## Problem When using `releaseTag.pattern: "{releaseGroupName}@{version}"`, Nx fails to resolve versions from git tags because the `{releaseGroupName}` placeholder is not interpolated. For example, with git tag `[email protected]`: - **Expected**: Extract version `2.9.0` - **Actual**: Extracts `"my-group"` → Error: `Invalid semver version 'my-group' provided` ## Root Cause In `release-graph.ts:627-631`, only `projectName` is passed to `getLatestGitTagForPattern()`, missing `releaseGroupName` needed for interpolation. ## Solution Pass `releaseGroupName` to the interpolation data (1-line change at `release-graph.ts:631`): ```typescript latestMatchingGitTag = await getLatestGitTagForPattern( releaseTagPattern, { projectName: projectGraphNode.name, releaseGroupName: releaseGroupNode.group.name, // ✅ Added }, { ... } ); ``` ## Backward Compatibility ✅ Fully backward compatible: - `releaseGroupNode.group.name` is always defined (user-defined or `"__default__"`) - Unused interpolation data is safely ignored - Existing patterns (`v{version}`, `{projectName}@{version}`) continue to work ## Tests Added test case in `git.spec.ts` for `{releaseGroupName}@{version}` pattern that verifies correct tag matching and version extraction. ## Files Changed - `packages/nx/src/command-line/release/utils/release-graph.ts` (1 line) - `packages/nx/src/command-line/release/utils/git.spec.ts` (1 test case) Co-authored-by: James Henry <[email protected]>
1 parent 8207c94 commit 4923c15

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

packages/nx/src/command-line/release/utils/git.spec.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ [email protected]
2525
2626
2727
28+
2829
`)
2930
),
3031
}));
@@ -288,13 +289,22 @@ See merge request nx-release-test/nx-release-test!2`,
288289
expectedVersion: '1.2.4-beta.1',
289290
preid: 'alpha',
290291
},
292+
{
293+
pattern: '{releaseGroupName}@{version}',
294+
releaseGroupName: 'my-group',
295+
projectName: 'my-project',
296+
expectedTag: '[email protected]',
297+
expectedVersion: '1.5.0',
298+
requireSemver: true,
299+
},
291300
];
292301

293302
it.each(releaseTagPatternTestCases)(
294303
'should return tag $expectedTag for pattern $pattern and preid $preid',
295304
async ({
296305
pattern,
297306
projectName,
307+
releaseGroupName,
298308
expectedTag,
299309
expectedVersion,
300310
requireSemver,
@@ -304,6 +314,7 @@ See merge request nx-release-test/nx-release-test!2`,
304314
pattern,
305315
{
306316
projectName,
317+
releaseGroupName,
307318
},
308319
{
309320
requireSemver,

packages/nx/src/command-line/release/utils/release-graph.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,7 @@ export class ReleaseGraph {
628628
releaseTagPattern,
629629
{
630630
projectName: projectGraphNode.name,
631+
releaseGroupName: releaseGroupNode.group.name,
631632
},
632633
{
633634
checkAllBranchesWhen:

0 commit comments

Comments
 (0)