@kungfu-tech/buildchain 3.0.9-alpha.0 → 3.0.9-alpha.10
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/bin/buildchain.mjs +9 -1
- package/contracts/dev-delivery-authority-v2.schema.json +253 -0
- package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-perspective.json +16 -0
- package/contracts/fixtures/kfd-adopter-release-v1/kfd-4-replay.json +57 -0
- package/contracts/fixtures/next-development-transition-v1/anchored-manual-waiting.json +47 -0
- package/contracts/fixtures/next-development-transition-v1/semver-auto-planned.json +47 -0
- package/contracts/fixtures/next-development-transition-v1/version-model-cases.json +40 -0
- package/contracts/next-development-request-v1.schema.json +66 -0
- package/contracts/next-development-transition-v1.schema.json +292 -0
- package/contracts/release-cut-v1.schema.json +1 -0
- package/contracts/release-train-transition-v1.schema.json +1 -0
- package/dist/site/agent-index.json +1 -0
- package/dist/site/artifact-schemas.json +2 -0
- package/dist/site/buildchain-contract.json +91 -32
- package/dist/site/buildchain-site.json +353 -45
- package/dist/site/capability-registry.json +7 -6
- package/dist/site/cli-registry.json +41 -2
- package/dist/site/controller-registry.json +8 -4
- package/dist/site/kfd-claims.json +193 -9
- package/dist/site/kfd-upstream-aggregate.json +9 -9
- package/dist/site/manual-registry.json +26 -10
- package/dist/site/node-api-registry.json +8012 -4574
- package/dist/site/page-registry.json +331 -31
- package/dist/site/public-surface-audit.json +353 -8
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-passport-check-manifest.json +1 -0
- package/dist/site/release-provenance.json +12 -0
- package/dist/site/schemas/dev-delivery-authority-v2.schema.json +442 -0
- package/dist/site/schemas/release-passport-v1.schema.json +3 -0
- package/dist/site/site-manifest.json +22 -14
- package/dist/site/workflow-registry.json +15 -7
- package/docs/MAP.md +5 -2
- package/docs/adopter-delivery-gate.md +106 -0
- package/docs/aws-us-elastic-runner-burst-plane.md +30 -3
- package/docs/cli-reference.md +200 -13
- package/docs/dev-alpha-candidate-patrol.md +8 -0
- package/docs/dev-delivery-qualification-landing-adr.md +137 -0
- package/docs/dev-delivery-warrant.md +164 -27
- package/docs/kfd-support.md +7 -2
- package/docs/next-development-transition.md +119 -0
- package/docs/node-api-reference.md +464 -277
- package/docs/release-governance.md +10 -7
- package/docs/release-passport.md +15 -2
- package/docs/release-train.md +46 -4
- package/docs/reusable-build-surface.md +26 -9
- package/docs/runtime-train-validation.md +6 -0
- package/docs/versioning.md +6 -2
- package/package.json +21 -6
- package/packages/core/README.md +25 -0
- package/packages/core/adopter-delivery-gate.js +576 -0
- package/packages/core/adopter-delivery-json.js +66 -0
- package/packages/core/adopter-delivery-passport.js +259 -0
- package/packages/core/adopter-delivery-vectors.js +158 -0
- package/packages/core/adopter-delivery-vectors.json +77 -0
- package/packages/core/artifact-verification-envelope.js +5 -5
- package/packages/core/buildchain-agent-manuals.js +1 -0
- package/packages/core/buildchain-channel-identity.js +118 -0
- package/packages/core/buildchain-compatibility-proof.js +54 -0
- package/packages/core/buildchain-contract.js +7 -0
- package/packages/core/buildchain-delivery-bootstrap.js +240 -0
- package/packages/core/buildchain-delivery-infrastructure.js +164 -0
- package/packages/core/channel-candidate.js +8 -0
- package/packages/core/channel-promotion-baseline.js +52 -0
- package/packages/core/controller-evidence.js +2 -1
- package/packages/core/dev-alpha-candidate-selection.js +10 -2
- package/packages/core/dev-delivery-authority.js +996 -0
- package/packages/core/dev-delivery-native-proof.js +418 -0
- package/packages/core/dev-delivery-warrant-settlement.js +67 -20
- package/packages/core/dev-delivery-warrant.js +141 -48
- package/packages/core/kfd-adopter-category-driver.js +167 -0
- package/packages/core/kfd-adopter-manifest.js +49 -50
- package/packages/core/legacy-kfd-adopter-driver.js +167 -0
- package/packages/core/next-development-candidate-reservation.js +186 -0
- package/packages/core/next-development-controller.js +726 -0
- package/packages/core/next-development-projection.js +288 -0
- package/packages/core/next-development-transition.js +738 -0
- package/packages/core/paper-agent-entry.js +7 -4
- package/packages/core/paper.js +14 -7
- package/packages/core/release-blocker-priority.js +192 -0
- package/packages/core/release-passport-contract.js +10 -6
- package/packages/core/release-passport.js +29 -12
- package/packages/core/release-train.js +220 -0
- package/scripts/aws-macos-jit-controller-core.mjs +239 -4
- package/scripts/aws-macos-jit-controller.mjs +198 -2
- package/scripts/aws-macos-jit-instance-rehydrate.mjs +260 -0
- package/scripts/aws-macos-jit-source-rebind.mjs +235 -14
- package/scripts/aws-macos-jit.mjs +12 -0
- package/scripts/buildchain-channel-router.mjs +18 -2
- package/scripts/buildchain-cli-help.mjs +9 -2
- package/scripts/buildchain-contract-lock.mjs +11 -1
- package/scripts/check-internal-architecture.mjs +1 -0
- package/scripts/check-inventory.mjs +14 -3
- package/scripts/dev-alpha-candidate-patrol.mjs +22 -1
- package/scripts/dev-delivery-authority.mjs +368 -0
- package/scripts/dev-delivery-native-run.mjs +235 -0
- package/scripts/dev-delivery-proof.mjs +64 -2
- package/scripts/dev-delivery-two-phase-resume.mjs +90 -0
- package/scripts/dev-delivery-two-phase.mjs +577 -0
- package/scripts/dev-delivery-warrant.mjs +47 -5
- package/scripts/dev-pr-delivery-warrant.mjs +19 -14
- package/scripts/generate-buildchain-kfd-witnesses.mjs +88 -94
- package/scripts/generate-channel-build-workflow.mjs +82 -31
- package/scripts/generate-next-development-guidance.mjs +49 -0
- package/scripts/generate-site-bundle.mjs +8 -3
- package/scripts/init-repo.mjs +135 -62
- package/scripts/next-development-self-dogfood-harness.mjs +409 -0
- package/scripts/next-development-self-dogfood.mjs +532 -0
- package/scripts/next-development-transition.mjs +47 -0
- package/scripts/promotion-channel-router.mjs +5 -3
- package/scripts/release-candidate-tail-reseal.mjs +426 -0
- package/scripts/release-train-self-dogfood.mjs +579 -0
- package/scripts/runtime-ref-core.mjs +4 -17
- package/scripts/seal-artifact-signing-requests.mjs +7 -4
- package/scripts/site-capability-metadata.mjs +23 -1
- package/scripts/stable-candidate-qualification.mjs +7 -7
- package/scripts/workflow-call-contract.mjs +1 -1
- package/templates/native-dev-delivery.yml +86 -0
package/bin/buildchain.mjs
CHANGED
|
@@ -1378,12 +1378,20 @@ async function handleDevCommand(args) {
|
|
|
1378
1378
|
runScript("dev-delivery-warrant.mjs", devArgs);
|
|
1379
1379
|
return;
|
|
1380
1380
|
}
|
|
1381
|
+
if (subcommand === "authority") {
|
|
1382
|
+
runScript("dev-delivery-authority.mjs", devArgs);
|
|
1383
|
+
return;
|
|
1384
|
+
}
|
|
1381
1385
|
if (subcommand === "proof") {
|
|
1382
1386
|
runScript("dev-delivery-proof.mjs", devArgs);
|
|
1383
1387
|
return;
|
|
1384
1388
|
}
|
|
1389
|
+
if (subcommand === "two-phase") {
|
|
1390
|
+
runScript("dev-delivery-two-phase.mjs", devArgs);
|
|
1391
|
+
return;
|
|
1392
|
+
}
|
|
1385
1393
|
if (subcommand !== "merge-queue") {
|
|
1386
|
-
throw new Error("usage: buildchain dev <pr-admit|merge-queue|warrant|proof> [options]");
|
|
1394
|
+
throw new Error("usage: buildchain dev <pr-admit|merge-queue|warrant|authority|proof|two-phase> [options]");
|
|
1387
1395
|
}
|
|
1388
1396
|
runScript("dev-merge-queue.mjs", devArgs);
|
|
1389
1397
|
return;
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://buildchain.libkungfu.dev/schemas/dev-delivery-authority-v2.schema.json",
|
|
4
|
+
"title": "Buildchain Dev Delivery Authority State v2",
|
|
5
|
+
"description": "Opt-in durable state separating bounded qualification-only leases from one exclusive merge_group Landing Warrant.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"schemaVersion",
|
|
10
|
+
"contract",
|
|
11
|
+
"authorityMode",
|
|
12
|
+
"repository",
|
|
13
|
+
"protectedBase",
|
|
14
|
+
"generation",
|
|
15
|
+
"qualificationCounter",
|
|
16
|
+
"landingCounter",
|
|
17
|
+
"policy",
|
|
18
|
+
"qualificationLeases",
|
|
19
|
+
"landingWarrant",
|
|
20
|
+
"candidates",
|
|
21
|
+
"migration",
|
|
22
|
+
"updatedAt",
|
|
23
|
+
"stateRoot"
|
|
24
|
+
],
|
|
25
|
+
"properties": {
|
|
26
|
+
"schemaVersion": { "const": 2 },
|
|
27
|
+
"contract": { "const": "kungfu-buildchain-dev-delivery-authority" },
|
|
28
|
+
"authorityMode": { "const": "bounded-qualification-landing" },
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^[^/\\s]+/[^/\\s]+$"
|
|
32
|
+
},
|
|
33
|
+
"protectedBase": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"pattern": "^dev/v[0-9]+/v[0-9]+\\.[0-9]+$"
|
|
36
|
+
},
|
|
37
|
+
"generation": { "type": "integer", "minimum": 0 },
|
|
38
|
+
"qualificationCounter": { "type": "integer", "minimum": 0 },
|
|
39
|
+
"landingCounter": { "type": "integer", "minimum": 0 },
|
|
40
|
+
"policy": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": [
|
|
44
|
+
"maxQualificationLeases",
|
|
45
|
+
"qualificationLeaseSeconds",
|
|
46
|
+
"landingLeaseSeconds"
|
|
47
|
+
],
|
|
48
|
+
"properties": {
|
|
49
|
+
"maxQualificationLeases": { "type": "integer", "minimum": 1 },
|
|
50
|
+
"qualificationLeaseSeconds": { "type": "integer", "minimum": 1 },
|
|
51
|
+
"landingLeaseSeconds": { "type": "integer", "minimum": 1 },
|
|
52
|
+
"maxLandingOvertakes": { "type": "integer", "minimum": 0 },
|
|
53
|
+
"maxQualificationAttempts": { "type": "integer", "minimum": 1 }
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"qualificationLeases": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"items": { "$ref": "#/$defs/qualificationLease" }
|
|
59
|
+
},
|
|
60
|
+
"landingWarrant": {
|
|
61
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/landingWarrant" }]
|
|
62
|
+
},
|
|
63
|
+
"candidates": {
|
|
64
|
+
"type": "array",
|
|
65
|
+
"items": { "$ref": "#/$defs/candidate" }
|
|
66
|
+
},
|
|
67
|
+
"migration": {
|
|
68
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/migration" }]
|
|
69
|
+
},
|
|
70
|
+
"updatedAt": { "type": "string", "format": "date-time" },
|
|
71
|
+
"stateRoot": { "$ref": "#/$defs/root" }
|
|
72
|
+
},
|
|
73
|
+
"$defs": {
|
|
74
|
+
"root": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
77
|
+
},
|
|
78
|
+
"sha": {
|
|
79
|
+
"type": "string",
|
|
80
|
+
"pattern": "^[0-9a-f]{40}$"
|
|
81
|
+
},
|
|
82
|
+
"qualificationLease": {
|
|
83
|
+
"type": "object",
|
|
84
|
+
"additionalProperties": false,
|
|
85
|
+
"required": [
|
|
86
|
+
"schema",
|
|
87
|
+
"authority",
|
|
88
|
+
"mergeGroupAdmission",
|
|
89
|
+
"candidateId",
|
|
90
|
+
"token",
|
|
91
|
+
"generation",
|
|
92
|
+
"issuedAt",
|
|
93
|
+
"expiresAt"
|
|
94
|
+
],
|
|
95
|
+
"properties": {
|
|
96
|
+
"schema": {
|
|
97
|
+
"const": "kungfu.buildchain.dev-delivery-qualification-lease/v1"
|
|
98
|
+
},
|
|
99
|
+
"authority": { "const": "qualification-only" },
|
|
100
|
+
"mergeGroupAdmission": { "const": false },
|
|
101
|
+
"candidateId": { "$ref": "#/$defs/root" },
|
|
102
|
+
"token": { "$ref": "#/$defs/root" },
|
|
103
|
+
"generation": { "type": "integer", "minimum": 1 },
|
|
104
|
+
"issuedAt": { "type": "string", "format": "date-time" },
|
|
105
|
+
"heartbeatAt": { "type": "string", "format": "date-time" },
|
|
106
|
+
"expiresAt": { "type": "string", "format": "date-time" }
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"landingWarrant": {
|
|
110
|
+
"type": "object",
|
|
111
|
+
"additionalProperties": false,
|
|
112
|
+
"required": [
|
|
113
|
+
"schema",
|
|
114
|
+
"authority",
|
|
115
|
+
"mergeGroupAdmission",
|
|
116
|
+
"candidateId",
|
|
117
|
+
"token",
|
|
118
|
+
"generation",
|
|
119
|
+
"issuedAt",
|
|
120
|
+
"expiresAt"
|
|
121
|
+
],
|
|
122
|
+
"properties": {
|
|
123
|
+
"schema": {
|
|
124
|
+
"const": "kungfu.buildchain.dev-delivery-landing-warrant/v1"
|
|
125
|
+
},
|
|
126
|
+
"authority": { "const": "merge-group-admission" },
|
|
127
|
+
"mergeGroupAdmission": { "const": true },
|
|
128
|
+
"candidateId": { "$ref": "#/$defs/root" },
|
|
129
|
+
"token": { "$ref": "#/$defs/root" },
|
|
130
|
+
"generation": { "type": "integer", "minimum": 1 },
|
|
131
|
+
"issuedAt": { "type": "string", "format": "date-time" },
|
|
132
|
+
"heartbeatAt": { "type": "string", "format": "date-time" },
|
|
133
|
+
"expiresAt": { "type": "string", "format": "date-time" }
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"qualification": {
|
|
137
|
+
"type": "object",
|
|
138
|
+
"additionalProperties": false,
|
|
139
|
+
"required": ["evidenceRoot", "qualifiedAt"],
|
|
140
|
+
"properties": {
|
|
141
|
+
"evidenceRoot": { "$ref": "#/$defs/root" },
|
|
142
|
+
"qualifiedAt": { "type": "string", "format": "date-time" }
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"terminal": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"additionalProperties": false,
|
|
148
|
+
"required": ["outcome", "evidenceRoot", "reason", "settledAt"],
|
|
149
|
+
"properties": {
|
|
150
|
+
"outcome": {
|
|
151
|
+
"enum": ["merged", "terminal-failure", "dequeued", "cancelled"]
|
|
152
|
+
},
|
|
153
|
+
"evidenceRoot": { "$ref": "#/$defs/root" },
|
|
154
|
+
"reason": { "type": "string" },
|
|
155
|
+
"settledAt": { "type": "string", "format": "date-time" }
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
"migration": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"additionalProperties": false,
|
|
161
|
+
"required": ["schema", "legacyContract", "legacyStateRoot", "migratedAt"],
|
|
162
|
+
"properties": {
|
|
163
|
+
"schema": {
|
|
164
|
+
"const": "kungfu.buildchain.dev-delivery-authority-migration/v1"
|
|
165
|
+
},
|
|
166
|
+
"legacyContract": {
|
|
167
|
+
"const": "kungfu-buildchain-dev-delivery-warrant-queue"
|
|
168
|
+
},
|
|
169
|
+
"legacyStateRoot": { "$ref": "#/$defs/root" },
|
|
170
|
+
"migratedAt": { "type": "string", "format": "date-time" }
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
"candidate": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"additionalProperties": false,
|
|
176
|
+
"required": [
|
|
177
|
+
"repository",
|
|
178
|
+
"protectedBase",
|
|
179
|
+
"pullRequestNumber",
|
|
180
|
+
"assignmentRoot",
|
|
181
|
+
"initiativeRoot",
|
|
182
|
+
"sourceIdentityRoot",
|
|
183
|
+
"deliveryClass",
|
|
184
|
+
"candidateId",
|
|
185
|
+
"sourceHead",
|
|
186
|
+
"sourcePatchRoot",
|
|
187
|
+
"sourceProofRoot",
|
|
188
|
+
"planRoot",
|
|
189
|
+
"closureRoot",
|
|
190
|
+
"dependencyRoot",
|
|
191
|
+
"toolchainRoot",
|
|
192
|
+
"enqueuedAt",
|
|
193
|
+
"updatedAt",
|
|
194
|
+
"status",
|
|
195
|
+
"qualification",
|
|
196
|
+
"terminal"
|
|
197
|
+
],
|
|
198
|
+
"properties": {
|
|
199
|
+
"repository": { "type": "string" },
|
|
200
|
+
"protectedBase": { "type": "string" },
|
|
201
|
+
"pullRequestNumber": { "type": "integer", "minimum": 1 },
|
|
202
|
+
"assignmentRoot": { "$ref": "#/$defs/root" },
|
|
203
|
+
"initiativeRoot": { "$ref": "#/$defs/root" },
|
|
204
|
+
"sourceIdentityRoot": { "$ref": "#/$defs/root" },
|
|
205
|
+
"deliveryClass": {
|
|
206
|
+
"enum": [
|
|
207
|
+
"non-native-fast",
|
|
208
|
+
"native-proof-required",
|
|
209
|
+
"cross-platform",
|
|
210
|
+
"release"
|
|
211
|
+
]
|
|
212
|
+
},
|
|
213
|
+
"identitySemantics": { "const": "chained-attempt-v2" },
|
|
214
|
+
"predecessorCandidateId": { "$ref": "#/$defs/root" },
|
|
215
|
+
"candidateId": { "$ref": "#/$defs/root" },
|
|
216
|
+
"sourceHead": { "$ref": "#/$defs/sha" },
|
|
217
|
+
"sourcePatchRoot": { "$ref": "#/$defs/root" },
|
|
218
|
+
"sourceProofRoot": { "$ref": "#/$defs/root" },
|
|
219
|
+
"planRoot": { "$ref": "#/$defs/root" },
|
|
220
|
+
"closureRoot": { "$ref": "#/$defs/root" },
|
|
221
|
+
"dependencyRoot": { "$ref": "#/$defs/root" },
|
|
222
|
+
"toolchainRoot": { "$ref": "#/$defs/root" },
|
|
223
|
+
"qualificationDomains": {
|
|
224
|
+
"type": "array",
|
|
225
|
+
"uniqueItems": true,
|
|
226
|
+
"items": { "$ref": "#/$defs/root" }
|
|
227
|
+
},
|
|
228
|
+
"qualificationAttempts": { "type": "integer", "minimum": 0 },
|
|
229
|
+
"landingOvertakes": { "type": "integer", "minimum": 0 },
|
|
230
|
+
"enqueuedAt": { "type": "string", "format": "date-time" },
|
|
231
|
+
"updatedAt": { "type": "string", "format": "date-time" },
|
|
232
|
+
"status": {
|
|
233
|
+
"enum": [
|
|
234
|
+
"queued",
|
|
235
|
+
"qualifying",
|
|
236
|
+
"qualified",
|
|
237
|
+
"landing",
|
|
238
|
+
"merged",
|
|
239
|
+
"terminal-failure",
|
|
240
|
+
"dequeued",
|
|
241
|
+
"cancelled"
|
|
242
|
+
]
|
|
243
|
+
},
|
|
244
|
+
"qualification": {
|
|
245
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/qualification" }]
|
|
246
|
+
},
|
|
247
|
+
"terminal": {
|
|
248
|
+
"oneOf": [{ "type": "null" }, { "$ref": "#/$defs/terminal" }]
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kfd-4-observer-perspective",
|
|
4
|
+
"standard": "kfd-4",
|
|
5
|
+
"id": "buildchain-release-maintainer-view",
|
|
6
|
+
"observer": { "id": "buildchain-release-maintainer", "kind": "human" },
|
|
7
|
+
"acceptedFacts": [
|
|
8
|
+
{ "sourceId": "kungfu-systems/buildchain@{{SOURCE_SHA}}", "sourceKind": "repository" }
|
|
9
|
+
],
|
|
10
|
+
"projectionPolicy": {
|
|
11
|
+
"policyVersion": "1",
|
|
12
|
+
"causalDominance": true,
|
|
13
|
+
"tieBreaker": "source-coordinate"
|
|
14
|
+
},
|
|
15
|
+
"verification": { "result": "pass" }
|
|
16
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kfd-4-perspective-replay",
|
|
4
|
+
"standard": "kfd-4",
|
|
5
|
+
"replayId": "buildchain-release-product-contrast",
|
|
6
|
+
"mode": "contrastive",
|
|
7
|
+
"sourceViews": [
|
|
8
|
+
{
|
|
9
|
+
"id": "maintainer",
|
|
10
|
+
"kind": "observer-view",
|
|
11
|
+
"coordinate": "git://kungfu-systems/buildchain@{{SOURCE_SHA}}",
|
|
12
|
+
"observer": "buildchain-release-maintainer",
|
|
13
|
+
"perspective": "release-integrity",
|
|
14
|
+
"acceptedFactCut": "git://kungfu-systems/buildchain@{{SOURCE_SHA}}",
|
|
15
|
+
"naturalObjects": ["release"],
|
|
16
|
+
"consequences": ["published artifact"],
|
|
17
|
+
"knownGaps": []
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "consumer",
|
|
21
|
+
"kind": "observer-view",
|
|
22
|
+
"coordinate": "npm://@kungfu-tech/buildchain@{{SOURCE_SHA}}",
|
|
23
|
+
"observer": "buildchain-release-consumer",
|
|
24
|
+
"perspective": "artifact-consumption",
|
|
25
|
+
"acceptedFactCut": "artifact://published-package",
|
|
26
|
+
"naturalObjects": ["installed package"],
|
|
27
|
+
"consequences": ["local build execution"],
|
|
28
|
+
"knownGaps": ["consumer runtime state"]
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"replayObserver": {
|
|
32
|
+
"id": "buildchain",
|
|
33
|
+
"kind": "service",
|
|
34
|
+
"purpose": "retain source and artifact fact boundaries"
|
|
35
|
+
},
|
|
36
|
+
"reconstruction": {
|
|
37
|
+
"policyVersion": "1",
|
|
38
|
+
"sharedContext": "same source-bound release",
|
|
39
|
+
"preservedElements": ["observer", "accepted-fact-cut", "evidence-boundary"],
|
|
40
|
+
"declaredLoss": ["consumer runtime state"],
|
|
41
|
+
"degradedState": "none"
|
|
42
|
+
},
|
|
43
|
+
"contrast": {
|
|
44
|
+
"dimensions": ["evidence-boundary"],
|
|
45
|
+
"mismatches": [
|
|
46
|
+
{
|
|
47
|
+
"sourceViewIds": ["maintainer", "consumer"],
|
|
48
|
+
"observation": "source and installed artifact evidence have different custody",
|
|
49
|
+
"primitiveSignal": "inconclusive"
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"verification": {
|
|
54
|
+
"result": "pass",
|
|
55
|
+
"evidence": ["evidence/projection-fsck.json"]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-next-development-transition/v1",
|
|
4
|
+
"idempotencyKey": "sha256:cf805c1933cbc3e571c21af3ae030139bebafb08e2436b3c479c411b2cd2d22c",
|
|
5
|
+
"repository": "example/widget",
|
|
6
|
+
"completedAlpha": {
|
|
7
|
+
"outcome": "succeeded",
|
|
8
|
+
"version": "1.4.2-alpha.7",
|
|
9
|
+
"exactTag": "v1.4.2-alpha.7",
|
|
10
|
+
"releaseSha": "1111111111111111111111111111111111111111",
|
|
11
|
+
"treeSha": "2222222222222222222222222222222222222222",
|
|
12
|
+
"publicationRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
13
|
+
"completedAt": "2026-08-11T01:00:00.000Z"
|
|
14
|
+
},
|
|
15
|
+
"completedAlphaRoot": "sha256:18e65c63aba0df789e0b0e68903733825d87e292b82bcb8fd3793ca45dca6266",
|
|
16
|
+
"alphaOutcome": "preserved-success",
|
|
17
|
+
"model": {
|
|
18
|
+
"strategy": "anchored",
|
|
19
|
+
"next": "manual"
|
|
20
|
+
},
|
|
21
|
+
"target": {
|
|
22
|
+
"version": null,
|
|
23
|
+
"anchor": null
|
|
24
|
+
},
|
|
25
|
+
"declaredPaths": ["package.json", "release.json"],
|
|
26
|
+
"adapter": {
|
|
27
|
+
"environmentVariable": "BUILDCHAIN_VERSION",
|
|
28
|
+
"sourcePaths": ["package.json"],
|
|
29
|
+
"derivedPaths": [],
|
|
30
|
+
"allowedChangePaths": ["package.json"],
|
|
31
|
+
"readOnlyPaths": ["release.json"],
|
|
32
|
+
"derivationStage": null,
|
|
33
|
+
"verificationStage": "lifecycle.verify"
|
|
34
|
+
},
|
|
35
|
+
"effectBounds": {
|
|
36
|
+
"allowedPaths": ["package.json"],
|
|
37
|
+
"refUpdates": [],
|
|
38
|
+
"forbiddenRefNamespaces": ["refs/heads/alpha/", "refs/tags/"]
|
|
39
|
+
},
|
|
40
|
+
"state": {
|
|
41
|
+
"status": "waiting-anchor",
|
|
42
|
+
"generation": 1,
|
|
43
|
+
"stateRoot": "sha256:4bbca86f960a7c1a10d76d01736422e3129f3f16d3e69e0800a0829201122dd4"
|
|
44
|
+
},
|
|
45
|
+
"materialization": null,
|
|
46
|
+
"transitions": []
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"contract": "kungfu-buildchain-next-development-transition/v1",
|
|
4
|
+
"idempotencyKey": "sha256:37ee52799584a989b059db060b7ce062feb56fbeff452033245046fdf3b21e78",
|
|
5
|
+
"repository": "example/widget",
|
|
6
|
+
"completedAlpha": {
|
|
7
|
+
"outcome": "succeeded",
|
|
8
|
+
"version": "1.4.2-alpha.7",
|
|
9
|
+
"exactTag": "v1.4.2-alpha.7",
|
|
10
|
+
"releaseSha": "1111111111111111111111111111111111111111",
|
|
11
|
+
"treeSha": "2222222222222222222222222222222222222222",
|
|
12
|
+
"publicationRoot": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
13
|
+
"completedAt": "2026-08-11T01:00:00.000Z"
|
|
14
|
+
},
|
|
15
|
+
"completedAlphaRoot": "sha256:18e65c63aba0df789e0b0e68903733825d87e292b82bcb8fd3793ca45dca6266",
|
|
16
|
+
"alphaOutcome": "preserved-success",
|
|
17
|
+
"model": {
|
|
18
|
+
"strategy": "semver",
|
|
19
|
+
"next": "auto"
|
|
20
|
+
},
|
|
21
|
+
"target": {
|
|
22
|
+
"version": "1.4.2-alpha.8",
|
|
23
|
+
"anchor": null
|
|
24
|
+
},
|
|
25
|
+
"declaredPaths": ["package.json"],
|
|
26
|
+
"adapter": {
|
|
27
|
+
"environmentVariable": "BUILDCHAIN_VERSION",
|
|
28
|
+
"sourcePaths": ["package.json"],
|
|
29
|
+
"derivedPaths": [],
|
|
30
|
+
"allowedChangePaths": ["package.json"],
|
|
31
|
+
"readOnlyPaths": [],
|
|
32
|
+
"derivationStage": null,
|
|
33
|
+
"verificationStage": "lifecycle.verify"
|
|
34
|
+
},
|
|
35
|
+
"effectBounds": {
|
|
36
|
+
"allowedPaths": ["package.json"],
|
|
37
|
+
"refUpdates": [],
|
|
38
|
+
"forbiddenRefNamespaces": ["refs/heads/alpha/", "refs/tags/"]
|
|
39
|
+
},
|
|
40
|
+
"state": {
|
|
41
|
+
"status": "planned",
|
|
42
|
+
"generation": 1,
|
|
43
|
+
"stateRoot": "sha256:4ef8ac1ff07cb14633994625e65a340acb3130ae56bbc88ee81504f09df3fa0f"
|
|
44
|
+
},
|
|
45
|
+
"materialization": null,
|
|
46
|
+
"transitions": []
|
|
47
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": "kungfu-buildchain-next-development-version-model-fixtures/v1",
|
|
3
|
+
"positive": [
|
|
4
|
+
{
|
|
5
|
+
"name": "semver-auto",
|
|
6
|
+
"model": { "strategy": "semver", "next": "auto" }
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "anchored-manual",
|
|
10
|
+
"model": { "strategy": "anchored", "next": "manual" }
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"negative": [
|
|
14
|
+
{
|
|
15
|
+
"name": "semver-manual",
|
|
16
|
+
"model": { "strategy": "semver", "next": "manual" },
|
|
17
|
+
"error": "version model must be semver/auto or anchored/manual"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "anchored-auto",
|
|
21
|
+
"model": { "strategy": "anchored", "next": "auto" },
|
|
22
|
+
"error": "version model must be semver/auto or anchored/manual"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "semver-auto-with-anchor",
|
|
26
|
+
"model": { "strategy": "semver", "next": "auto" },
|
|
27
|
+
"anchor": {
|
|
28
|
+
"manifestPath": "release.json",
|
|
29
|
+
"manifestRoot": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
|
|
30
|
+
},
|
|
31
|
+
"error": "semver/auto must not declare an anchor"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "anchored-manual-target-without-anchor",
|
|
35
|
+
"model": { "strategy": "anchored", "next": "manual" },
|
|
36
|
+
"targetVersion": "22.1.0",
|
|
37
|
+
"error": "anchored/manual targetVersion requires an anchor"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://buildchain.libkungfu.dev/schemas/next-development-request-v1.schema.json",
|
|
4
|
+
"title": "Buildchain Next-development Request v1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["contract", "repository", "completedAlpha", "recordedAt"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"contract": {
|
|
10
|
+
"const": "kungfu-buildchain-next-development-request/v1"
|
|
11
|
+
},
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"pattern": "^[^/\\s]+/[^/\\s]+$"
|
|
15
|
+
},
|
|
16
|
+
"completedAlpha": { "$ref": "#/$defs/completedAlpha" },
|
|
17
|
+
"targetVersion": { "$ref": "#/$defs/semver" },
|
|
18
|
+
"anchor": { "$ref": "#/$defs/anchor" },
|
|
19
|
+
"recordedAt": { "type": "string", "format": "date-time" }
|
|
20
|
+
},
|
|
21
|
+
"$defs": {
|
|
22
|
+
"gitSha": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
|
|
23
|
+
"root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
|
|
24
|
+
"semver": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?(?:\\+[0-9A-Za-z.-]+)?$"
|
|
27
|
+
},
|
|
28
|
+
"completedAlpha": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"additionalProperties": false,
|
|
31
|
+
"required": [
|
|
32
|
+
"outcome",
|
|
33
|
+
"version",
|
|
34
|
+
"exactTag",
|
|
35
|
+
"releaseSha",
|
|
36
|
+
"treeSha",
|
|
37
|
+
"publicationRoot",
|
|
38
|
+
"completedAt"
|
|
39
|
+
],
|
|
40
|
+
"properties": {
|
|
41
|
+
"outcome": { "const": "succeeded" },
|
|
42
|
+
"version": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)-alpha\\.(0|[1-9][0-9]*)$"
|
|
45
|
+
},
|
|
46
|
+
"exactTag": { "type": "string", "minLength": 1 },
|
|
47
|
+
"releaseSha": { "$ref": "#/$defs/gitSha" },
|
|
48
|
+
"treeSha": { "$ref": "#/$defs/gitSha" },
|
|
49
|
+
"publicationRoot": { "$ref": "#/$defs/root" },
|
|
50
|
+
"completedAt": { "type": "string", "format": "date-time" }
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"anchor": {
|
|
54
|
+
"type": "object",
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"required": ["manifestPath", "manifestRoot"],
|
|
57
|
+
"properties": {
|
|
58
|
+
"manifestPath": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[^\\s]+$"
|
|
61
|
+
},
|
|
62
|
+
"manifestRoot": { "$ref": "#/$defs/root" }
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|