Skip to content

Commit 429f630

Browse files
author
Tom Lienard
authored
fix(changesets-renovate): do not generate changeset for package.json without version field (#1309)
1 parent 0fcb693 commit 429f630

File tree

3 files changed

+42
-2
lines changed

3 files changed

+42
-2
lines changed

.changeset/moody-bears-hang.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@scaleway/changesets-renovate': patch
3+
---
4+
5+
Do not generate changeset for `package.json` without `version` field

packages/changesets-renovate/src/__tests__/generate-changeset.ts

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,9 @@ describe('generate changeset file', () => {
102102
push,
103103
})
104104

105-
fs.readFile = jest.fn().mockResolvedValue(`{"name":"packageName"}`)
105+
fs.readFile = jest
106+
.fn()
107+
.mockResolvedValue(`{"name":"packageName","version":"1.0.0"}`)
106108
fs.writeFile = jest.fn()
107109

108110
await run()
@@ -146,4 +148,35 @@ describe('generate changeset file', () => {
146148
expect(fs.readFile).toHaveBeenCalledWith(file, 'utf8')
147149
expect(console.log).toHaveBeenCalledWith('No packages modified, skipping')
148150
})
151+
152+
it('should ignore version package.json', async () => {
153+
const file = 'package.json'
154+
155+
// @ts-expect-error we mock at the top
156+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
157+
simpleGit.mockReturnValue({
158+
branch: () => ({
159+
current: 'renovate/test',
160+
}),
161+
diffSummary: () => ({
162+
files: [
163+
{
164+
file,
165+
},
166+
],
167+
}),
168+
show: () => `
169+
+ "package": "version"
170+
+ "package2": "version2"
171+
`,
172+
})
173+
174+
fs.readFile = jest.fn().mockResolvedValue(`{"name":"packageName"}`)
175+
fs.writeFile = jest.fn()
176+
177+
await run()
178+
179+
expect(fs.readFile).toHaveBeenCalledWith(file, 'utf8')
180+
expect(console.log).toHaveBeenCalledWith('No packages modified, skipping')
181+
})
149182
})

packages/changesets-renovate/src/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ async function getPackagesNames(files: string[]): Promise<string[]> {
1010
const data = JSON.parse(await fs.readFile(file, 'utf8')) as {
1111
name: string
1212
workspaces?: string[]
13+
version?: string
1314
}
1415

15-
if (!data.workspaces) {
16+
// Do not generate changeset for the root package.json of a monorepo
17+
if (!data.workspaces && data.version) {
1618
packages.push(data.name)
1719
}
1820
})

0 commit comments

Comments
 (0)