@kungfu-tech/buildchain 2.12.2-alpha.1 → 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.
@@ -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
- artifacts put the transaction into `repair_required`; `abandoned` and
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.2-alpha.1",
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:960c4d986f3bfd1c31681c3a3b9fa0bc00d24b5b1c0ac1fa3b44caebb24d3452"
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:19a838fa786936a65585c00d65b15fe84c83ee19a0d41f3b6502226a966345a9"
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:8d5a050df580d9bb7bbf3300b8fa4d22df8478bc1028de08b5af7a902d38448d"
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:8d5a050df580d9bb7bbf3300b8fa4d22df8478bc1028de08b5af7a902d38448d"
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:def4f995282224c7072e4534aa8c8fa7d77b3497e5cd6f00098469da70b5ff6d"
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:6c4078f847d70ba9d2cca1149e976828c5b0244f2e66cc5232cb79936388c5d5"
550
+ "auditDigest": "sha256:f6ee8028c7575067af9c5c35be3642a302d28ddfa14fa6721af03ba0372cad6e"
507
551
  }
508
552
  ],
509
553
  "compatibilityDigest": "sha256:2090784977bc7d54fc647215ef73532b9db26147a0b40ec3f56c31d611d806cc",
510
- "contractDigest": "sha256:2685bda967332d8e878cc84662954335198428c30536f0019015c85a3cb772b9"
554
+ "contractDigest": "sha256:5ee7c348a981c062fe8feb5defed0899a2bc4614dd2cc2a14f000a824b53be11"
511
555
  }