@kungfu-tech/buildchain 4.1.3-alpha.2 → 4.1.3-alpha.3
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/architecture/action-taxonomy.json +8 -0
- package/architecture/agent-change-map.md +17 -0
- package/architecture/ci-lane-change-budget.json +85 -0
- package/architecture/decisions/0009-pipeline-version-preparation.md +186 -0
- package/architecture/internal-capabilities.json +32 -2
- package/architecture/maintainability-debt.json +3 -3
- package/architecture/maintainability-policy.json +7 -7
- package/architecture/minimal-consumer-migration.json +9 -0
- package/architecture/product-upstreams.json +20 -0
- package/architecture/release-topology.json +62 -25
- package/architecture/universal-workflow-bootstrap.json +2 -0
- package/architecture/universal-workflow-capability-policy.json +1 -1
- package/architecture/workflow-taxonomy.json +11 -0
- package/dist/readers/business-attempt.cjs +6 -2
- package/dist/site/buildchain-contract.json +4 -4
- package/dist/site/buildchain-site.json +9 -9
- package/dist/site/capability-registry.json +2 -2
- package/dist/site/kfd-claims.json +82 -8
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +1 -1
- package/dist/site/node-api-registry.json +18 -18
- package/dist/site/page-registry.json +4 -4
- package/dist/site/public-surface-audit.json +64 -7
- package/dist/site/publication-authority-registry.json +21 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +5 -5
- package/dist/site/workflow-registry.json +113 -7
- package/docs/node-api-reference.md +34 -34
- package/docs/workflow-catalog.md +1 -0
- package/package.json +1 -1
- package/packages/core/build/standalone/build.js +7 -1
- package/packages/core/consumer/buildchain-config.js +2 -21
- package/packages/core/consumer/contract/plan.js +48 -1
- package/packages/core/consumer/contract/products.js +20 -2
- package/packages/core/consumer/contract/reader.js +47 -0
- package/packages/core/dev-delivery/commands/project-cut-merge-queue-admission.mjs +47 -20
- package/packages/core/governance/buildchain-publication-authority.js +1 -0
- package/packages/core/providers/github/pipeline-entry-runs.js +203 -0
- package/packages/core/providers/github/pipeline-release-evidence.js +111 -0
- package/packages/core/providers/github/pipeline-stable-source.js +354 -0
- package/packages/core/providers/github/pipeline-version-artifacts.js +91 -0
- package/packages/core/providers/github/pipeline-version-readback.js +117 -0
- package/packages/core/providers/github/pipeline-version.js +10 -12
- package/packages/core/publication/pipeline/actions.js +17 -1
- package/packages/core/publication/pipeline/apply.js +23 -17
- package/packages/core/publication/pipeline/development-pr.js +28 -1
- package/packages/core/publication/pipeline/documents.js +37 -1
- package/packages/core/publication/pipeline/next-development.js +1 -0
- package/packages/core/publication/pipeline/pack.js +7 -1
- package/packages/core/publication/pipeline/plan.js +22 -0
- package/packages/core/publication/pipeline/prepare.js +44 -56
- package/packages/core/publication/pipeline/qualification.js +5 -0
- package/packages/core/publication/pipeline/stable-entry.js +215 -0
- package/packages/core/publication/pipeline/stable-products.js +317 -0
- package/packages/core/publication/pipeline/stable-wait.js +170 -0
- package/packages/core/publication/pipeline/stable.js +82 -0
- package/packages/core/publication/pipeline/version-actions.js +93 -0
- package/packages/core/publication/pipeline/version-build.js +130 -0
- package/packages/core/publication/pipeline/version-context.js +143 -0
- package/packages/core/publication/pipeline/version-material.js +36 -0
- package/packages/core/publication/pipeline/version-preparation.js +69 -0
- package/packages/core/publication/pipeline/version-regeneration.js +162 -0
- package/packages/core/publication/pipeline/version-source-guard.js +69 -0
- package/packages/core/publication/pipeline/worker.js +72 -0
- package/packages/core/release/stable-release-gate.js +11 -0
- package/packages/core/workflow/attempt/identity.js +7 -2
- package/packages/core/workflow/pipeline/actions.js +14 -1
- package/packages/core/workflow/pipeline/build.js +49 -2
- package/scripts/check-pipeline-publication-topology.mjs +12 -0
- package/scripts/check-release-topology.mjs +1 -0
- package/scripts/generate-site-bundle.mjs +1 -1
- package/scripts/verify-standalone-product.mjs +42 -0
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
".github/workflows/.release-authority.yml",
|
|
15
15
|
".github/workflows/.release-binary-assets.yml",
|
|
16
16
|
".github/workflows/.release-pipeline-products.yml",
|
|
17
|
+
".github/workflows/.release-pipeline-version.yml",
|
|
17
18
|
".github/workflows/.release-promote.yml",
|
|
18
19
|
".github/workflows/build.yml",
|
|
19
20
|
".github/workflows/public-build-demo.yml",
|
|
@@ -116,7 +117,8 @@
|
|
|
116
117
|
"packages/core/release/next-development/actions.js",
|
|
117
118
|
"packages/core/publication/oci/preview-actions.js",
|
|
118
119
|
"packages/core/publication/settlement/actions.js",
|
|
119
|
-
"packages/core/publication/pipeline/actions.js"
|
|
120
|
+
"packages/core/publication/pipeline/actions.js",
|
|
121
|
+
"packages/core/publication/pipeline/version-actions.js"
|
|
120
122
|
],
|
|
121
123
|
"modules": [
|
|
122
124
|
"packages/core/adoption/kfd-adopter-manifest.js",
|
|
@@ -134,6 +136,7 @@
|
|
|
134
136
|
"packages/core/consumer/contract/identity.js",
|
|
135
137
|
"packages/core/consumer/contract/plan.js",
|
|
136
138
|
"packages/core/consumer/contract/products.js",
|
|
139
|
+
"packages/core/consumer/contract/reader.js",
|
|
137
140
|
"packages/core/consumer/contract/shape.js",
|
|
138
141
|
"packages/core/consumer/floating-consumer-evidence.js",
|
|
139
142
|
"packages/core/consumer/floating-consumer-policy.js",
|
|
@@ -189,14 +192,19 @@
|
|
|
189
192
|
"packages/core/providers/github/discussions/transport.js",
|
|
190
193
|
"packages/core/providers/github/graphql-errors.js",
|
|
191
194
|
"packages/core/providers/github/json-client.js",
|
|
195
|
+
"packages/core/providers/github/pipeline-entry-runs.js",
|
|
192
196
|
"packages/core/providers/github/pipeline-integration.js",
|
|
193
197
|
"packages/core/providers/github/pipeline-policy.js",
|
|
194
198
|
"packages/core/providers/github/pipeline-product-payload.js",
|
|
195
199
|
"packages/core/providers/github/pipeline-product-release.js",
|
|
196
200
|
"packages/core/providers/github/pipeline-publication-artifacts.js",
|
|
201
|
+
"packages/core/providers/github/pipeline-release-evidence.js",
|
|
197
202
|
"packages/core/providers/github/pipeline-run-entry.js",
|
|
198
203
|
"packages/core/providers/github/pipeline-runs.js",
|
|
199
204
|
"packages/core/providers/github/pipeline-source.js",
|
|
205
|
+
"packages/core/providers/github/pipeline-stable-source.js",
|
|
206
|
+
"packages/core/providers/github/pipeline-version-artifacts.js",
|
|
207
|
+
"packages/core/providers/github/pipeline-version-readback.js",
|
|
200
208
|
"packages/core/providers/github/pipeline-version.js",
|
|
201
209
|
"packages/core/providers/github/pipeline-worker.js",
|
|
202
210
|
"packages/core/providers/github/release-assets.js",
|
|
@@ -258,7 +266,19 @@
|
|
|
258
266
|
"packages/core/publication/pipeline/settle.js",
|
|
259
267
|
"packages/core/publication/pipeline/signing.js",
|
|
260
268
|
"packages/core/publication/pipeline/source-plan.js",
|
|
269
|
+
"packages/core/publication/pipeline/stable-entry.js",
|
|
270
|
+
"packages/core/publication/pipeline/stable-products.js",
|
|
271
|
+
"packages/core/publication/pipeline/stable-wait.js",
|
|
272
|
+
"packages/core/publication/pipeline/stable.js",
|
|
273
|
+
"packages/core/publication/pipeline/version-actions.js",
|
|
274
|
+
"packages/core/publication/pipeline/version-build.js",
|
|
275
|
+
"packages/core/publication/pipeline/version-context.js",
|
|
276
|
+
"packages/core/publication/pipeline/version-material.js",
|
|
277
|
+
"packages/core/publication/pipeline/version-preparation.js",
|
|
278
|
+
"packages/core/publication/pipeline/version-regeneration.js",
|
|
279
|
+
"packages/core/publication/pipeline/version-source-guard.js",
|
|
261
280
|
"packages/core/publication/pipeline/version.js",
|
|
281
|
+
"packages/core/publication/pipeline/worker.js",
|
|
262
282
|
"packages/core/publication/publication-artifact-candidate.js",
|
|
263
283
|
"packages/core/publication/publication-authority.js",
|
|
264
284
|
"packages/core/publication/publication-development.js",
|
|
@@ -345,6 +365,7 @@
|
|
|
345
365
|
"packages/core/release/release-tail-provider-plane.js",
|
|
346
366
|
"packages/core/release/release-train.js",
|
|
347
367
|
"packages/core/release/reuse-complete-release.js",
|
|
368
|
+
"packages/core/release/stable-release-gate.js",
|
|
348
369
|
"packages/core/release/version-state.js",
|
|
349
370
|
"packages/core/release/version-state/verification.js",
|
|
350
371
|
"packages/core/runtime/action-process.mjs",
|
|
@@ -389,7 +410,7 @@
|
|
|
389
410
|
"packages/core/workflow/pipeline/wake.js",
|
|
390
411
|
"packages/core/workflow/pipeline/web-status.js"
|
|
391
412
|
],
|
|
392
|
-
"root": "sha256:
|
|
413
|
+
"root": "sha256:5d735b6117bdc114550e736cec02b396e51a3cc284d59d704e906ae8aaceb7c1"
|
|
393
414
|
},
|
|
394
415
|
"rustWasmAuthority": {
|
|
395
416
|
"loader": "packages/core/runtime/domain-wasm.js",
|
|
@@ -529,11 +550,11 @@
|
|
|
529
550
|
}
|
|
530
551
|
],
|
|
531
552
|
"metrics": {
|
|
532
|
-
"workflowCount":
|
|
533
|
-
"jobCount":
|
|
534
|
-
"reusableEdgeCount":
|
|
535
|
-
"mutationRelevantNodeCount":
|
|
536
|
-
"contentsWriteJobCount":
|
|
553
|
+
"workflowCount": 39,
|
|
554
|
+
"jobCount": 116,
|
|
555
|
+
"reusableEdgeCount": 26,
|
|
556
|
+
"mutationRelevantNodeCount": 77,
|
|
557
|
+
"contentsWriteJobCount": 38,
|
|
537
558
|
"oidcWriteJobCount": 25
|
|
538
559
|
},
|
|
539
560
|
"semanticMetrics": {
|
|
@@ -590,15 +611,16 @@
|
|
|
590
611
|
".github/workflows/.release-pipeline-products.yml",
|
|
591
612
|
".github/workflows/public-ops-pipeline.yml",
|
|
592
613
|
".github/workflows/public-ops-recover.yml",
|
|
593
|
-
".github/workflows/.ops-pipeline-execute.yml"
|
|
614
|
+
".github/workflows/.ops-pipeline-execute.yml",
|
|
615
|
+
".github/workflows/.release-pipeline-version.yml"
|
|
594
616
|
],
|
|
595
617
|
"authority": "retained-protected-source-qualified-sealed-products-and-live-provider-readback",
|
|
596
618
|
"maximumMetrics": {
|
|
597
|
-
"workflowCount":
|
|
598
|
-
"jobCount":
|
|
599
|
-
"reusableEdgeCount":
|
|
600
|
-
"mutationRelevantNodeCount":
|
|
601
|
-
"contentsWriteJobCount":
|
|
619
|
+
"workflowCount": 5,
|
|
620
|
+
"jobCount": 21,
|
|
621
|
+
"reusableEdgeCount": 6,
|
|
622
|
+
"mutationRelevantNodeCount": 16,
|
|
623
|
+
"contentsWriteJobCount": 16,
|
|
602
624
|
"oidcWriteJobCount": 6
|
|
603
625
|
},
|
|
604
626
|
"observedTopology": {
|
|
@@ -616,13 +638,18 @@
|
|
|
616
638
|
"path": ".github/workflows/.release-pipeline-products.yml",
|
|
617
639
|
"triggers": ["workflow_call"],
|
|
618
640
|
"jobs": [
|
|
619
|
-
"apply|runner|-|write|write
|
|
641
|
+
"apply|runner|-|write|write|jobOutput|contents-write,oidc-write",
|
|
620
642
|
"build|runner|-|read|-|-|-",
|
|
643
|
+
"development|reusable-call|./.github/workflows/.release-pipeline-version.yml|write|-|-|contents-write",
|
|
644
|
+
"materialize|reusable-call|./.github/workflows/.release-pipeline-version.yml|write|-|-|contents-write",
|
|
621
645
|
"prepare|runner|-|write|-|jobOutput|contents-write",
|
|
622
646
|
"qualify|runner|-|write|write|-|contents-write,oidc-write",
|
|
623
|
-
"settle|runner|-|write|write
|
|
647
|
+
"settle|runner|-|write|write|jobOutput|contents-write,oidc-write"
|
|
624
648
|
],
|
|
625
|
-
"reusableEdges": [
|
|
649
|
+
"reusableEdges": [
|
|
650
|
+
"./.github/workflows/.release-pipeline-version.yml",
|
|
651
|
+
"./.github/workflows/.release-pipeline-version.yml"
|
|
652
|
+
]
|
|
626
653
|
},
|
|
627
654
|
{
|
|
628
655
|
"path": ".github/workflows/public-ops-pipeline.yml",
|
|
@@ -652,26 +679,36 @@
|
|
|
652
679
|
"delivery|reusable-call|./.github/workflows/.ops-pipeline-delivery.yml|write|-|-|contents-write",
|
|
653
680
|
"publication|reusable-call|./.github/workflows/.release-pipeline-products.yml|write|write|-|contents-write,oidc-write",
|
|
654
681
|
"record-build|runner|-|write|-|-|contents-write",
|
|
655
|
-
"record-delivery|runner|-|write|-|-|contents-write"
|
|
682
|
+
"record-delivery|runner|-|write|-|-|contents-write",
|
|
683
|
+
"stable-recheck|runner|-|write|-|-|contents-write"
|
|
656
684
|
],
|
|
657
685
|
"reusableEdges": [
|
|
658
686
|
"./.github/workflows/.ops-pipeline-delivery.yml",
|
|
659
687
|
"./.github/workflows/.release-pipeline-products.yml"
|
|
660
688
|
]
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"path": ".github/workflows/.release-pipeline-version.yml",
|
|
692
|
+
"triggers": ["workflow_call"],
|
|
693
|
+
"jobs": [
|
|
694
|
+
"build|runner|-|read|-|-|-",
|
|
695
|
+
"materialize|runner|-|write|-|jobOutput|contents-write"
|
|
696
|
+
],
|
|
697
|
+
"reusableEdges": []
|
|
661
698
|
}
|
|
662
699
|
],
|
|
663
700
|
"metrics": {
|
|
664
|
-
"workflowCount":
|
|
665
|
-
"jobCount":
|
|
666
|
-
"reusableEdgeCount":
|
|
667
|
-
"mutationRelevantNodeCount":
|
|
668
|
-
"contentsWriteJobCount":
|
|
701
|
+
"workflowCount": 5,
|
|
702
|
+
"jobCount": 21,
|
|
703
|
+
"reusableEdgeCount": 6,
|
|
704
|
+
"mutationRelevantNodeCount": 16,
|
|
705
|
+
"contentsWriteJobCount": 16,
|
|
669
706
|
"oidcWriteJobCount": 6
|
|
670
707
|
},
|
|
671
708
|
"semanticMetrics": {
|
|
672
|
-
"workflowCount":
|
|
673
|
-
"mutationRelevantNodeCount":
|
|
674
|
-
"contentsWriteJobCount":
|
|
709
|
+
"workflowCount": 5,
|
|
710
|
+
"mutationRelevantNodeCount": 16,
|
|
711
|
+
"contentsWriteJobCount": 10,
|
|
675
712
|
"oidcWriteJobCount": 3
|
|
676
713
|
}
|
|
677
714
|
}
|
|
@@ -121,6 +121,7 @@
|
|
|
121
121
|
".github/workflows/.release-authority.yml",
|
|
122
122
|
".github/workflows/.release-binary-assets.yml",
|
|
123
123
|
".github/workflows/.release-pipeline-products.yml",
|
|
124
|
+
".github/workflows/.release-pipeline-version.yml",
|
|
124
125
|
".github/workflows/.release-promote.yml",
|
|
125
126
|
".github/workflows/build.yml",
|
|
126
127
|
".github/workflows/public-build-adopter-qualification.yml",
|
|
@@ -168,6 +169,7 @@
|
|
|
168
169
|
".github/workflows/.release-authority.yml",
|
|
169
170
|
".github/workflows/.release-binary-assets.yml",
|
|
170
171
|
".github/workflows/.release-pipeline-products.yml",
|
|
172
|
+
".github/workflows/.release-pipeline-version.yml",
|
|
171
173
|
".github/workflows/.release-promote.yml",
|
|
172
174
|
".github/workflows/build.yml",
|
|
173
175
|
".github/workflows/public-build-adopter-qualification.yml",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"sha256:dd9ae24a7a586c616a7b3b2b733eb38bfd3f8b19e5faec9e16851719be6abd61",
|
|
60
60
|
"sha256:deee1c61c9731de6e2120abd4c30d3ce760df2ff3f7afb4dd84973543b353660",
|
|
61
61
|
"sha256:e207436baa946b3d25d0159a510b7da474cac8d33701c2e66c089117c05f473d",
|
|
62
|
-
"sha256:
|
|
62
|
+
"sha256:e42c7878242188da76b146480ae7b1d1cc454eb93942d2071e97e458b2c12e2f",
|
|
63
63
|
"sha256:f780070e235bffdee96fc355d7ed5e2fd4188482c41b24e2558a32086634a87c"
|
|
64
64
|
],
|
|
65
65
|
"validFrom": "2026-08-30T00:00:00.000Z",
|
|
@@ -797,6 +797,17 @@
|
|
|
797
797
|
"status": "active",
|
|
798
798
|
"invocation": "reusable",
|
|
799
799
|
"rationale": "Share credentialless product execution and protected delivery between normal and recovery public entries."
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"id": ".pipeline-version",
|
|
803
|
+
"role": "component",
|
|
804
|
+
"category": "release",
|
|
805
|
+
"purpose": "pipeline-version",
|
|
806
|
+
"summary": "Internal pipeline version preparation",
|
|
807
|
+
"owner": "kungfu-origin",
|
|
808
|
+
"status": "active",
|
|
809
|
+
"invocation": "reusable",
|
|
810
|
+
"rationale": "Regenerate declared version material in credentialless product jobs and independently qualify it before publication or protected next-development Git writes."
|
|
800
811
|
}
|
|
801
812
|
]
|
|
802
813
|
}
|
|
@@ -366,7 +366,7 @@ function pipelineIntent({
|
|
|
366
366
|
source: { kind: "pipeline", repositoryId, pullRequest, targetBranch }
|
|
367
367
|
});
|
|
368
368
|
}
|
|
369
|
-
function
|
|
369
|
+
function validateConsumerSource(source, repository) {
|
|
370
370
|
object(
|
|
371
371
|
source,
|
|
372
372
|
[
|
|
@@ -382,12 +382,16 @@ function sourceGeneration(intent, source, baseCommit) {
|
|
|
382
382
|
[],
|
|
383
383
|
"source"
|
|
384
384
|
);
|
|
385
|
-
if (source.schema !== "buildchain.consumer-source/v1" || source.contract !== CONSUMER_CONTRACT || source.repository !==
|
|
385
|
+
if (source.schema !== "buildchain.consumer-source/v1" || source.contract !== CONSUMER_CONTRACT || source.repository !== repository)
|
|
386
386
|
throw new Error("Generation requires the admitted consumer source");
|
|
387
387
|
for (const key of ["commit", "tree", "configBlob"])
|
|
388
388
|
text(source[key], `source.${key}`, /^[0-9a-f]{40}$/u);
|
|
389
389
|
relativePath(source.configPath, "source.configPath");
|
|
390
390
|
text(source.configDigest, "source.configDigest", ROOT);
|
|
391
|
+
return source;
|
|
392
|
+
}
|
|
393
|
+
function sourceGeneration(intent, source, baseCommit) {
|
|
394
|
+
validateConsumerSource(source, intent.repository);
|
|
391
395
|
text(baseCommit, "baseCommit", /^[0-9a-f]{40}$/u);
|
|
392
396
|
const value = {
|
|
393
397
|
schema: SOURCE_GENERATION,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "4.1.3-alpha.
|
|
7
|
+
"version": "4.1.3-alpha.3",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v4",
|
|
@@ -987,7 +987,7 @@
|
|
|
987
987
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
988
988
|
],
|
|
989
989
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
990
|
-
"auditDigest": "sha256:
|
|
990
|
+
"auditDigest": "sha256:6b99a17ba7daa7c1827aa4ec7c09fa257a83f6d2d757c792b7a8ad6f715ea3a5"
|
|
991
991
|
},
|
|
992
992
|
{
|
|
993
993
|
"contractVersion": 1,
|
|
@@ -1009,7 +1009,7 @@
|
|
|
1009
1009
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
1010
1010
|
],
|
|
1011
1011
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
1012
|
-
"auditDigest": "sha256:
|
|
1012
|
+
"auditDigest": "sha256:f2a284495f978223d736f0a1af59383d53b4e67262ebe480256ab7929ecebe65"
|
|
1013
1013
|
},
|
|
1014
1014
|
{
|
|
1015
1015
|
"contractVersion": 1,
|
|
@@ -2410,5 +2410,5 @@
|
|
|
2410
2410
|
"compatibilityFactCutRoot": "sha256:58f33e498596505a26b6fc3c7ae5acef847ff699eee6c7e17a7b318a40bdf0d6",
|
|
2411
2411
|
"compatibilityProofRegistryRoot": "sha256:2f6477405c7891b754b33ad6515d55618bd320e7cdc59330d7cc645e17201e72",
|
|
2412
2412
|
"compatibilityDigest": "sha256:14368a3f99f38a8c9c1e053f7ec3651766e3535237f4c551cc75417cf7ef97b3",
|
|
2413
|
-
"contractDigest": "sha256:
|
|
2413
|
+
"contractDigest": "sha256:b00c1b80a72da4ab13d19687870f70251e651e0823f62fd3b34787f1ecab2a12"
|
|
2414
2414
|
}
|