@kungfu-tech/buildchain 2.8.8-alpha.0 → 2.8.8-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.
@@ -75,11 +75,25 @@ alpha branch or tag. The repository must create the next upstream anchor line
75
75
  explicitly, then run the normal channel promotion flow for that line.
76
76
 
77
77
  When branch protection requires pull requests, generated version-state commits
78
- are also routed through pull requests. The action creates an internal
79
- `buildchain/version-state/...` branch and PR, then stops before moving tags. Once
80
- that PR is reviewed, checked, and merged, the next promotion run verifies that
81
- the merge only changed declared version-state files from the legal source
82
- parent, then moves exact and floating refs.
78
+ must still complete inside the promotion automation. The action updates
79
+ Buildchain-managed channel protection before generated bookkeeping, adds the
80
+ authenticated promotion token user or app to the bypass allowlist, then applies
81
+ the generated version-state commit directly. If GitHub still rejects the direct
82
+ update, promotion fails with a configuration diagnostic instead of opening a
83
+ post-publish human PR.
84
+
85
+ For Buildchain-owned automation, callers may pass
86
+ `branch-protection-bypass-apps`, `branch-protection-bypass-users`, or
87
+ `branch-protection-bypass-teams`. The action still configures managed
88
+ `dev/vN/vN.M`, `alpha/vN/vN.M`, and `release/vN/vN.M` branches with one
89
+ required approving review, strict GitHub Actions checks, admin enforcement,
90
+ conversation resolution, no force pushes, and no deletions; the bypass
91
+ allowance only lets the named automation identity apply generated version-state
92
+ or channel bookkeeping without a second human review after the reviewed channel
93
+ PR has already merged. Direct action calls automatically include the current
94
+ promotion token's authenticated user or app when GitHub exposes it; explicit
95
+ inputs are supplemental allowlist entries for less discoverable release
96
+ authorities.
83
97
 
84
98
  ## Publish Transactions
85
99
 
@@ -202,7 +216,8 @@ The action outputs `transaction-id`, `transaction-state`,
202
216
  `release-passport-state-sha` is the durable ref commit after the generated
203
217
  `release-passport/*` files have been uploaded into that recovery ref.
204
218
  `finalization-needed=true` means publish evidence is valid, but protected branch
205
- or ref finalization needs a later promotion run.
219
+ or ref finalization needs a later idempotent promotion run. It must not require
220
+ a human version-state PR.
206
221
  Set `github-release: "true"` when the semver promotion should also publish the
207
222
  exact-tag GitHub Release. After the release transaction reaches `complete` and
208
223
  `finalization-needed` is false, the action creates or updates the GitHub Release
@@ -245,13 +260,14 @@ again, so the consumer-side passport is a complete audit entrypoint. Set
245
260
  passport generation.
246
261
 
247
262
  Finalization recovery is anchored to the durable transaction, not to a single
248
- workflow run SHA. After a generated version-state PR is merged, the current
249
- channel head can be a merge commit that contains or corresponds to the recorded
250
- `release_material_sha`; it does not have to equal the original `source_sha` or
251
- the transaction `release_sha`. Reruns accept exact tags that already point at
252
- the transaction release/material SHA or the finalized channel head, and continue
253
- moving any missing floating tags or dev/alpha refs before marking the
254
- transaction `complete`.
263
+ workflow run SHA. After generated version-state bookkeeping is applied, the
264
+ current channel head can be the generated version-state commit or a historical
265
+ merge commit that contains or corresponds to the recorded `release_material_sha`;
266
+ it does not have to equal the original `source_sha` or the transaction
267
+ `release_sha`. Reruns accept exact tags that already point at the transaction
268
+ release/material SHA or the finalized channel head, and continue moving any
269
+ missing floating tags or dev/alpha refs before marking the transaction
270
+ `complete`.
255
271
 
256
272
  Normal reruns accept already-published artifacts only when evidence matches.
257
273
  Missing required artifacts can be published on the next run. Conflicting
@@ -289,6 +305,13 @@ while the reusable build trust gate now checks the source-lock channel HEAD and
289
305
  merged same-repository PR lineage before heavy build runners start. This action
290
306
  still independently rechecks PR lineage, alpha/release tree equivalence, and
291
307
  generated version-state verification before moving channel refs and tags.
308
+ The reusable `release-candidate-promote.yml` wrapper defaults
309
+ `branch-protection-bypass-apps` to `github-actions`, so flow-internal promotion
310
+ can complete generated `dev`/`alpha`/`release` bookkeeping while ordinary human
311
+ pushes and PR merges remain governed by the one-review branch protection rule.
312
+ The promotion action also auto-discovers the current token's authenticated user
313
+ or app and adds it to the managed bypass allowlist, so consumers do not have to
314
+ declare the same release authority twice.
292
315
 
293
316
  The tag names intentionally follow the old ABV release semantics:
294
317
  exact release tags are `vX.Y.Z`, exact alpha tags are `vX.Y.Z-alpha.N`, floating
@@ -4,7 +4,7 @@
4
4
  "product": {
5
5
  "name": "Buildchain",
6
6
  "package": "@kungfu-tech/buildchain",
7
- "version": "2.8.8-alpha.0",
7
+ "version": "2.8.8-alpha.2",
8
8
  "repository": "https://github.com/kungfu-systems/buildchain"
9
9
  },
10
10
  "majorLine": "v2",
@@ -92,7 +92,7 @@
92
92
  "GitHub Release passport and evidence publication is delegated to promote-buildchain-ref after the semver release transaction completes"
93
93
  ],
94
94
  "breakingDigest": "sha256:403d2fcdb0c5eabe749e89102defad69745f70a1556707bec7831fcc2e9fa8f8",
95
- "auditDigest": "sha256:320dd5103edabbb9c4e1a9ccdf314db3a74cc9049a7e66bf49a8820286e2cc7d"
95
+ "auditDigest": "sha256:02d15fd61002e4d3ab8ff279a01592c54b18c7cf4ce4593bb798359024e7eaf1"
96
96
  },
97
97
  {
98
98
  "contractVersion": 1,
@@ -134,7 +134,7 @@
134
134
  "semver GitHub Releases are created or updated only after transaction completion, with prerelease/latest metadata derived from the exact tag"
135
135
  ],
136
136
  "breakingDigest": "sha256:347b65aecd38bc671d8f697eabd15254f905b6f745389d7b26d7595a904a720c",
137
- "auditDigest": "sha256:47c7c68b1c81cbe0a6cedb3da2841c33472e25e29b2353267a09e470667bcb93"
137
+ "auditDigest": "sha256:5d94f56a8abbca8cab057b0d0210cf5cafd50b223be635b537dd902c96b19cf2"
138
138
  },
139
139
  {
140
140
  "contractVersion": 1,
@@ -320,7 +320,7 @@
320
320
  "manual entries carry source file digests so downstream sites and agents can detect stale hand-written documentation"
321
321
  ],
322
322
  "breakingDigest": "sha256:7d0d2819e3a3e72989d9c57b5efe9d0bc0a79bc0f2c82a0c7b9d6c5a211a91f2",
323
- "auditDigest": "sha256:65236c3c8d0558544f084ebffdfca2e811fb3d05695faa0d560ce4657c8d7285"
323
+ "auditDigest": "sha256:4ec7c2d40a5761399bbf966fdac099372d7707952f05baec39ae64ae0da703c0"
324
324
  },
325
325
  {
326
326
  "contractVersion": 1,
@@ -346,5 +346,5 @@
346
346
  }
347
347
  ],
348
348
  "compatibilityDigest": "sha256:36421b592a782decbfe31a7d8d42d70ce1100a56a2c4f4a0ccc21f0617dc72bf",
349
- "contractDigest": "sha256:acaaa054295ba87561930e02a5d7ce87ab0ae9f2d139504755432779c6c40904"
349
+ "contractDigest": "sha256:fe0883948273f534a07d10e19697d28f2f9931597f09884aeb657efb3fbf9b12"
350
350
  }