fix(release): tolerate npm README metadata lag

This commit is contained in:
Peter Steinberger
2026-05-31 02:47:41 +01:00
parent 26913e60a4
commit 4dad7bd93b
2 changed files with 37 additions and 2 deletions

View File

@@ -306,12 +306,26 @@ function readPackedPackage(tarballPath, extractDir) {
tar.x({ file: tarballPath, cwd: extractDir, sync: true });
const packageDir = path.join(extractDir, "package");
const packageJson = JSON.parse(fs.readFileSync(path.join(packageDir, "package.json"), "utf8"));
const files = listFiles(packageDir);
return {
packageJson,
files: listFiles(packageDir),
files,
readme: readPackedPackageReadme(packageDir, files),
};
}
export function findPackedPackageReadmePath(files) {
return files.find((file) => /^readme(?:\.(?:md|markdown|txt|rst))?$/iu.test(file)) ?? "";
}
function readPackedPackageReadme(packageDir, files) {
const readmePath = findPackedPackageReadmePath(files);
if (!readmePath) {
return "";
}
return fs.readFileSync(path.join(packageDir, readmePath), "utf8").trim();
}
export async function verifyPublishedPluginRuntime(spec) {
const workingDir = fs.mkdtempSync(path.join(os.tmpdir(), "openclaw-plugin-npm-runtime."));
try {
@@ -326,7 +340,18 @@ export async function verifyPublishedPluginRuntime(spec) {
if (errors.length > 0) {
throw new Error(errors.join("\n"));
}
const readme = await verifyPublishedPackageReadme(spec);
let readme;
try {
readme = await verifyPublishedPackageReadme(spec);
} catch (error) {
if (!packedPackage.readme) {
throw error;
}
console.error(
`npm readme metadata for ${spec} was unavailable; verified README from published tarball instead.`,
);
readme = packedPackage.readme;
}
return {
packageName: packedPackage.packageJson.name,
version: packedPackage.packageJson.version,