@kungfu-tech/buildchain 2.12.7-alpha.12 → 2.12.7-alpha.14
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 +4 -4
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/site-manifest.json +4 -4
- package/package.json +1 -1
- package/scripts/publication-artifact-candidate.mjs +16 -24
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"product": {
|
|
5
5
|
"name": "Buildchain",
|
|
6
6
|
"package": "@kungfu-tech/buildchain",
|
|
7
|
-
"version": "2.12.7-alpha.
|
|
7
|
+
"version": "2.12.7-alpha.14",
|
|
8
8
|
"repository": "https://github.com/kungfu-systems/buildchain"
|
|
9
9
|
},
|
|
10
10
|
"majorLine": "v2",
|
|
@@ -1930,7 +1930,7 @@
|
|
|
1930
1930
|
"missing receipts are non-qualifying and must not be represented as a successful controller run"
|
|
1931
1931
|
],
|
|
1932
1932
|
"breakingDigest": "sha256:3f76502666069c2727d23efcfdb08fb80f89ced1955a69e29f11525ae88aca1d",
|
|
1933
|
-
"auditDigest": "sha256:
|
|
1933
|
+
"auditDigest": "sha256:f83405748e500d31a237240438f7f410c1bb2b4ef39ab7323131fa54f38c1a59"
|
|
1934
1934
|
},
|
|
1935
1935
|
{
|
|
1936
1936
|
"contractVersion": 1,
|
|
@@ -2674,5 +2674,5 @@
|
|
|
2674
2674
|
}
|
|
2675
2675
|
],
|
|
2676
2676
|
"compatibilityDigest": "sha256:af162b86ab4506e9b5f1d3c59b41f3fd57fbad79ff4d749a7f12ff16460517f8",
|
|
2677
|
-
"contractDigest": "sha256:
|
|
2677
|
+
"contractDigest": "sha256:74f2c7d82a73953aea28bcfb254627068e09def983d12a454d9edec33953db1c"
|
|
2678
2678
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-bundle",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-15T04:39:13.621Z",
|
|
5
|
+
"publishedAt": "2026-07-15T04:39:13.621Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "4c1508ab38cceec6d181a1a220690a3608d19749",
|
|
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": "2.12.7-alpha.
|
|
40
|
+
"version": "2.12.7-alpha.14",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"source": {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-publication-release-registry",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-15T04:39:13.621Z",
|
|
5
|
+
"publishedAt": "2026-07-15T04:39:13.621Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "4c1508ab38cceec6d181a1a220690a3608d19749",
|
|
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": "2.12.7-alpha.
|
|
35
|
+
"version": "2.12.7-alpha.14",
|
|
36
36
|
"versionSource": "package.json#version"
|
|
37
37
|
},
|
|
38
38
|
"sourceKind": "package-site-bundle",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"contract": "kungfu-buildchain-site-manifest",
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"publishedAt": "2026-07-
|
|
4
|
+
"generatedAt": "2026-07-15T04:39:13.621Z",
|
|
5
|
+
"publishedAt": "2026-07-15T04:39:13.621Z",
|
|
6
6
|
"reproducible": true,
|
|
7
7
|
"timestampPolicy": "ci-injected",
|
|
8
8
|
"deterministicInputs": [
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"declared Buildchain surface manifest contract"
|
|
20
20
|
],
|
|
21
21
|
"sourceDateEpoch": "0",
|
|
22
|
-
"sourceRevision": "
|
|
22
|
+
"sourceRevision": "4c1508ab38cceec6d181a1a220690a3608d19749",
|
|
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": "2.12.7-alpha.
|
|
40
|
+
"version": "2.12.7-alpha.14",
|
|
41
41
|
"versionSource": "package.json#version"
|
|
42
42
|
},
|
|
43
43
|
"entrypoint": "buildchain-site.json",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kungfu-tech/buildchain",
|
|
3
|
-
"version": "2.12.7-alpha.
|
|
3
|
+
"version": "2.12.7-alpha.14",
|
|
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",
|
|
@@ -22,27 +22,16 @@ function requiredFlag(name) {
|
|
|
22
22
|
return value;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
function
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
for (const entry of fs.readdirSync(current, { withFileTypes: true })) {
|
|
31
|
-
const full = path.join(current, entry.name);
|
|
32
|
-
if (entry.isDirectory()) pending.push(full);
|
|
33
|
-
else if (entry.isFile() && entry.name === name) matches.push(full);
|
|
34
|
-
}
|
|
25
|
+
function exactJson(root, relativePath) {
|
|
26
|
+
const absoluteRoot = path.resolve(root);
|
|
27
|
+
const absolutePath = path.resolve(absoluteRoot, relativePath);
|
|
28
|
+
if (!absolutePath.startsWith(`${absoluteRoot}${path.sep}`)) {
|
|
29
|
+
throw new Error(`publication evidence path escapes artifact root: ${relativePath}`);
|
|
35
30
|
}
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const matches = filesNamed(root, name);
|
|
41
|
-
if (matches.length !== 1)
|
|
42
|
-
throw new Error(
|
|
43
|
-
`expected exactly one ${name} under ${root}, found ${matches.length}`,
|
|
44
|
-
);
|
|
45
|
-
return JSON.parse(fs.readFileSync(matches[0], "utf8"));
|
|
31
|
+
if (!fs.existsSync(absolutePath) || !fs.statSync(absolutePath).isFile()) {
|
|
32
|
+
throw new Error(`expected publication evidence at ${relativePath}`);
|
|
33
|
+
}
|
|
34
|
+
return JSON.parse(fs.readFileSync(absolutePath, "utf8"));
|
|
46
35
|
}
|
|
47
36
|
|
|
48
37
|
function collectFiles(root) {
|
|
@@ -84,12 +73,15 @@ export function buildPublicationArtifactCandidate({
|
|
|
84
73
|
sourceSha,
|
|
85
74
|
sourceTreeSha,
|
|
86
75
|
runtimeSha,
|
|
87
|
-
manifest:
|
|
88
|
-
|
|
76
|
+
manifest: exactJson(
|
|
77
|
+
resolvedArtifactRoot,
|
|
78
|
+
".buildchain/publication/publication-artifact.json",
|
|
79
|
+
),
|
|
80
|
+
passport: exactJson(
|
|
89
81
|
resolvedArtifactRoot,
|
|
90
|
-
"publication-artifact-passport.json",
|
|
82
|
+
".buildchain/publication/publication-artifact-passport.json",
|
|
91
83
|
),
|
|
92
|
-
controllerReceipt:
|
|
84
|
+
controllerReceipt: exactJson(resolvedControllerRoot, "receipt.json"),
|
|
93
85
|
files: collectFiles(resolvedArtifactRoot),
|
|
94
86
|
};
|
|
95
87
|
const candidate = createPublicationArtifactCandidate(evidence);
|