Skip to content

Commit 060767f

Browse files
authored
Merge pull request #7159 from Shopify/fix-nightly-manifest-mismatch
fix: regenerate oclif manifests for nightly packaging
2 parents a4e320f + 93c70f4 commit 060767f

8 files changed

Lines changed: 39 additions & 7 deletions

File tree

packages/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"clean": "nx clean",
5050
"lint": "nx lint",
5151
"lint:fix": "nx lint:fix",
52-
"prepack": "NODE_ENV=production pnpm nx build && cp ../../README.md README.md",
52+
"prepack": "NODE_ENV=production pnpm nx build && pnpm oclif manifest && cp ../../README.md README.md",
5353
"vitest": "vitest",
5454
"type-check": "nx type-check"
5555
},

packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"clean": "nx clean",
4848
"lint": "nx lint",
4949
"lint:fix": "nx lint:fix",
50-
"prepack": "NODE_ENV=production node ../../bin/update-bugsnag cli && cp ../../README.md README.md",
50+
"prepack": "NODE_ENV=production node ../../bin/update-bugsnag cli && pnpm oclif manifest && cp ../../README.md README.md",
5151
"vitest": "vitest",
5252
"type-check": "nx type-check"
5353
},

packages/cli/src/cli/repo-health.test.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,35 @@ describe('Node dependency version sync', () => {
109109
expect(different, errorMessage).toHaveLength(0)
110110
})
111111
})
112+
113+
describe('oclif manifest packaging', () => {
114+
test('packages that ship oclif.manifest.json regenerate it in prepack', async () => {
115+
const packageJsonPaths = await glob('packages/*/package.json', {cwd: repoRoot, absolute: true})
116+
117+
const missingManifestRefresh: string[] = []
118+
119+
for (const packageJsonPath of packageJsonPaths) {
120+
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8')) as {
121+
files?: string[]
122+
scripts?: {prepack?: string}
123+
}
124+
125+
const shipsOclifManifest = packageJson.files?.some((file) =>
126+
file.replace(/^\.?\//, '').endsWith('oclif.manifest.json'),
127+
)
128+
if (!shipsOclifManifest) continue
129+
if (!/\boclif\s+manifest\b/.test(packageJson.scripts?.prepack ?? '')) {
130+
missingManifestRefresh.push(path.relative(repoRoot, packageJsonPath))
131+
}
132+
}
133+
134+
expect(
135+
missingManifestRefresh,
136+
[
137+
'The following packages publish oclif.manifest.json without regenerating it in prepack:\n',
138+
...missingManifestRefresh.map((packageJsonPath) => ` - ${packageJsonPath}\n`),
139+
'\nAdd `pnpm oclif manifest` to the package prepack script so snapshot/nightly versions do not ship stale manifests.',
140+
].join(''),
141+
).toHaveLength(0)
142+
})
143+
})

packages/create-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"clean": "nx clean",
4646
"lint": "nx lint",
4747
"lint:fix": "nx lint:fix",
48-
"prepack": "NODE_ENV=production node ../../bin/update-bugsnag create-app && cp ../../README.md README.md",
48+
"prepack": "NODE_ENV=production node ../../bin/update-bugsnag create-app && pnpm oclif manifest && cp ../../README.md README.md",
4949
"vitest": "vitest",
5050
"type-check": "nx type-check"
5151
},

packages/plugin-cloudflare/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"clean": "nx clean",
3737
"lint": "nx lint",
3838
"lint:fix": "nx lint:fix",
39-
"prepack": "NODE_ENV=production pnpm nx build && cp ../../README.md README.md",
39+
"prepack": "NODE_ENV=production pnpm nx build && pnpm oclif manifest && cp ../../README.md README.md",
4040
"vitest": "vitest",
4141
"type-check": "nx type-check"
4242
},

packages/plugin-did-you-mean/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"clean": "nx clean",
3232
"lint": "nx lint",
3333
"lint:fix": "nx lint:fix",
34-
"prepack": "NODE_ENV=production pnpm nx build && cp ../../README.md README.md",
34+
"prepack": "NODE_ENV=production pnpm nx build && pnpm oclif manifest && cp ../../README.md README.md",
3535
"vitest": "vitest",
3636
"type-check": "nx type-check"
3737
},

packages/store/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"clean": "nx clean",
3131
"lint": "nx lint",
3232
"lint:fix": "nx lint:fix",
33-
"prepack": "NODE_ENV=production pnpm nx build && cp ../../README.md README.md",
33+
"prepack": "NODE_ENV=production pnpm nx build && pnpm oclif manifest && cp ../../README.md README.md",
3434
"vitest": "vitest",
3535
"type-check": "nx type-check"
3636
},

packages/theme/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"clean": "nx clean",
3232
"lint": "nx lint",
3333
"lint:fix": "nx lint:fix",
34-
"prepack": "NODE_ENV=production pnpm nx build && cp ../../README.md README.md",
34+
"prepack": "NODE_ENV=production pnpm nx build && pnpm oclif manifest && cp ../../README.md README.md",
3535
"vitest": "vitest",
3636
"type-check": "nx type-check"
3737
},

0 commit comments

Comments
 (0)