fix(release): preserve plugin-local runtime deps in postpublish verify

This commit is contained in:
Peter Steinberger
2026-04-24 03:27:35 +01:00
parent 5ab5dc3900
commit c5620ddf9e
4 changed files with 97 additions and 4 deletions

View File

@@ -5,6 +5,7 @@ import { describe, expect, it } from "vitest";
import { listBundledPluginPackArtifacts } from "../scripts/lib/bundled-plugin-build-entries.mjs";
import { listPluginSdkDistArtifacts } from "../scripts/lib/plugin-sdk-entries.mjs";
import { WORKSPACE_TEMPLATE_PACK_PATHS } from "../scripts/lib/workspace-bootstrap-smoke.mjs";
import { collectInstalledRootDependencyManifestErrors } from "../scripts/openclaw-npm-postpublish-verify.ts";
import {
collectAppcastSparkleVersionErrors,
collectBundledExtensionManifestErrors,
@@ -277,6 +278,62 @@ describe("bundled plugin root runtime mirrors", () => {
}
});
it("does not require root deps for root chunks sourced from the owning installed plugin", () => {
const tempRoot = mkdtempSync(join(tmpdir(), "openclaw-root-owned-installed-"));
try {
mkdirSync(join(tempRoot, "dist", "extensions", "memory-lancedb"), { recursive: true });
writeFileSync(
join(tempRoot, "package.json"),
`{"name":"openclaw","dependencies":{}}\n`,
"utf8",
);
writeFileSync(
join(tempRoot, "dist", "extensions", "memory-lancedb", "package.json"),
`{"name":"@openclaw/memory-lancedb","dependencies":{"@lancedb/lancedb":"^0.27.2"}}\n`,
"utf8",
);
writeFileSync(
join(tempRoot, "dist", "lancedb-runtime-7TYK-Pto.js"),
`//#region extensions/memory-lancedb/lancedb-runtime.ts\nimport("@lancedb/lancedb");\n`,
"utf8",
);
expect(collectInstalledRootDependencyManifestErrors(tempRoot)).toEqual([]);
} finally {
rmSync(tempRoot, { recursive: true, force: true });
}
});
it("still requires root deps for root-owned installed chunks", () => {
const tempRoot = mkdtempSync(join(tmpdir(), "openclaw-root-owned-installed-missing-"));
try {
mkdirSync(join(tempRoot, "dist", "extensions", "memory-lancedb"), { recursive: true });
writeFileSync(
join(tempRoot, "package.json"),
`{"name":"openclaw","dependencies":{}}\n`,
"utf8",
);
writeFileSync(
join(tempRoot, "dist", "extensions", "memory-lancedb", "package.json"),
`{"name":"@openclaw/memory-lancedb","dependencies":{"@lancedb/lancedb":"^0.27.2"}}\n`,
"utf8",
);
writeFileSync(
join(tempRoot, "dist", "root-runtime.js"),
`import("@lancedb/lancedb");\n`,
"utf8",
);
expect(collectInstalledRootDependencyManifestErrors(tempRoot)).toEqual([
"installed package root is missing declared runtime dependency '@lancedb/lancedb' for dist importers: root-runtime.js. Add it to package.json dependencies/optionalDependencies.",
]);
} finally {
rmSync(tempRoot, { recursive: true, force: true });
}
});
it("does not compare root mirror versions for plugin manifest deps", () => {
expect(
collectBundledPluginRootRuntimeMirrorErrors({