From fe41748e7b32ed5ee99e445cda23e127c51332df Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 1 Jun 2019 08:23:18 +0200 Subject: [PATCH] feat(pr): simpler displayFrom/displayTo logic (#3853) --- lib/config/definitions.js | 10 +---- lib/workers/pr/pr-body.js | 21 +---------- lib/workers/repository/updates/generate.js | 37 +++++++++++++++++++ renovate-schema.json | 12 ++---- .../pr/__snapshots__/index.spec.js.snap | 8 ++-- test/workers/pr/index.spec.js | 10 +++-- .../__snapshots__/flatten.spec.js.snap | 4 +- .../__snapshots__/generate.spec.js.snap | 6 +++ .../repository/updates/generate.spec.js | 5 ++- 9 files changed, 63 insertions(+), 50 deletions(-) diff --git a/lib/config/definitions.js b/lib/config/definitions.js index 7a09e8d678..1c4a805cef 100644 --- a/lib/config/definitions.js +++ b/lib/config/definitions.js @@ -817,9 +817,6 @@ const options = [ branchTopic: '{{{depNameSanitized}}}-digest', commitMessageExtra: 'to {{newDigestShort}}', commitMessageTopic: '{{{depName}}} commit hash', - prBodyDefinitions: { - Change: '`{{{currentValue}}}` -> `{{{newDigestShort}}}`', - }, }, cli: false, mergeable: true, @@ -1181,10 +1178,6 @@ const options = [ type: 'object', default: { fileMatch: ['(^|/)WORKSPACE$', '\\.bzl$'], - prBodyDefinitions: { - Change: - '{{#if currentDigestShort}}`{{{currentDigestShort}}}` -> {{#if isDigest}}`{{{newDigestShort}}}`{{else}}`{{{newVersion}}}`{{/if}}{{else}}`{{{currentValue}}}` -> `{{{newValue}}}`{{/if}}', - }, }, mergeable: true, }, @@ -1771,8 +1764,7 @@ const options = [ Update: '{{{updateType}}}', 'Current value': '{{{currentValue}}}', 'New value': '{{{newValue}}}', - Change: - '{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}', + Change: '`{{{displayFrom}}}` -> `{{{displayTo}}}`', References: '{{{references}}}', 'Package file': '{{{packageFile}}}', }, diff --git a/lib/workers/pr/pr-body.js b/lib/workers/pr/pr-body.js index 2738d423a2..0d06b35d6c 100644 --- a/lib/workers/pr/pr-body.js +++ b/lib/workers/pr/pr-body.js @@ -59,14 +59,7 @@ async function getPrBody(config) { references.push(`[changelog](${changelogUrl})`); } upgrade.references = references.join(', '); - const { - fromVersion, - toVersion, - newValue, - newDigestShort, - updateType, - versionScheme, - } = upgrade; + const { fromVersion, toVersion, updateType, versionScheme } = upgrade; // istanbul ignore if if (updateType === 'minor') { try { @@ -78,18 +71,6 @@ async function getPrBody(config) { // do nothing } } - if (newDigestShort) { - if (updateType === 'pin') { - upgrade.newValue = config.newDigestShort; - } - if (newValue) { - upgrade.newValue = newValue + '@' + newDigestShort; - } else { - upgrade.newValue = newDigestShort; - } - } else if (updateType !== 'lockFileMaintenance') { - upgrade.newValue = newValue; - } /* eslint-enable no-param-reassign */ }); const tableDefinitions = getTableDefinition(config); diff --git a/lib/workers/repository/updates/generate.js b/lib/workers/repository/updates/generate.js index 9136dd67f7..7813cc6578 100644 --- a/lib/workers/repository/updates/generate.js +++ b/lib/workers/repository/updates/generate.js @@ -55,6 +55,43 @@ function generateBranchConfig(branchUpgrades) { let releaseTimestamp; for (const branchUpgrade of branchUpgrades) { let upgrade = { ...branchUpgrade }; + if (upgrade.currentDigest) { + upgrade.currentDigestShort = + upgrade.currentDigestShort || + upgrade.currentDigest.replace('sha256:', '').substring(0, 7); + } + if (upgrade.newDigest) { + upgrade.newDigestShort = + upgrade.newDigestShort || + upgrade.newDigest.replace('sha256:', '').substring(0, 7); + } + if (!upgrade.displayFrom) { + if (upgrade.currentValue === upgrade.newValue) { + upgrade.displayFrom = + upgrade.currentDigestShort || upgrade.currentVersion || ''; + upgrade.displayTo = + upgrade.displayTo || + upgrade.newDigestShort || + upgrade.newVersion || + ''; + } else { + upgrade.displayFrom = + upgrade.currentValue || + upgrade.currentVersion || + upgrade.currentDigestShort || + ''; + upgrade.displayTo = + upgrade.displayTo || + upgrade.newValue || + upgrade.newVersion || + upgrade.newDigestShort || + ''; + } + } + + if (upgrade.displayFrom.length * upgrade.displayTo.length === 0) { + logger.info({ upgrade }, 'empty displayFrom/displayTo'); + } upgrade.prettyDepType = upgrade.prettyDepType || upgrade.depType || 'dependency'; if (useGroupSettings) { diff --git a/renovate-schema.json b/renovate-schema.json index c3042daac5..7861ddddde 100644 --- a/renovate-schema.json +++ b/renovate-schema.json @@ -526,10 +526,7 @@ "default": { "branchTopic": "{{{depNameSanitized}}}-digest", "commitMessageExtra": "to {{newDigestShort}}", - "commitMessageTopic": "{{{depName}}} commit hash", - "prBodyDefinitions": { - "Change": "`{{{currentValue}}}` -> `{{{newDigestShort}}}`" - } + "commitMessageTopic": "{{{depName}}} commit hash" }, "$ref": "#" }, @@ -797,10 +794,7 @@ "description": "Configuration object for bazel WORKSPACE renovation", "type": "object", "default": { - "fileMatch": ["(^|/)WORKSPACE$", "\\.bzl$"], - "prBodyDefinitions": { - "Change": "{{#if currentDigestShort}}`{{{currentDigestShort}}}` -> {{#if isDigest}}`{{{newDigestShort}}}`{{else}}`{{{newVersion}}}`{{/if}}{{else}}`{{{currentValue}}}` -> `{{{newValue}}}`{{/if}}" - } + "fileMatch": ["(^|/)WORKSPACE$", "\\.bzl$"] }, "$ref": "#" }, @@ -1217,7 +1211,7 @@ "Update": "{{{updateType}}}", "Current value": "{{{currentValue}}}", "New value": "{{{newValue}}}", - "Change": "{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}", + "Change": "`{{{displayFrom}}}` -> `{{{displayTo}}}`", "References": "{{{references}}}", "Package file": "{{{packageFile}}}" } diff --git a/test/workers/pr/__snapshots__/index.spec.js.snap b/test/workers/pr/__snapshots__/index.spec.js.snap index f6d65d2689..cc8bcc269a 100644 --- a/test/workers/pr/__snapshots__/index.spec.js.snap +++ b/test/workers/pr/__snapshots__/index.spec.js.snap @@ -129,10 +129,10 @@ Array [ | Package | Type | Update | Change | References | |---|---|---|---|---| | dummy | devDependencies | lockFileMaintenance | \`1.0.0\` -> \`1.1.0\` | [homepage](https://dummy.com), [source](https://github.com/renovateapp/dummy/tree/HEAD/packages/a), [changelog](https://github.com/renovateapp/dummy/changelog.md) | -| a | | | \`aaaaaaa\` | | -| b | | pin | \`some_new_value@bbbbbbb\` | | -| c | | | | | -| d | | lockFileMaintenance | | | +| a | | | \`zzzzzz\` -> \`aaaaaaa\` | | +| b | | pin | \`some_old_value\` -> \`some_new_value\` | | +| c | | | \`\` -> \`\` | | +| d | | lockFileMaintenance | \`\` -> \`\` | | note 1 diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js index 39738b9665..82bc7a62ee 100644 --- a/test/workers/pr/index.spec.js +++ b/test/workers/pr/index.spec.js @@ -115,8 +115,8 @@ describe('workers/pr', () => { config.depType = 'devDependencies'; config.depName = 'dummy'; config.privateRepo = true; - config.currentValue = '1.0.0'; - config.newValue = '1.1.0'; + config.displayFrom = '1.0.0'; + config.displayTo = '1.1.0'; config.updateType = 'minor'; config.homepage = 'https://dummy.com'; config.sourceUrl = 'https://github.com/renovateapp/dummy'; @@ -160,13 +160,15 @@ describe('workers/pr', () => { config.upgrades = config.upgrades.concat([ { depName: 'a', - newDigestShort: 'aaaaaaa', + displayFrom: 'zzzzzz', + displayTo: 'aaaaaaa', prBodyNotes: ['note 1', 'note 2'], }, { depName: 'b', newDigestShort: 'bbbbbbb', - newValue: 'some_new_value', + displayFrom: 'some_old_value', + displayTo: 'some_new_value', updateType: 'pin', }, { diff --git a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap index d7a259f323..b1a9a74e2b 100644 --- a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap +++ b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap @@ -846,7 +846,7 @@ Array [ "References", ], "prBodyDefinitions": Object { - "Change": "{{#if displayFrom}}\`{{{displayFrom}}}\` -> {{else}}{{#if currentValue}}\`{{{currentValue}}}\` -> {{/if}}{{/if}}{{#if displayTo}}\`{{{displayTo}}}\`{{else}}\`{{{newValue}}}\`{{/if}}", + "Change": "\`{{{displayFrom}}}\` -> \`{{{displayTo}}}\`", "Current value": "{{{currentValue}}}", "New value": "{{{newValue}}}", "Package": "{{{depName}}}", @@ -958,7 +958,7 @@ Array [ "References", ], "prBodyDefinitions": Object { - "Change": "{{#if displayFrom}}\`{{{displayFrom}}}\` -> {{else}}{{#if currentValue}}\`{{{currentValue}}}\` -> {{/if}}{{/if}}{{#if displayTo}}\`{{{displayTo}}}\`{{else}}\`{{{newValue}}}\`{{/if}}", + "Change": "\`{{{displayFrom}}}\` -> \`{{{displayTo}}}\`", "Current value": "{{{currentValue}}}", "New value": "{{{newValue}}}", "Package": "{{{depName}}}", diff --git a/test/workers/repository/updates/__snapshots__/generate.spec.js.snap b/test/workers/repository/updates/__snapshots__/generate.spec.js.snap index 55ae92ecb8..d8e1f334b0 100644 --- a/test/workers/repository/updates/__snapshots__/generate.spec.js.snap +++ b/test/workers/repository/updates/__snapshots__/generate.spec.js.snap @@ -14,6 +14,8 @@ Object { "canBeUnpublished": false, "commitMessage": "", "depName": "@types/some-dep", + "displayFrom": "", + "displayTo": "0.5.7", "masterIssueApproval": false, "newValue": "0.5.7", "prTitle": "some-title", @@ -25,6 +27,8 @@ Object { "branchName": "some-branch", "commitMessage": "", "depName": "@types/some-dep", + "displayFrom": "", + "displayTo": "0.5.7", "newValue": "0.5.7", "prTitle": "some-title", "prettyDepType": "dependency", @@ -33,6 +37,8 @@ Object { "branchName": "some-branch", "commitMessage": "", "depName": "some-dep", + "displayFrom": "", + "displayTo": "0.6.0", "newValue": "0.6.0", "prTitle": "some-title", "prettyDepType": "dependency", diff --git a/test/workers/repository/updates/generate.spec.js b/test/workers/repository/updates/generate.spec.js index 6b22ba540e..8f24852987 100644 --- a/test/workers/repository/updates/generate.spec.js +++ b/test/workers/repository/updates/generate.spec.js @@ -176,8 +176,9 @@ describe('workers/repository/updates/generate', () => { 'to {{#if isMajor}}v{{newMajor}}{{else}}{{#unless isRange}}v{{/unless}}{{newValue}}{{/if}}', lazyGrouping: true, isDigest: true, + currentDigest: 'abcdefghijklmnopqrstuvwxyz', + newDigest: '123abcdefghijklmnopqrstuvwxyz', foo: 1, - newValue: 'abcdef', group: { foo: 2, }, @@ -444,7 +445,7 @@ describe('workers/repository/updates/generate', () => { branchName: 'some-branch', prTitle: 'some-title', lazyGrouping: true, - newValue: '0.5.7', + currentValue: '0.5.7', group: {}, }, { -- GitLab