@kungfu-tech/buildchain 2.2.2-alpha.0 → 2.2.2-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.
|
@@ -178,6 +178,10 @@ governance semantics:
|
|
|
178
178
|
- release promotion must have an exact alpha tag for the same patch line, and
|
|
179
179
|
the release source tree must match that alpha tag tree, so release does not
|
|
180
180
|
introduce new code after alpha;
|
|
181
|
+
- anchored/manual release promotion may differ from that alpha tree only in
|
|
182
|
+
declared `version.files` and the configured anchor manifest, and only when the
|
|
183
|
+
checked-out release material has passed `lifecycle.verify` or the explicit
|
|
184
|
+
`verification-command`;
|
|
181
185
|
- generated release and next-alpha version-state trees can be verified locally
|
|
182
186
|
with either the `verification-command` input or `buildchain.toml`
|
|
183
187
|
`lifecycle.verify` before any tags or channel refs move.
|
|
@@ -250,6 +250,17 @@ After that PR lands, Buildchain verifies that the version-state PR changed only
|
|
|
250
250
|
declared version files from the legal channel-promotion parent before it moves
|
|
251
251
|
tags.
|
|
252
252
|
|
|
253
|
+
For `version.strategy = "anchored"` with `version.next = "manual"`, release
|
|
254
|
+
promotion does not generate a Buildchain-owned version-state commit. In that
|
|
255
|
+
mode, a protected `alpha -> release` PR may carry the declared `version.files`
|
|
256
|
+
from the tested alpha package version to the final package version, and may
|
|
257
|
+
carry the configured `version.manifest` with it. Buildchain only accepts that
|
|
258
|
+
release tree difference when the PR is the valid channel-promotion PR, the
|
|
259
|
+
changed paths are limited to those declared version files plus the anchor
|
|
260
|
+
manifest, and `lifecycle.verify` or `verification-command` has validated the
|
|
261
|
+
checked-out release material. Any code or undeclared file change still fails the
|
|
262
|
+
release tree gate.
|
|
263
|
+
|
|
253
264
|
The action input `verification-command` remains supported. When it is provided,
|
|
254
265
|
it overrides `lifecycle.verify` for that invocation.
|
|
255
266
|
|
package/docs/release-flow.md
CHANGED
|
@@ -129,7 +129,7 @@ sequenceDiagram
|
|
|
129
129
|
Promote->>Promote: validate same-repo merged PR
|
|
130
130
|
Promote->>Promote: find same-patch alpha tag
|
|
131
131
|
Promote->>Promote: compare release tree with tested alpha tree
|
|
132
|
-
Promote->>Promote: write
|
|
132
|
+
Promote->>Promote: write final version state or verify anchored material
|
|
133
133
|
Promote->>Tags: create or reuse vX.Y.Z
|
|
134
134
|
Promote->>Tags: move vX.Y
|
|
135
135
|
Promote->>Tags: move vX when eligible
|
|
@@ -242,7 +242,9 @@ Promotion should stop before moving refs when:
|
|
|
242
242
|
- the PR was not merged;
|
|
243
243
|
- the branch pair is not a valid channel path;
|
|
244
244
|
- the required status check did not pass;
|
|
245
|
-
- a release tree does not match the same-patch alpha tag tree
|
|
245
|
+
- a release tree does not match the same-patch alpha tag tree, except for the
|
|
246
|
+
declared anchored/manual version files and anchor manifest that
|
|
247
|
+
`lifecycle.verify` or `verification-command` validates;
|
|
246
248
|
- version-state verification fails;
|
|
247
249
|
- a required exact tag already exists at a commit unrelated to the active
|
|
248
250
|
transaction or finalized channel head.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "2.2.2-alpha.
|
|
3
|
+
"version": "2.2.2-alpha.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Buildchain Release Passport, release governance, CLI toolkit, and site facts.",
|
|
6
6
|
"repository": "https://github.com/kungfu-systems/buildchain",
|
|
@@ -217,7 +217,7 @@ function explainReleaseLineDryRun({
|
|
|
217
217
|
{ ref: `alpha/v${rule.major}/v${rule.major}.${rule.minor}`, action: "would move to next alpha version-state commit" },
|
|
218
218
|
{ ref: `dev/v${rule.major}/v${rule.major}.${rule.minor}`, action: "would move to next alpha version-state commit" },
|
|
219
219
|
);
|
|
220
|
-
plan.governanceChecks.push("release source tree must match the same-patch exact alpha tag tree except generated version-state files");
|
|
220
|
+
plan.governanceChecks.push("release source tree must match the same-patch exact alpha tag tree except generated version-state files or anchored/manual version material");
|
|
221
221
|
plan.versionState.targetVersions = [
|
|
222
222
|
exactRelease.replace(/^next v?/, "").replace(/^v/, ""),
|
|
223
223
|
exactAlpha.replace(/^next v?/, "").replace(/^v/, ""),
|