Publish quixos-protocol from c4319441699b7b8c5af7e70dade6e4ad8cccddea

This commit is contained in:
Quixos Subtree Publisher
2026-10-08 14:59:49 +00:00
3 changed files with 19 additions and 3 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"version": 1, "version": 1,
"sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos", "sourceRepo": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos",
"sourceCommit": "e4075003e669be0e307ec8c0585cccb1bd08276a", "sourceCommit": "c4319441699b7b8c5af7e70dade6e4ad8cccddea",
"sourcePath": "quixos-protocol", "sourcePath": "quixos-protocol",
"exportName": "quixos-protocol", "exportName": "quixos-protocol",
"mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git" "mirrorRemote": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-protocol.git"
+2 -2
View File
@@ -481,13 +481,13 @@ export const applyPinUpgrades = async (
quixos: compiled.lock.quixos, quixos: compiled.lock.quixos,
directResources: [...compiled.directResources.entries()].map(([bindingKey, node]) => { directResources: [...compiled.directResources.entries()].map(([bindingKey, node]) => {
const [kind, binding] = bindingKey.split("\0"); const [kind, binding] = bindingKey.split("\0");
return { kind, binding, resourceKey: node.key, directory: node.directory }; return { kind, binding, resourceKey: node.key, directory: path.relative(plan.workbench, node.directory) };
}), }),
resources: [...resources.values()].map((node) => ({ resources: [...resources.values()].map((node) => ({
key: node.key, key: node.key,
kind: node.kind, kind: node.kind,
source: node.source, source: node.source,
directory: node.directory, directory: path.relative(plan.workbench, node.directory),
...(node.resource.kind === "build" ...(node.resource.kind === "build"
? {} ? {}
: { : {
+16
View File
@@ -8,6 +8,7 @@ import { execFile as callback } from "node:child_process";
import { import {
planPinUpgrades, planPinUpgrades,
applyPinUpgrades, applyPinUpgrades,
discoverUpgradeSpec,
reviewUpgradeCandidate, reviewUpgradeCandidate,
type UpgradeEffects, type UpgradeEffects,
} from "../src/capability-language/pin-upgrades.js"; } from "../src/capability-language/pin-upgrades.js";
@@ -153,6 +154,21 @@ test(
await run(workbench, "git", ["--git-dir", path.join(workbench, "remotes/named.git"), "show-ref"]), await run(workbench, "git", ["--git-dir", path.join(workbench, "remotes/named.git"), "show-ref"]),
new RegExp(commit), new RegExp(commit),
); );
assert.equal(graph.resources[0].directory, "resources/Named");
assert.equal(graph.directResources[0].directory, "resources/Named");
// A retained workbench can move without keeping its original absolute path
// alive. Recovery journals remain bound to their original writer/root.
const relocated = `${workbench}-relocated`;
context.after(() => fs.rm(relocated, { recursive: true, force: true }));
await fs.cp(workbench, relocated, { recursive: true });
const discovered = await discoverUpgradeSpec(relocated);
assert.equal(discovered.nodes[1]!.directory, "resources/Named");
const relocatedPlan = await planPinUpgrades(relocated, { ...discovered, bootstrap: true });
assert.equal(relocatedPlan.workbench, relocated);
assert.deepEqual(
relocatedPlan.nodes.map((node) => node.directory),
["resources/Named", "root"],
);
}, },
); );