@kungfu-tech/buildchain 2.12.2 → 2.12.3-alpha.1
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 +17 -1
- package/dist/site/buildchain-contract.json +52 -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 +76 -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 +32 -0
- package/packages/core/publish-transaction.js +265 -14
- 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,14 @@ 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` and binds any
|
|
255
|
+
declared provenance to the current release coordinate. Requirement descriptors
|
|
256
|
+
may omit `digest`; final publish evidence may not.
|
|
257
|
+
|
|
243
258
|
The action outputs `transaction-id`, `transaction-state`,
|
|
244
259
|
`transaction-exact-tag`, `public-release-tag`, `transaction-release-sha`,
|
|
245
260
|
`transaction-state-ref`, `transaction-state-sha`, `transaction-state-path`,
|
|
@@ -315,7 +330,8 @@ missing floating tags or dev/alpha refs before marking the transaction
|
|
|
315
330
|
|
|
316
331
|
Normal reruns accept already-published artifacts only when evidence matches.
|
|
317
332
|
Missing required artifacts can be published on the next run. Conflicting
|
|
318
|
-
|
|
333
|
+
refs, digests, or declared provenance put the transaction into
|
|
334
|
+
`repair_required`; `abandoned` and
|
|
319
335
|
`failed_permanently` also fail closed unless `publish-transaction-override` is
|
|
320
336
|
set for a controlled repair.
|
|
321
337
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "2.12.
|
|
7
|
+
"version": "2.12.3-alpha.1",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v2",
|
|
@@ -127,6 +127,28 @@
|
|
|
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
|
+
"provenanceActions": [
|
|
134
|
+
"built",
|
|
135
|
+
"reused"
|
|
136
|
+
],
|
|
137
|
+
"provenanceCoordinates": [
|
|
138
|
+
"content",
|
|
139
|
+
"release"
|
|
140
|
+
],
|
|
141
|
+
"verificationFields": [
|
|
142
|
+
"public_manifest",
|
|
143
|
+
"ref",
|
|
144
|
+
"digest",
|
|
145
|
+
"platform",
|
|
146
|
+
"contract_major",
|
|
147
|
+
"parent_digest",
|
|
148
|
+
"smoke",
|
|
149
|
+
"evidence"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
130
152
|
"guarantees": [
|
|
131
153
|
"promotion reuses PR-stage release-candidate artifacts",
|
|
132
154
|
"promotion does not run the heavy native build matrix",
|
|
@@ -136,7 +158,7 @@
|
|
|
136
158
|
"GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
|
|
137
159
|
],
|
|
138
160
|
"breakingDigest": "sha256:6dbae32ce3d7aab3be6957065105af574794581847b7637314dad45f5349c919",
|
|
139
|
-
"auditDigest": "sha256:
|
|
161
|
+
"auditDigest": "sha256:bf2a50bbcf74dcae9e7cf71de8c075bfd03bffea81a6322efcb2521520f5051b"
|
|
140
162
|
},
|
|
141
163
|
{
|
|
142
164
|
"contractVersion": 1,
|
|
@@ -216,6 +238,28 @@
|
|
|
216
238
|
"github-release-title",
|
|
217
239
|
"github-release-notes"
|
|
218
240
|
],
|
|
241
|
+
"publishArtifactSchema": {
|
|
242
|
+
"requirementDigest": "optional-before-publish-required-after-publish",
|
|
243
|
+
"exactRefResolution": "missing requirement refs resolve to the promoted exact version",
|
|
244
|
+
"provenanceActions": [
|
|
245
|
+
"built",
|
|
246
|
+
"reused"
|
|
247
|
+
],
|
|
248
|
+
"provenanceCoordinates": [
|
|
249
|
+
"content",
|
|
250
|
+
"release"
|
|
251
|
+
],
|
|
252
|
+
"verificationFields": [
|
|
253
|
+
"public_manifest",
|
|
254
|
+
"ref",
|
|
255
|
+
"digest",
|
|
256
|
+
"platform",
|
|
257
|
+
"contract_major",
|
|
258
|
+
"parent_digest",
|
|
259
|
+
"smoke",
|
|
260
|
+
"evidence"
|
|
261
|
+
]
|
|
262
|
+
},
|
|
219
263
|
"guarantees": [
|
|
220
264
|
"protected release refs and durable release-state are finalized by Buildchain",
|
|
221
265
|
"release passport finalization is idempotent after publish side effects",
|
|
@@ -223,7 +267,7 @@
|
|
|
223
267
|
"semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata derived from the public release tag"
|
|
224
268
|
],
|
|
225
269
|
"breakingDigest": "sha256:a59f0910e6df842e7699139472e5dd69ac2fdd7f7213bf2cb346d1d622556874",
|
|
226
|
-
"auditDigest": "sha256:
|
|
270
|
+
"auditDigest": "sha256:cf039e6b9b1c89d462ffe480b3fc399e91e0981d86814bd33dc84e2fbb7e6cdc"
|
|
227
271
|
},
|
|
228
272
|
{
|
|
229
273
|
"contractVersion": 1,
|
|
@@ -282,7 +326,7 @@
|
|
|
282
326
|
"release-state SHA is recorded as a durable audit entrance"
|
|
283
327
|
],
|
|
284
328
|
"breakingDigest": "sha256:b627e1b2ece9b6049517a942c5139e342e6077cdd3d8962d61cef8481b1f70ad",
|
|
285
|
-
"auditDigest": "sha256:
|
|
329
|
+
"auditDigest": "sha256:54c23c984ab1e63f8fa5310f0106927ea63c6b069219970b9145c31558c47db0"
|
|
286
330
|
},
|
|
287
331
|
{
|
|
288
332
|
"contractVersion": 1,
|
|
@@ -331,7 +375,7 @@
|
|
|
331
375
|
"prose-only public claims downgrade the release trust passport audit"
|
|
332
376
|
],
|
|
333
377
|
"breakingDigest": "sha256:f0b636eb925ddbf45ff1a8872454ab7b4dd98857cac12bb75217830130e62a16",
|
|
334
|
-
"auditDigest": "sha256:
|
|
378
|
+
"auditDigest": "sha256:54c23c984ab1e63f8fa5310f0106927ea63c6b069219970b9145c31558c47db0"
|
|
335
379
|
},
|
|
336
380
|
{
|
|
337
381
|
"contractVersion": 1,
|
|
@@ -481,7 +525,7 @@
|
|
|
481
525
|
"manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
|
|
482
526
|
],
|
|
483
527
|
"breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
|
|
484
|
-
"auditDigest": "sha256:
|
|
528
|
+
"auditDigest": "sha256:52e3af74c41d722c0359cc9bf4e22e2cc50ec80d7b7402505ad28579c385371a"
|
|
485
529
|
},
|
|
486
530
|
{
|
|
487
531
|
"contractVersion": 1,
|
|
@@ -503,9 +547,9 @@
|
|
|
503
547
|
"agents can discover supported Node APIs without importing internal file paths"
|
|
504
548
|
],
|
|
505
549
|
"breakingDigest": "sha256:48f925608d3e2131d90936b07dc2a30341204cae3e6e785c0f77d61ad755c945",
|
|
506
|
-
"auditDigest": "sha256:
|
|
550
|
+
"auditDigest": "sha256:f6ee8028c7575067af9c5c35be3642a302d28ddfa14fa6721af03ba0372cad6e"
|
|
507
551
|
}
|
|
508
552
|
],
|
|
509
553
|
"compatibilityDigest": "sha256:2090784977bc7d54fc647215ef73532b9db26147a0b40ec3f56c31d611d806cc",
|
|
510
|
-
"contractDigest": "sha256:
|
|
554
|
+
"contractDigest": "sha256:5ee7c348a981c062fe8feb5defed0899a2bc4614dd2cc2a14f000a824b53be11"
|
|
511
555
|
}
|