chore(vendor): import pi 1.3.0
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: 71023aec1546d6d677a65669c5665c0927ce0dd0
This commit is contained in:
22
third_party/pi/scripts/sync-versions.test.mjs
vendored
22
third_party/pi/scripts/sync-versions.test.mjs
vendored
@@ -25,7 +25,8 @@ function runSyncVersions(root) {
|
||||
});
|
||||
}
|
||||
|
||||
test("synchronizes private dependencies without touching registry aliases, generated manifests, or published lockstep", async () => {
|
||||
// #10865: caret ranges allowed older agents to install incompatible newer workspace dependencies.
|
||||
test("pins published and private dependencies without touching registry aliases, generated manifests, or published lockstep", async () => {
|
||||
const root = await mkdtemp(join(tmpdir(), "pi-sync-versions-"));
|
||||
try {
|
||||
await writeManifest(root, "packages/ai", {
|
||||
@@ -35,6 +36,15 @@ test("synchronizes private dependencies without touching registry aliases, gener
|
||||
await writeManifest(root, "packages/coding-agent", {
|
||||
name: "@earendil-works/pi-coding-agent",
|
||||
version: "2.0.0",
|
||||
dependencies: {
|
||||
"@earendil-works/pi-ai": "^2.0.0",
|
||||
},
|
||||
devDependencies: {
|
||||
"@earendil-works/pi-ai": "~1.0.0",
|
||||
},
|
||||
optionalDependencies: {
|
||||
"@earendil-works/pi-ai": "1.0.0",
|
||||
},
|
||||
});
|
||||
await writeManifest(root, "packages/evals", {
|
||||
name: "@earendil-works/pi-evals",
|
||||
@@ -57,12 +67,20 @@ test("synchronizes private dependencies without touching registry aliases, gener
|
||||
const result = runSyncVersions(root);
|
||||
assert.equal(result.status, 0, result.stderr);
|
||||
|
||||
const agentManifest = await readManifest(root, "packages/coding-agent");
|
||||
for (const section of ["dependencies", "devDependencies", "optionalDependencies"]) {
|
||||
assert.equal(agentManifest[section]["@earendil-works/pi-ai"], "2.0.0");
|
||||
}
|
||||
const evalsManifest = await readManifest(root, "packages/evals");
|
||||
assert.equal(evalsManifest.dependencies["@earendil-works/pi-coding-agent"], "^2.0.0");
|
||||
assert.equal(evalsManifest.dependencies["@earendil-works/pi-coding-agent"], "2.0.0");
|
||||
assert.equal(evalsManifest.dependencies["@mariozechner/pi-ai"], "npm:@earendil-works/pi-ai@1.0.0");
|
||||
const generatedManifest = await readManifest(root, "packages/coding-agent/install-lock");
|
||||
assert.equal(generatedManifest.dependencies["@earendil-works/pi-coding-agent"], "^1.0.0");
|
||||
|
||||
const alreadySynced = runSyncVersions(root);
|
||||
assert.equal(alreadySynced.status, 0, alreadySynced.stderr);
|
||||
assert.match(alreadySynced.stdout, /All inter-package dependencies are already in sync/);
|
||||
|
||||
await writeManifest(root, "packages/ai", {
|
||||
name: "@earendil-works/pi-ai",
|
||||
version: "3.0.0",
|
||||
|
||||
Reference in New Issue
Block a user