Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(util/template): add prettyVersion field #16831

Merged
merged 38 commits into from Aug 8, 2022
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
f0d2c23
initial
hasanwhitesource Jul 25, 2022
49c84e7
expose prettyNewVersion and prettyNewMajor
hasanwhitesource Jul 27, 2022
a1f00e4
tests
hasanwhitesource Jul 27, 2022
02c3ba8
revert change
hasanwhitesource Jul 27, 2022
95f3aa2
simplify
hasanwhitesource Jul 27, 2022
a52ee6e
test naming
hasanwhitesource Jul 27, 2022
78e5414
documentation
hasanwhitesource Jul 27, 2022
d072e9f
documentation
hasanwhitesource Jul 28, 2022
14989c9
remove wrong documentation
hasanwhitesource Jul 28, 2022
ac97a7a
expose template finction
hasanwhitesource Jul 28, 2022
116dc5a
tests naming
hasanwhitesource Jul 28, 2022
619ea99
combine condition
hasanwhitesource Jul 28, 2022
805405a
Update docs/usage/templates.md
hasanwhitesource Jul 28, 2022
c990141
remove unecessary nullish op
hasanwhitesource Jul 28, 2022
2efbe76
Merge branch 'fix-v-in-version' of https://github.com/hasanwhitesourc…
hasanwhitesource Jul 28, 2022
70aa88b
Update docs/usage/templates.md
hasanwhitesource Jul 29, 2022
cfc5164
Merge branch 'main' into fix-v-in-version
hasanwhitesource Jul 29, 2022
9c3578f
Expose prettyVersion and prettyMajor
hasanwhitesource Aug 1, 2022
7fdca46
Merge branch 'fix-v-in-version' of https://github.com/hasanwhitesourc…
hasanwhitesource Aug 1, 2022
9d70c7b
documentation
hasanwhitesource Aug 1, 2022
de34859
Merge branch 'main' into fix-v-in-version
hasanwhitesource Aug 1, 2022
701fcb3
remove function and use regex
hasanwhitesource Aug 2, 2022
efb74b6
Merge branch 'fix-v-in-version' of https://github.com/hasanwhitesourc…
hasanwhitesource Aug 2, 2022
297a202
lexographic order
hasanwhitesource Aug 2, 2022
8d160ed
tests need fixing
hasanwhitesource Aug 3, 2022
f41d87c
Merge branch 'main' of https://github.com/renovatebot/renovate into f…
hasanwhitesource Aug 4, 2022
e2ded3b
add tests
hasanwhitesource Aug 4, 2022
77edbe8
Captial letter
hasanwhitesource Aug 4, 2022
a1d6ab6
renaming and prettyNewMajor
hasanwhitesource Aug 5, 2022
d2c21b9
space
hasanwhitesource Aug 5, 2022
ca2fbf8
move to upgrade interface
hasanwhitesource Aug 5, 2022
8ca03fb
Merge branch 'main' into fix-v-in-version
rarkins Aug 6, 2022
ae03414
use new fields where v is prepended manually
hasanwhitesource Aug 6, 2022
19c0339
Merge branch 'main' into fix-v-in-version
rarkins Aug 6, 2022
17273bb
Merge branch 'main' into fix-v-in-version
rarkins Aug 7, 2022
5b17d1a
Merge branch 'main' into fix-v-in-version
rarkins Aug 8, 2022
5acb2a4
move to interface
hasanwhitesource Aug 8, 2022
4d7d84a
Merge branch 'main' into fix-v-in-version
viceice Aug 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/config/options/index.ts
Expand Up @@ -1639,7 +1639,7 @@ const options: RenovateOptions[] = [
'Extra description used after the commit message topic - typically the version.',
type: 'string',
default:
'to {{#if isPinDigest}}{{{newDigestShort}}}{{else}}{{#if isMajor}}v{{{newMajor}}}{{else}}{{#if isSingleVersion}}v{{{newVersion}}}{{else}}{{#if newValue}}{{{newValue}}}{{else}}{{{newDigestShort}}}{{/if}}{{/if}}{{/if}}{{/if}}',
'to {{#if isPinDigest}}{{{newDigestShort}}}{{else}}{{#if isMajor}}v{{{newMajor}}}{{else}}{{#if isSingleVersion}}{{prettyVersion}}{{else}}{{#if newValue}}{{{newValue}}}{{else}}{{{newDigestShort}}}{{/if}}{{/if}}{{/if}}{{/if}}',
cli: false,
},
{
Expand Down
2 changes: 2 additions & 0 deletions lib/modules/manager/types.ts
Expand Up @@ -112,6 +112,8 @@ export interface Package<T> extends ManagerData<T> {
currentRawValue?: string;
major?: { enabled?: boolean };
prettyDepType?: string;

prettyVersion?: string;
hasanwhitesource marked this conversation as resolved.
Show resolved Hide resolved
}

export interface LookupUpdate {
Expand Down
1 change: 1 addition & 0 deletions lib/util/template/index.ts
Expand Up @@ -117,6 +117,7 @@ export const allowedFields = {
'The name of the directory that the dependency was found in, without full path',
platform: 'VCS platform in use, e.g. "github", "gitlab", etc.',
prettyDepType: 'Massaged depType',
prettyVersion: 'The new version value with v prepended to it.',
hasanwhitesource marked this conversation as resolved.
Show resolved Hide resolved
project: 'ChangeLogProject object',
recreateClosed: 'If true, this PR will be recreated if closed',
references: 'A list of references for the upgrade',
Expand Down
Expand Up @@ -156,6 +156,7 @@ Object {
"newVersion": "0.5.8",
"prTitle": "some-title",
"prettyDepType": "dependency",
"prettyVersion": "v0.5.8",
},
],
}
Expand Down Expand Up @@ -221,6 +222,7 @@ Object {
"prBodyColumns": Array [],
"prTitle": "some-title",
"prettyDepType": "dependency",
"prettyVersion": "v1.0.1",
"releaseTimestamp": undefined,
"reuseLockFiles": true,
"upgrades": Array [
Expand All @@ -240,6 +242,7 @@ Object {
"newVersion": "1.0.1",
"prTitle": "some-title",
"prettyDepType": "dependency",
"prettyVersion": "v1.0.1",
},
],
}
Expand Down
91 changes: 91 additions & 0 deletions lib/workers/repository/updates/generate.spec.ts
Expand Up @@ -80,6 +80,7 @@ describe('workers/repository/updates/generate', () => {
newValue: '^1.0.0',
newVersion: '1.0.1',
reuseLockFiles: true,
prettyVersion: 'v1.0.1',
upgrades: [
{
branchName: 'some-branch',
Expand All @@ -90,6 +91,7 @@ describe('workers/repository/updates/generate', () => {
lockedVersion: '1.0.0',
newValue: '^1.0.0',
newVersion: '1.0.1',
prettyVersion: 'v1.0.1',
},
],
});
Expand Down Expand Up @@ -564,6 +566,95 @@ describe('workers/repository/updates/generate', () => {
);
});

it('use prettyVersion in pr title when there is a v', () => {
const branch: BranchUpgradeConfig[] = [
{
...defaultConfig,
manager: 'some-manager',
depName: 'some-dep',
packageFile: 'foo/bar/package.json',
packageFileDir: 'foo/bar',
semanticCommits: 'enabled',
semanticCommitType: 'chore',
semanticCommitScope: '{{packageFileDir}}',
commitMessageExtra: '{{prettyVersion}}',
newValue: 'v1.2.0',
isSingleVersion: true,
newVersion: 'v1.2.0',
} as BranchUpgradeConfig,
];
const res = generateBranchConfig(branch);
expect(res.prTitle).toBe(
'chore(foo/bar): update dependency some-dep v1.2.0'
);
});

it('use prettyVersion in pr title there is no v', () => {
const branch: BranchUpgradeConfig[] = [
{
...defaultConfig,
manager: 'some-manager',
depName: 'some-dep',
packageFile: 'foo/bar/package.json',
packageFileDir: 'foo/bar',
semanticCommits: 'enabled',
semanticCommitType: 'chore',
semanticCommitScope: '{{packageFileDir}}',
commitMessageExtra: '{{prettyVersion}}',
newValue: '3.2.0',
newVersion: '3.2.0',
newMajor: 3,
} as BranchUpgradeConfig,
];
const res = generateBranchConfig(branch);
expect(res.prTitle).toBe(
'chore(foo/bar): update dependency some-dep v3.2.0'
);
});

it('use newMajor in pr title with v', () => {
const branch: BranchUpgradeConfig[] = [
{
...defaultConfig,
manager: 'some-manager',
depName: 'some-dep',
packageFile: 'foo/bar/package.json',
packageFileDir: 'foo/bar',
semanticCommits: 'enabled',
semanticCommitType: 'chore',
semanticCommitScope: '{{packageFileDir}}',
commitMessageExtra: 'v{{newMajor}}',
newValue: '3.2.0',
newVersion: '3.2.0',
newMajor: 3,
} as BranchUpgradeConfig,
];
const res = generateBranchConfig(branch);
expect(res.prTitle).toBe('chore(foo/bar): update dependency some-dep v3');
});

it('Default commitMessageExtra pr title', () => {
const branch: BranchUpgradeConfig[] = [
{
...defaultConfig,
manager: 'some-manager',
depName: 'some-dep',
packageFile: 'foo/bar/package.json',
packageFileDir: 'foo/bar',
semanticCommits: 'enabled',
semanticCommitType: 'chore',
semanticCommitScope: '{{packageFileDir}}',
newValue: 'v1.2.0',
isSingleVersion: true,
newVersion: 'v1.2.0',
} as BranchUpgradeConfig,
];
const res = generateBranchConfig(branch);
expect(res.prTitle).toBe(
'chore(foo/bar): update dependency some-dep to v1.2.0'
);
});

it('adds commit message body', () => {
// TODO #7154 incompatible types
const branch: BranchUpgradeConfig[] = [
Expand Down
6 changes: 6 additions & 0 deletions lib/workers/repository/updates/generate.ts
Expand Up @@ -182,6 +182,12 @@ export function generateBranchConfig(
regEx(/[A-Z]/).exec(upgrade.semanticCommitType!) === null &&
!upgrade.semanticCommitType!.startsWith(':');
}
// prettify version for printing
if (upgrade.newVersion) {
upgrade.prettyVersion = upgrade.newVersion.startsWith('v')
hasanwhitesource marked this conversation as resolved.
Show resolved Hide resolved
? upgrade.newVersion
: `v${upgrade.newVersion}`;
}
// Compile a few times in case there are nested templates
upgrade.commitMessage = template.compile(
upgrade.commitMessage ?? '',
Expand Down