diff --git a/lib/manager/gomod/update.js b/lib/manager/gomod/update.js index ceac15602930be0b82ef5064ae549d1f2f14d25f..912a837a6b8c1a80bfe5a6ec1cd5a65fe0ec5425 100644 --- a/lib/manager/gomod/update.js +++ b/lib/manager/gomod/update.js @@ -75,6 +75,9 @@ function updateDependency(currentFileContent, upgrade) { } } } + if (lineToChange.endsWith('+incompatible')) { + newLine += '+incompatible'; + } if (newLine === lineToChange) { logger.debug('No changes necessary'); return currentFileContent; diff --git a/test/_fixtures/go/1/go.mod b/test/_fixtures/go/1/go.mod index 61e316ad7ad40f49dc3e7dba83a2b196d82fb4b3..a3e27f4b42b9e7753b6c285aba8dc384ab88fe87 100644 --- a/test/_fixtures/go/1/go.mod +++ b/test/_fixtures/go/1/go.mod @@ -6,5 +6,6 @@ require github.com/davecgh/go-spew v1.0.0 require golang.org/x/foo v1.0.0 require github.com/rarkins/foo abcdef1 require gopkg.in/russross/blackfriday.v1 v1.0.0 +require github.com/Azure/azure-sdk-for-go v25.1.0+incompatible replace github.com/pkg/errors => ../errors diff --git a/test/manager/gomod/__snapshots__/extract.spec.js.snap b/test/manager/gomod/__snapshots__/extract.spec.js.snap index 72503ec35f12e8dc731087c6dcbe17bdf62e373b..24ffa3972b6188e45c418835882bff6454e28a16 100644 --- a/test/manager/gomod/__snapshots__/extract.spec.js.snap +++ b/test/manager/gomod/__snapshots__/extract.spec.js.snap @@ -628,5 +628,13 @@ Array [ "depType": "require", "lineNumber": 7, }, + Object { + "currentValue": "v25.1.0+incompatible", + "datasource": "go", + "depName": "github.com/Azure/azure-sdk-for-go", + "depNameShort": "Azure/azure-sdk-for-go", + "depType": "require", + "lineNumber": 8, + }, ] `; diff --git a/test/manager/gomod/__snapshots__/update.spec.js.snap b/test/manager/gomod/__snapshots__/update.spec.js.snap index 8528f18f3741a6174d00cf352910e072c21019e6..06173bcf045a37d7e4b60444c82715ee071f7e72 100644 --- a/test/manager/gomod/__snapshots__/update.spec.js.snap +++ b/test/manager/gomod/__snapshots__/update.spec.js.snap @@ -9,6 +9,7 @@ require github.com/davecgh/go-spew v1.0.0 require golang.org/x/foo v1.0.0 require github.com/rarkins/foo abcdef1 require gopkg.in/russross/blackfriday.v2 v2.0.0 +require github.com/Azure/azure-sdk-for-go v25.1.0+incompatible replace github.com/pkg/errors => ../errors " @@ -90,6 +91,7 @@ require github.com/davecgh/go-spew v1.0.0 require golang.org/x/foo v1.0.0 require github.com/rarkins/foo abcdef1 require gopkg.in/russross/blackfriday.v1 v1.0.0 +require github.com/Azure/azure-sdk-for-go v25.1.0+incompatible replace github.com/pkg/errors => ../errors " diff --git a/test/manager/gomod/extract.spec.js b/test/manager/gomod/extract.spec.js index 9a912a00968206ffffbe5d32e1badeb2e7e2b136..c6b95cfcea42a694812160d4fb2aa6ba5ad2d683 100644 --- a/test/manager/gomod/extract.spec.js +++ b/test/manager/gomod/extract.spec.js @@ -16,7 +16,7 @@ describe('lib/manager/gomod/extract', () => { it('extracts single-line requires', () => { const res = extractPackageFile(gomod1, config).deps; expect(res).toMatchSnapshot(); - expect(res).toHaveLength(6); + expect(res).toHaveLength(7); expect(res.filter(e => e.skipReason).length).toBe(1); }); it('extracts multi-line requires', () => { diff --git a/test/manager/gomod/update.spec.js b/test/manager/gomod/update.spec.js index 664e16e278381d04631b706c16161054cc42c4c5..1ab1b87c9e96e6dca2fb472af226fa593f519467 100644 --- a/test/manager/gomod/update.spec.js +++ b/test/manager/gomod/update.spec.js @@ -176,5 +176,16 @@ describe('manager/gomod/update', () => { const res = goUpdate.updateDependency(gomod2, upgrade); expect(res).toBe(null); }); + it('handles +incompatible tag', () => { + const upgrade = { + depName: 'github.com/Azure/azure-sdk-for-go', + lineNumber: 8, + newValue: 'v26.0.0', + }; + const res = goUpdate.updateDependency(gomod1, upgrade); + expect(res).not.toEqual(gomod1); + // Assert that the version still contains +incompatible tag. + expect(res.includes(upgrade.newValue + '+incompatible')).toBe(true); + }); }); });