@kungfu-tech/buildchain 2.12.2 → 2.12.3-alpha.2
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/actions/promote-buildchain-ref/README.md +20 -1
- package/dist/site/buildchain-contract.json +54 -8
- package/dist/site/buildchain-site.json +23 -18
- package/dist/site/kfd-claims.json +4 -3
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +4 -4
- package/dist/site/node-api-registry.json +2 -2
- package/dist/site/page-registry.json +15 -10
- package/dist/site/public-surface-audit.json +4 -3
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +8 -8
- package/dist/site/workflow-registry.json +2 -1
- package/docs/publish-transaction.md +82 -1
- package/docs/release-governance.md +8 -0
- package/docs/release-passport.md +3 -1
- package/docs/reusable-build-surface.md +4 -1
- package/package.json +1 -1
- package/packages/core/buildchain-contract.js +34 -0
- package/packages/core/publish-transaction.js +287 -15
- package/packages/core/release-passport.js +60 -6
|
@@ -94,6 +94,15 @@ configuration diagnostic instead of opening a post-publish human PR. Reusable
|
|
|
94
94
|
wrapper callers should allow `checks: write` so the generated check is owned by
|
|
95
95
|
GitHub Actions and matches the managed branch protection rule.
|
|
96
96
|
|
|
97
|
+
Stable promotion also protects concurrent development work. The reusable
|
|
98
|
+
wrapper checks out the exact current `dev/vN/vN.M` head as a reconciliation
|
|
99
|
+
workspace. If next-alpha bookkeeping cannot fast-forward that branch, the
|
|
100
|
+
action reruns the declared version-state generation and verification from that
|
|
101
|
+
dev tree, creates a two-parent reconciliation commit from the regenerated
|
|
102
|
+
files, and fails closed if the checkout moved before the mutation boundary.
|
|
103
|
+
This prevents generated projections from an older release tree from replacing
|
|
104
|
+
capabilities that reached dev while the release was in progress.
|
|
105
|
+
|
|
97
106
|
For Buildchain-owned automation, callers may pass
|
|
98
107
|
`branch-protection-bypass-apps`, `branch-protection-bypass-users`, or
|
|
99
108
|
`branch-protection-bypass-teams`. The action still configures managed
|
|
@@ -238,8 +247,17 @@ BUILDCHAIN_RELEASE_SHA
|
|
|
238
247
|
BUILDCHAIN_RELEASE_MATERIAL_SHA
|
|
239
248
|
BUILDCHAIN_PUBLISH_TOOLING_SHA
|
|
240
249
|
BUILDCHAIN_PUBLISH_EVIDENCE
|
|
250
|
+
BUILDCHAIN_REQUIRED_ARTIFACTS
|
|
241
251
|
```
|
|
242
252
|
|
|
253
|
+
`BUILDCHAIN_REQUIRED_ARTIFACTS` is the normalized requirement array after the
|
|
254
|
+
action resolves a missing artifact `ref` to `BUILDCHAIN_VERSION`, or expands an
|
|
255
|
+
optional `ref_template` containing exactly one `{version}`, and binds any
|
|
256
|
+
declared provenance to the current release coordinate. Template expansion
|
|
257
|
+
happens after exact version selection; ambiguous or unsupported templates fail
|
|
258
|
+
before `lifecycle.publish`. Requirement descriptors may omit `digest`; final
|
|
259
|
+
publish evidence may not.
|
|
260
|
+
|
|
243
261
|
The action outputs `transaction-id`, `transaction-state`,
|
|
244
262
|
`transaction-exact-tag`, `public-release-tag`, `transaction-release-sha`,
|
|
245
263
|
`transaction-state-ref`, `transaction-state-sha`, `transaction-state-path`,
|
|
@@ -315,7 +333,8 @@ missing floating tags or dev/alpha refs before marking the transaction
|
|
|
315
333
|
|
|
316
334
|
Normal reruns accept already-published artifacts only when evidence matches.
|
|
317
335
|
Missing required artifacts can be published on the next run. Conflicting
|
|
318
|
-
|
|
336
|
+
refs, digests, or declared provenance put the transaction into
|
|
337
|
+
`repair_required`; `abandoned` and
|
|
319
338
|
`failed_permanently` also fail closed unless `publish-transaction-override` is
|
|
320
339
|
set for a controlled repair.
|
|
321
340
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "2.12.2",
|
|
7
|
+
"version": "2.12.3-alpha.2",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v2",
|
|
@@ -127,6 +127,29 @@
|
|
|
127
127
|
"github-release-title",
|
|
128
128
|
"github-release-notes"
|
|
129
129
|
],
|
|
130
|
+
"publishArtifactSchema": {
|
|
131
|
+
"requirementDigest": "optional-before-publish-required-after-publish",
|
|
132
|
+
"exactRefResolution": "missing requirement refs resolve to the promoted exact version",
|
|
133
|
+
"exactRefTemplate": "optional ref_template expands one {version} after exact version selection",
|
|
134
|
+
"provenanceActions": [
|
|
135
|
+
"built",
|
|
136
|
+
"reused"
|
|
137
|
+
],
|
|
138
|
+
"provenanceCoordinates": [
|
|
139
|
+
"content",
|
|
140
|
+
"release"
|
|
141
|
+
],
|
|
142
|
+
"verificationFields": [
|
|
143
|
+
"public_manifest",
|
|
144
|
+
"ref",
|
|
145
|
+
"digest",
|
|
146
|
+
"platform",
|
|
147
|
+
"contract_major",
|
|
148
|
+
"parent_digest",
|
|
149
|
+
"smoke",
|
|
150
|
+
"evidence"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
130
153
|
"guarantees": [
|
|
131
154
|
"promotion reuses PR-stage release-candidate artifacts",
|
|
132
155
|
"promotion does not run the heavy native build matrix",
|
|
@@ -136,7 +159,7 @@
|
|
|
136
159
|
"GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
|
|
137
160
|
],
|
|
138
161
|
"breakingDigest": "sha256:6dbae32ce3d7aab3be6957065105af574794581847b7637314dad45f5349c919",
|
|
139
|
-
"auditDigest": "sha256:
|
|
162
|
+
"auditDigest": "sha256:4de3e10012429d18f066e453a49a470ae889612143bca56327649d6cacd546cf"
|
|
140
163
|
},
|
|
141
164
|
{
|
|
142
165
|
"contractVersion": 1,
|
|
@@ -216,6 +239,29 @@
|
|
|
216
239
|
"github-release-title",
|
|
217
240
|
"github-release-notes"
|
|
218
241
|
],
|
|
242
|
+
"publishArtifactSchema": {
|
|
243
|
+
"requirementDigest": "optional-before-publish-required-after-publish",
|
|
244
|
+
"exactRefResolution": "missing requirement refs resolve to the promoted exact version",
|
|
245
|
+
"exactRefTemplate": "optional ref_template expands one {version} after exact version selection",
|
|
246
|
+
"provenanceActions": [
|
|
247
|
+
"built",
|
|
248
|
+
"reused"
|
|
249
|
+
],
|
|
250
|
+
"provenanceCoordinates": [
|
|
251
|
+
"content",
|
|
252
|
+
"release"
|
|
253
|
+
],
|
|
254
|
+
"verificationFields": [
|
|
255
|
+
"public_manifest",
|
|
256
|
+
"ref",
|
|
257
|
+
"digest",
|
|
258
|
+
"platform",
|
|
259
|
+
"contract_major",
|
|
260
|
+
"parent_digest",
|
|
261
|
+
"smoke",
|
|
262
|
+
"evidence"
|
|
263
|
+
]
|
|
264
|
+
},
|
|
219
265
|
"guarantees": [
|
|
220
266
|
"protected release refs and durable release-state are finalized by Buildchain",
|
|
221
267
|
"release passport finalization is idempotent after publish side effects",
|
|
@@ -223,7 +269,7 @@
|
|
|
223
269
|
"semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata derived from the public release tag"
|
|
224
270
|
],
|
|
225
271
|
"breakingDigest": "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874",
|
|
226
|
-
"auditDigest": "sha256:
|
|
272
|
+
"auditDigest": "sha256:61edd187a303c33eeef28ccca138e46d7494645b16e6df72719b6d632b0d8e80"
|
|
227
273
|
},
|
|
228
274
|
{
|
|
229
275
|
"contractVersion": 1,
|
|
@@ -282,7 +328,7 @@
|
|
|
282
328
|
"release-state SHA is recorded as a durable audit entrance"
|
|
283
329
|
],
|
|
284
330
|
"breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
|
|
285
|
-
"auditDigest": "sha256:
|
|
331
|
+
"auditDigest": "sha256:54c23c984ab1e63f8fa5310f0106927ea63c6b069219970b9145c31558c47db0"
|
|
286
332
|
},
|
|
287
333
|
{
|
|
288
334
|
"contractVersion": 1,
|
|
@@ -331,7 +377,7 @@
|
|
|
331
377
|
"prose-only public claims downgrade the release trust passport audit"
|
|
332
378
|
],
|
|
333
379
|
"breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
|
|
334
|
-
"auditDigest": "sha256:
|
|
380
|
+
"auditDigest": "sha256:54c23c984ab1e63f8fa5310f0106927ea63c6b069219970b9145c31558c47db0"
|
|
335
381
|
},
|
|
336
382
|
{
|
|
337
383
|
"contractVersion": 1,
|
|
@@ -481,7 +527,7 @@
|
|
|
481
527
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
482
528
|
],
|
|
483
529
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
484
|
-
"auditDigest": "sha256:
|
|
530
|
+
"auditDigest": "sha256:a4d5ae2cf51f16cc1c1ab9d344ea044e881e3a7653ca4ae4aff1f3e95d556cf9"
|
|
485
531
|
},
|
|
486
532
|
{
|
|
487
533
|
"contractVersion": 1,
|
|
@@ -503,9 +549,9 @@
|
|
|
503
549
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
504
550
|
],
|
|
505
551
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
506
|
-
"auditDigest": "sha256:
|
|
552
|
+
"auditDigest": "sha256:4458f86ab03e26015a1247fcf6fd89837256b39ecd7e82dfde2140e8967d2eb0"
|
|
507
553
|
}
|
|
508
554
|
],
|
|
509
555
|
"compatibilityDigest": "sha256:2090784977bc7d54fc647215ef73532b9db26147a0b40ec3f56c31d611d806cc",
|
|
510
|
-
"contractDigest": "sha256:
|
|
556
|
+
"contractDigest": "sha256:97e39d3211a9f6423c4074993eba9f7c1a688204825fa5e27b5ff0db62bfb0c7"
|
|
511
557
|
}
|