@kungfu-tech/buildchain 4.0.4 → 4.0.5-alpha.0
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/dist/site/buildchain-contract.json +3 -3
- package/dist/site/buildchain-site.json +2 -2
- package/dist/site/kfd-claims.json +2 -2
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/public-surface-audit.json +1 -1
- package/dist/site/publication-registry.json +2 -2
- package/dist/site/site-manifest.json +2 -2
- package/dist/site/workflow-registry.json +5 -5
- package/package.json +1 -1
- package/scripts/binary-publication-evidence.mjs +17 -19
- package/scripts/release-line-policy.mjs +2 -2
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "4.0.
|
|
7
|
+
"version": "4.0.5-alpha.0",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v4",
|
|
@@ -5437,12 +5437,12 @@
|
|
|
5437
5437
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
5438
5438
|
],
|
|
5439
5439
|
"breakingDigest": "sha256:7c18fdd3df180db9e1f043a2286ef3f02fae60b84e42b76cd50da9cfeb77883d",
|
|
5440
|
-
"auditDigest": "sha256:
|
|
5440
|
+
"auditDigest": "sha256:f53bd6542ba64b6f8840ea3f85a4d172dce1b8439b7f45a4503cf4bfa0eae15e"
|
|
5441
5441
|
}
|
|
5442
5442
|
],
|
|
5443
5443
|
"compatibilityFactRegistryRoot": "sha256:232fd556a2372b29db586bbc2acbdfce6464a68c93902797ff527f75f7816c42",
|
|
5444
5444
|
"compatibilityFactCutRoot": "sha256:f61b975d4a96c921cc4bd37fb3ed9a0596b47004fe34dc7219979d697e3707f9",
|
|
5445
5445
|
"compatibilityProofRegistryRoot": "sha256:b7194b811e4d3af2df4390bc4d1731e16a86215bd64ee18cb630dd5492f4fb63",
|
|
5446
5446
|
"compatibilityDigest": "sha256:a0d4f48bb6236f6932466cfb2802b866035c5be5861a9d41c2975307a640fb18",
|
|
5447
|
-
"contractDigest": "sha256:
|
|
5447
|
+
"contractDigest": "sha256:87352d7335537daa3355f3f41a6dc6654e23b5cb61465127069a93679c9214c3"
|
|
5448
5448
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "1f3b279e6a980aa2bd278a4ff4b63e064a80a09d",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"package": {
|
|
39
39
|
"name": "@kungfu-tech/buildchain",
|
|
40
|
-
"version": "4.0.
|
|
40
|
+
"version": "4.0.5-alpha.0",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"source": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"contract": "kungfu-buildchain-public-surface-reverse-audit",
|
|
22
22
|
"path": "dist/site/public-surface-audit.json",
|
|
23
23
|
"status": "passed",
|
|
24
|
-
"sha256": "
|
|
24
|
+
"sha256": "a0eb2237fef75f9886f60247fff020cd7e88a91def620970197720b825e4bc35",
|
|
25
25
|
"summary": {
|
|
26
26
|
"cliCommandCount": 117,
|
|
27
27
|
"workflowCount": 115,
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
"contract": "kungfu-buildchain-public-surface-reverse-audit",
|
|
247
247
|
"path": "dist/site/public-surface-audit.json",
|
|
248
248
|
"status": "passed",
|
|
249
|
-
"sha256": "
|
|
249
|
+
"sha256": "a0eb2237fef75f9886f60247fff020cd7e88a91def620970197720b825e4bc35",
|
|
250
250
|
"summary": {
|
|
251
251
|
"cliCommandCount": 117,
|
|
252
252
|
"workflowCount": 115,
|
|
@@ -10948,7 +10948,7 @@
|
|
|
10948
10948
|
"workflowRegistryPath": "dist/site/workflow-registry.json",
|
|
10949
10949
|
"pageRegistryPath": "dist/site/page-registry.json",
|
|
10950
10950
|
"cliRegistryDigest": "fbc23073bbae240489a2f826b2c26daadc58e704050c5f8df366509f5c5a1c3e",
|
|
10951
|
-
"workflowRegistryDigest": "
|
|
10951
|
+
"workflowRegistryDigest": "d541d6d8970116516f176a9b1bbc6daeeb9a44c4602b060c830898638701cfd1",
|
|
10952
10952
|
"pageRegistryDigest": "876cf4df5144c253cc3f6b06593d2a0d0b033c231b9552743064609148183469"
|
|
10953
10953
|
},
|
|
10954
10954
|
"comparison": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "1f3b279e6a980aa2bd278a4ff4b63e064a80a09d",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"package": {
|
|
34
34
|
"name": "@kungfu-tech/buildchain",
|
|
35
|
-
"version": "4.0.
|
|
35
|
+
"version": "4.0.5-alpha.0",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "1f3b279e6a980aa2bd278a4ff4b63e064a80a09d",
|
|
23
23
|
"timestampPolicyDetails": {
|
|
24
24
|
"contract": "kungfu-buildchain-surface-timestamp-policy",
|
|
25
25
|
"timestampFields": [
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"package": {
|
|
39
39
|
"name": "@kungfu-tech/buildchain",
|
|
40
|
-
"version": "4.0.
|
|
40
|
+
"version": "4.0.5-alpha.0",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
|
@@ -2746,7 +2746,7 @@
|
|
|
2746
2746
|
"status": "preview",
|
|
2747
2747
|
"owner": "buildchain-workflows",
|
|
2748
2748
|
"maturity": "preview",
|
|
2749
|
-
"introducedVersion": "4.0.
|
|
2749
|
+
"introducedVersion": "4.0.5-alpha.0",
|
|
2750
2750
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
2751
2751
|
"deprecationReplacement": "",
|
|
2752
2752
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -3943,7 +3943,7 @@
|
|
|
3943
3943
|
"status": "preview",
|
|
3944
3944
|
"owner": "buildchain-workflows",
|
|
3945
3945
|
"maturity": "preview",
|
|
3946
|
-
"introducedVersion": "4.0.
|
|
3946
|
+
"introducedVersion": "4.0.5-alpha.0",
|
|
3947
3947
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
3948
3948
|
"deprecationReplacement": "",
|
|
3949
3949
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -6004,7 +6004,7 @@
|
|
|
6004
6004
|
"status": "preview",
|
|
6005
6005
|
"owner": "buildchain-workflows",
|
|
6006
6006
|
"maturity": "preview",
|
|
6007
|
-
"introducedVersion": "4.0.
|
|
6007
|
+
"introducedVersion": "4.0.5-alpha.0",
|
|
6008
6008
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
6009
6009
|
"deprecationReplacement": "",
|
|
6010
6010
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -6035,7 +6035,7 @@
|
|
|
6035
6035
|
"status": "preview",
|
|
6036
6036
|
"owner": "buildchain-workflows",
|
|
6037
6037
|
"maturity": "preview",
|
|
6038
|
-
"introducedVersion": "4.0.
|
|
6038
|
+
"introducedVersion": "4.0.5-alpha.0",
|
|
6039
6039
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
6040
6040
|
"deprecationReplacement": "",
|
|
6041
6041
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
|
@@ -6066,7 +6066,7 @@
|
|
|
6066
6066
|
"status": "preview",
|
|
6067
6067
|
"owner": "buildchain-workflows",
|
|
6068
6068
|
"maturity": "preview",
|
|
6069
|
-
"introducedVersion": "4.0.
|
|
6069
|
+
"introducedVersion": "4.0.5-alpha.0",
|
|
6070
6070
|
"compatibilityPromise": "preserved-through-the-v3-major-line",
|
|
6071
6071
|
"deprecationReplacement": "",
|
|
6072
6072
|
"sunsetCondition": "explicit-breaking-change-review-in-a-future-major-line",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.5-alpha.0",
|
|
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",
|
|
@@ -2,10 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import crypto from "node:crypto";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { pathToFileURL } from "node:url";
|
|
5
|
-
import {
|
|
6
|
-
SETTLEMENT_ASSET,
|
|
7
|
-
verifyPublicationSettlement,
|
|
8
|
-
} from "./publication-settlement.mjs";
|
|
5
|
+
import { SETTLEMENT_ASSET, verifyPublicationSettlement } from "./publication-settlement.mjs";
|
|
9
6
|
import { releaseAssetClient } from "./release-asset-client.mjs";
|
|
10
7
|
|
|
11
8
|
export async function readBinaryPublicationEvidence({
|
|
@@ -13,7 +10,8 @@ export async function readBinaryPublicationEvidence({
|
|
|
13
10
|
repository,
|
|
14
11
|
tag,
|
|
15
12
|
sourceSha,
|
|
16
|
-
|
|
13
|
+
// Protected finalization includes PR verification, review and merge queue.
|
|
14
|
+
attempts = 160,
|
|
17
15
|
wait = () => new Promise((resolve) => setTimeout(resolve, 15000)),
|
|
18
16
|
}) {
|
|
19
17
|
for (let attempt = 0; attempt < attempts; attempt++) {
|
|
@@ -54,9 +52,7 @@ export async function readBinaryPublicationEvidence({
|
|
|
54
52
|
}
|
|
55
53
|
if (attempt + 1 < attempts) await wait();
|
|
56
54
|
}
|
|
57
|
-
throw new Error(
|
|
58
|
-
"completed v4 publication evidence is not available within the bounded wait",
|
|
59
|
-
);
|
|
55
|
+
throw new Error("completed v4 publication evidence is not available within the bounded wait");
|
|
60
56
|
}
|
|
61
57
|
|
|
62
58
|
export function prepareBinaryAssetPaths({
|
|
@@ -94,22 +90,24 @@ export function prepareBinaryAssetPaths({
|
|
|
94
90
|
return files;
|
|
95
91
|
}
|
|
96
92
|
|
|
93
|
+
export async function writeBinaryPublicationEvidence(options) {
|
|
94
|
+
const settlement = await readBinaryPublicationEvidence(options);
|
|
95
|
+
const directory = ".buildchain/publication-evidence";
|
|
96
|
+
options.client.write(`${directory}/${SETTLEMENT_ASSET}`, settlement);
|
|
97
|
+
const release = settlement.documents.passport.release;
|
|
98
|
+
options.client.write(`${directory}/release.json`, {
|
|
99
|
+
channel: release.channel,
|
|
100
|
+
publishedVersion: release.version,
|
|
101
|
+
versionLabel: release.version,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
97
105
|
async function main(mode) {
|
|
98
106
|
const repository = process.env.GITHUB_REPOSITORY;
|
|
99
107
|
const tag = process.env.RELEASE_TAG;
|
|
100
108
|
const client = releaseAssetClient(repository);
|
|
101
109
|
if (mode === "read") {
|
|
102
|
-
|
|
103
|
-
client,
|
|
104
|
-
repository,
|
|
105
|
-
tag,
|
|
106
|
-
sourceSha: process.env.SOURCE_SHA,
|
|
107
|
-
});
|
|
108
|
-
const directory = ".buildchain/publication-evidence";
|
|
109
|
-
client.write(`${directory}/${SETTLEMENT_ASSET}`, settlement);
|
|
110
|
-
client.write(`${directory}/release.json`, {
|
|
111
|
-
channel: settlement.release.channel,
|
|
112
|
-
});
|
|
110
|
+
await writeBinaryPublicationEvidence({ client, repository, tag, sourceSha: process.env.SOURCE_SHA });
|
|
113
111
|
} else if (mode === "publish") {
|
|
114
112
|
const release = client.release(tag);
|
|
115
113
|
const files = prepareBinaryAssetPaths({
|
|
@@ -47,7 +47,8 @@ export function parseVersionStateRef(ref) {
|
|
|
47
47
|
|
|
48
48
|
export function parseReleaseLineRecoveryRef(ref) {
|
|
49
49
|
const normalizedRef = normalizeRef(ref);
|
|
50
|
-
const match = normalizedRef.match(/^fix\/(alpha|release)-line-v(\d+)-v(\d+\.\d+)-[0-9A-Za-z._-]+$/)
|
|
50
|
+
const match = normalizedRef.match(/^fix\/(alpha|release)-line-v(\d+)-v(\d+\.\d+)-[0-9A-Za-z._-]+$/)
|
|
51
|
+
|| normalizedRef.match(/^chore\/v4-product-pr\/(alpha|release)-v(\d+)-v(\d+\.\d+)\/[0-9a-f]{12}-[0-9a-f]{12}-[0-9a-f]{12}$/);
|
|
51
52
|
if (!match) return undefined;
|
|
52
53
|
return {
|
|
53
54
|
channel: match[1],
|
|
@@ -56,7 +57,6 @@ export function parseReleaseLineRecoveryRef(ref) {
|
|
|
56
57
|
normalizedRef: `${match[1]}/v${match[2]}/v${match[3]}`,
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
|
-
|
|
60
60
|
function getRecoveryBumpKeyword({ target, baseRef, baseChannel, version, looseVersionNumber, headRef }) {
|
|
61
61
|
if (!target) return "";
|
|
62
62
|
if (baseChannel !== target.channel || target.normalizedRef !== normalizeRef(baseRef)) {
|