@kungfu-tech/buildchain 3.0.5-alpha.8 → 3.0.6-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/auditable-demo-scenario-v1.schema.json +11 -0
- package/dist/site/buildchain-contract.json +42 -22
- package/dist/site/buildchain-site.json +73 -27
- package/dist/site/capability-registry.json +2 -2
- package/dist/site/cli-registry.json +5 -3
- package/dist/site/controller-registry.json +19 -3
- package/dist/site/kfd-claims.json +58 -14
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +7 -6
- package/dist/site/node-api-registry.json +335 -8
- package/dist/site/page-registry.json +63 -17
- package/dist/site/public-surface-audit.json +94 -11
- package/dist/site/publication-authority-registry.json +21 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +10 -10
- package/dist/site/workflow-registry.json +53 -4
- package/docs/MAP.md +4 -1
- package/docs/auditable-demo.md +19 -3
- package/docs/cli-reference.md +15 -4
- package/docs/dev-alpha-candidate-patrol.md +14 -5
- package/docs/dev-qualification-patrol.md +108 -0
- package/docs/node-api-reference.md +42 -9
- package/docs/release-propagation.md +93 -0
- package/docs/reusable-build-surface.md +44 -12
- package/docs/stable-candidate-patrol.md +5 -2
- package/package.json +1 -1
- package/packages/core/buildchain-publication-authority.js +1 -0
- package/packages/core/release-propagation-agent-entry.js +185 -0
- package/packages/core/release-propagation-push.js +293 -0
- package/packages/core/release-propagation-stage-evidence.js +36 -0
- package/packages/core/release-propagation-work.js +1 -1
- package/packages/core/release-propagation.js +15 -0
- package/scripts/artifact-signing-controller-core.mjs +525 -0
- package/scripts/artifact-signing-controller.mjs +302 -0
- package/scripts/artifact-signing-delegation.mjs +51 -3
- package/scripts/auditable-demo-platform.mjs +59 -1
- package/scripts/auditable-demo-transport-smoke.mjs +176 -0
- package/scripts/build-standalone-binary.mjs +3 -1
- package/scripts/buildchain-cli-help.mjs +1 -1
- package/scripts/check-inventory.mjs +1 -0
- package/scripts/compiler-cache-evidence.mjs +90 -7
- package/scripts/dev-alpha-candidate-patrol.mjs +80 -5
- package/scripts/dev-pr-auto-merge.mjs +4 -4
- package/scripts/dev-qualification-patrol.mjs +594 -0
- package/scripts/dispatch-artifact-signing-authority.mjs +312 -61
- package/scripts/generate-site-bundle.mjs +3 -0
- package/scripts/inspect-artifact-signing-requests.mjs +12 -0
- package/scripts/release-propagation.mjs +73 -0
- package/scripts/run-lifecycle-core.mjs +25 -0
- package/scripts/site-capability-metadata.mjs +1 -1
- package/scripts/stable-candidate-patrol.mjs +30 -4
|
@@ -120,7 +120,7 @@ export function cliCommandMeta(id) {
|
|
|
120
120
|
"release-dry-run": { group: "governance-versioning", purpose: "Explain what a channel merge would publish before the PR is merged." },
|
|
121
121
|
"release-line-open": { group: "governance-versioning", purpose: "Plan or write the initial version-state commit for a new minor release line." },
|
|
122
122
|
"release-governance": { group: "governance-versioning", purpose: "Reconcile a managed branch's Buildchain aggregate check to an already-tested pull request SHA." },
|
|
123
|
-
"release-propagation": { group: "site-and-propagation", purpose: "
|
|
123
|
+
"release-propagation": { group: "site-and-propagation", purpose: "Route exact Paper, KFD, Buildchain, or Core Site updates through one resumable propagation Work." },
|
|
124
124
|
"release-transaction": { group: "release-passport-trust", purpose: "Inspect, recover, finalize, or abort durable release transactions." },
|
|
125
125
|
sample: { group: "observability-diagnostics", purpose: "Inspect sampler command families." },
|
|
126
126
|
"sample-process-tree": { group: "observability-diagnostics", purpose: "Sample process-tree diagnostics for a wrapped command." },
|
|
@@ -23,6 +23,20 @@ function bool(value, fallback = false) {
|
|
|
23
23
|
return ["1", "true", "yes", "on"].includes(String(value).trim().toLowerCase());
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
function autoMergeMethod(value, fallback = "merge") {
|
|
27
|
+
const normalized = text(value || fallback).toLowerCase();
|
|
28
|
+
if (!["merge", "squash", "rebase"].includes(normalized)) {
|
|
29
|
+
throw new Error(
|
|
30
|
+
`mergeMethod must be merge, squash, or rebase, got ${value || "<empty>"}`,
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
return normalized;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function shouldEnableAutoMerge(options, pullRequest) {
|
|
37
|
+
return options.autoMerge && !pullRequest.auto_merge;
|
|
38
|
+
}
|
|
39
|
+
|
|
26
40
|
function list(value) {
|
|
27
41
|
return [...new Set(String(value || "").split(/[\n,]+/).map((entry) => entry.trim()).filter(Boolean))];
|
|
28
42
|
}
|
|
@@ -67,6 +81,7 @@ export function normalizeStableCandidatePatrolOptions(options = {}) {
|
|
|
67
81
|
releaseNow: text(options.releaseNow ?? process.env.BUILDCHAIN_STABLE_PATROL_RELEASE_NOW).replace(/^v/, ""),
|
|
68
82
|
autoPromote: bool(options.autoPromote ?? process.env.BUILDCHAIN_STABLE_PATROL_AUTO_PROMOTE, false),
|
|
69
83
|
autoMerge: bool(options.autoMerge ?? process.env.BUILDCHAIN_STABLE_PATROL_AUTO_MERGE, false),
|
|
84
|
+
mergeMethod: autoMergeMethod(options.mergeMethod ?? process.env.BUILDCHAIN_STABLE_PATROL_MERGE_METHOD),
|
|
70
85
|
dryRun: bool(options.dryRun ?? process.env.BUILDCHAIN_STABLE_PATROL_DRY_RUN, true),
|
|
71
86
|
now: text(options.now ?? process.env.BUILDCHAIN_STABLE_PATROL_NOW) || new Date().toISOString(),
|
|
72
87
|
outputPath: text(options.outputPath ?? process.env.BUILDCHAIN_STABLE_PATROL_OUTPUT_PATH) || ".buildchain/patrol/stable-candidate.json",
|
|
@@ -239,7 +254,9 @@ export async function runStableCandidatePatrol(optionsInput = {}, clientInput) {
|
|
|
239
254
|
"The source-lock branch freezes the exact candidate; newer alpha publications do not alter this PR.",
|
|
240
255
|
].join("\n"),
|
|
241
256
|
});
|
|
242
|
-
if (options
|
|
257
|
+
if (shouldEnableAutoMerge(options, pullRequest)) {
|
|
258
|
+
await client.enableAutoMerge(pullRequest, options.mergeMethod);
|
|
259
|
+
}
|
|
243
260
|
promotion.pullRequest = pullRequest;
|
|
244
261
|
const storedCandidate = ledger.candidates.find((entry) => entry.version === selection.candidate.version);
|
|
245
262
|
storedCandidate.promotionRequest = {
|
|
@@ -434,9 +451,18 @@ export function createGitHubStableCandidateClient({ repository: repositoryInput,
|
|
|
434
451
|
const open = await api(`/repos/${owner}/${repo}/pulls?state=open&head=${encodeURIComponent(`${owner}:${head}`)}&base=${encodeURIComponent(base)}&per_page=20`);
|
|
435
452
|
return open[0] || api(`/repos/${owner}/${repo}/pulls`, { method: "POST", body: { head, base, title, body } });
|
|
436
453
|
},
|
|
437
|
-
async enableAutoMerge(pullRequest) {
|
|
438
|
-
const query = `mutation($id:ID!){enablePullRequestAutoMerge(input:{pullRequestId:$id,mergeMethod
|
|
439
|
-
return api("/graphql", {
|
|
454
|
+
async enableAutoMerge(pullRequest, mergeMethod) {
|
|
455
|
+
const query = `mutation($id:ID!,$mergeMethod:PullRequestMergeMethod!){enablePullRequestAutoMerge(input:{pullRequestId:$id,mergeMethod:$mergeMethod}){pullRequest{url}}}`;
|
|
456
|
+
return api("/graphql", {
|
|
457
|
+
method: "POST",
|
|
458
|
+
body: {
|
|
459
|
+
query,
|
|
460
|
+
variables: {
|
|
461
|
+
id: pullRequest.node_id,
|
|
462
|
+
mergeMethod: autoMergeMethod(mergeMethod).toUpperCase(),
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
});
|
|
440
466
|
},
|
|
441
467
|
async setVariable(name, value) {
|
|
442
468
|
const current = await api(`/repos/${owner}/${repo}/actions/variables/${encodeURIComponent(name)}`, { allow404: true });
|