scripts/prepare-release: handle packages that were added since last release

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2022-03-05 10:19:14 +01:00
parent c4729f65e6
commit 9cdd51a6b6
+23 -13
View File
@@ -71,21 +71,31 @@ async function detectPatchVersionsForRef(repo, ref) {
path.relative(repo.root.dir, pkg.dir),
'package.json',
);
const { stdout: pkgJsonStr } = await execFile('git', [
'show',
`${ref}:${pkgJsonPath}`,
]);
if (pkgJsonStr) {
const releasePkgJson = JSON.parse(pkgJsonStr);
const pkgJson = pkg.packageJson;
if (releasePkgJson.name !== pkgJson.name) {
throw new Error(
`Mismatched package name at ${pkg.dir}, ${releasePkgJson.name} !== ${pkgJson.name}`,
);
try {
const { stdout: pkgJsonStr } = await execFile('git', [
'show',
`${ref}:${pkgJsonPath}`,
]);
if (pkgJsonStr) {
const releasePkgJson = JSON.parse(pkgJsonStr);
const pkgJson = pkg.packageJson;
if (releasePkgJson.name !== pkgJson.name) {
throw new Error(
`Mismatched package name at ${pkg.dir}, ${releasePkgJson.name} !== ${pkgJson.name}`,
);
}
if (releasePkgJson.version !== pkgJson.version) {
patchVersions.set(pkgJson.name, releasePkgJson.version);
}
}
if (releasePkgJson.version !== pkgJson.version) {
patchVersions.set(pkgJson.name, releasePkgJson.version);
} catch (error) {
if (
error.stderr?.match(/^fatal: Path .* exists on disk, but not in .*$/m)
) {
console.log(`Skipping new package ${pkg.packageJson.name}`);
continue;
}
throw error;
}
}