@kungfu-tech/buildchain 4.0.2-alpha.0 → 4.0.2-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.
Files changed (45) hide show
  1. package/architecture/agent-change-map.md +4 -4
  2. package/architecture/ci-lane-change-budget.json +76 -8
  3. package/architecture/maintainability-debt.json +41 -115
  4. package/architecture/maintainability-policy.json +12 -7
  5. package/architecture/release-tail-contract-inventory.json +4 -4
  6. package/architecture/v3-v4-live-capability-inventory.json +17 -17
  7. package/architecture/v4-release-invocation-fixtures.json +119 -0
  8. package/architecture/v4-release-topology.json +238 -0
  9. package/contracts/buildchain-v2-residuals-v1.json +0 -9
  10. package/contracts/fixtures/v4-tail-reseal-v1/valid.json +1 -1
  11. package/contracts/v4-release-invocation-v1.schema.json +86 -0
  12. package/dist/site/buildchain-contract.json +9 -9
  13. package/dist/site/buildchain-site.json +7 -7
  14. package/dist/site/kfd-claims.json +7 -5
  15. package/dist/site/kfd-upstream-aggregate.json +1 -1
  16. package/dist/site/manual-registry.json +1 -1
  17. package/dist/site/node-api-registry.json +3 -3
  18. package/dist/site/page-registry.json +2 -2
  19. package/dist/site/public-surface-audit.json +17 -9
  20. package/dist/site/publication-authority-registry.json +2 -3
  21. package/dist/site/publication-registry.json +4 -4
  22. package/dist/site/site-manifest.json +5 -5
  23. package/dist/site/workflow-registry.json +19 -11
  24. package/docs/node-api-reference.md +3 -3
  25. package/package.json +2 -2
  26. package/packages/core/dev-delivery-candidate-identity.js +45 -17
  27. package/packages/core/dev-delivery-provider-heartbeat.js +22 -6
  28. package/packages/core/dev-delivery-warrant-state.js +12 -28
  29. package/packages/core/v4-canonical-contracts.js +8 -0
  30. package/packages/core/v4-floating-consumer-policy.js +4 -1
  31. package/packages/core/v4-release-invocation.js +356 -0
  32. package/scripts/audit-publication-control-plane.mjs +0 -1
  33. package/scripts/check-inventory.mjs +27 -59
  34. package/scripts/check-maintainability.mjs +13 -5
  35. package/scripts/check-v3-v4-capability-inventory.mjs +3 -61
  36. package/scripts/check-v4-floating-consumer-policy-contract.mjs +10 -20
  37. package/scripts/check-v4-release-topology.mjs +237 -0
  38. package/scripts/dev-delivery-warrant.mjs +13 -4
  39. package/scripts/generate-channel-promotion-workflow.mjs +12 -54
  40. package/scripts/v3-v4-capability-catalog.mjs +107 -0
  41. package/scripts/v4-declarative-promotion-admission.mjs +4 -1
  42. package/scripts/capture-package-release-propagation.mjs +0 -263
  43. package/scripts/publication-commit-evidence.mjs +0 -444
  44. package/scripts/publish-github-artifact-attestation-evidence.mjs +0 -201
  45. package/scripts/stage-github-artifact-attestation-inputs.mjs +0 -65
@@ -16518,7 +16518,7 @@
16518
16518
  "evidence": {
16519
16519
  "path": ".buildchain/release-impact.json",
16520
16520
  "selector": "$",
16521
- "valueRoot": "sha256:86635418114935d03650376b734aeb2e081648ba519d1f2ae9eece184934a7a3"
16521
+ "valueRoot": "sha256:8411804d1efba911b09a0e83494c68affe7cfede5bc5134f12cbede12be1f655"
16522
16522
  }
16523
16523
  }
16524
16524
  },
@@ -17266,7 +17266,7 @@
17266
17266
  "evidence": {
17267
17267
  "path": "dist/site/node-api-registry.json",
17268
17268
  "selector": "exports[export=\"./github-governance-authority\"]",
17269
- "valueRoot": "sha256:e8fd60fb66ceef4dc83a727c98eec0df00824a2bb5b3cb151b659c022b0acbee"
17269
+ "valueRoot": "sha256:c840ddeacf5eb8da14aee3e6879f0827aa965aa0187aecc36ca776d07bb6cdab"
17270
17270
  }
17271
17271
  }
17272
17272
  },
@@ -17596,7 +17596,7 @@
17596
17596
  "evidence": {
17597
17597
  "path": "dist/site/node-api-registry.json",
17598
17598
  "selector": "exports[export=\"./paper\"]",
17599
- "valueRoot": "sha256:cfcd0b854e3301c651106bb9e1a85980d8d1fdc143b52f197d6cb4722682585e"
17599
+ "valueRoot": "sha256:e86f76742a70d77039c39d9fb106de20c99458ccc07b65fc674328d2a952f819"
17600
17600
  }
17601
17601
  }
17602
17602
  },
@@ -17706,7 +17706,7 @@
17706
17706
  "evidence": {
17707
17707
  "path": "dist/site/node-api-registry.json",
17708
17708
  "selector": "exports[export=\"./publication-control-plane-audit\"]",
17709
- "valueRoot": "sha256:cf82832e74c4e7ae5e5d5ae1c0ec867e6eedefbeebd0a60d803dcd2df68e8813"
17709
+ "valueRoot": "sha256:1bb25a02f8d3ef0148c3e2a4ad9b6a94a841adc1ff1daf94f98d5e34c195fd56"
17710
17710
  }
17711
17711
  }
17712
17712
  },
@@ -17926,7 +17926,7 @@
17926
17926
  "evidence": {
17927
17927
  "path": "dist/site/node-api-registry.json",
17928
17928
  "selector": "exports[export=\"./release-candidate-recovery\"]",
17929
- "valueRoot": "sha256:01261a72dc7d43e61d5a9ec649ce4d7dfee1ab1c0148bd6cff0edad40aba008b"
17929
+ "valueRoot": "sha256:131e9c0f108a311b8246d8dfc55ff9d347cb9255162452f392874d6b01acf203"
17930
17930
  }
17931
17931
  }
17932
17932
  },
@@ -17970,7 +17970,7 @@
17970
17970
  "evidence": {
17971
17971
  "path": "dist/site/node-api-registry.json",
17972
17972
  "selector": "exports[export=\"./release-passport\"]",
17973
- "valueRoot": "sha256:252874ae31215dc568e4184ec199c985b6a7cb8e887c5a89dcb3d73bfe960f02"
17973
+ "valueRoot": "sha256:6a7403eb6020c6af989a721021aa6b9715df7db70c9f5da89f2b689c3ba767ae"
17974
17974
  }
17975
17975
  }
17976
17976
  },
@@ -18168,7 +18168,7 @@
18168
18168
  "evidence": {
18169
18169
  "path": "dist/site/buildchain-contract.json",
18170
18170
  "selector": "$",
18171
- "valueRoot": "sha256:9b6a3e20dc4e4170c22306b8ac4a7ee67aabd2be51646872a1bfdfecb83fff64"
18171
+ "valueRoot": "sha256:5373a6b746a389305d55d58d93b9aebf1ca61e2b13e32aab309e98f41a89b13c"
18172
18172
  }
18173
18173
  }
18174
18174
  },
@@ -18256,7 +18256,7 @@
18256
18256
  "evidence": {
18257
18257
  "path": "dist/site/kfd-claims.json",
18258
18258
  "selector": "$",
18259
- "valueRoot": "sha256:f80363cd21046e7aff9ac3893ece8d8b1684de96ff5119fb0ca9fe8dd4e342bb"
18259
+ "valueRoot": "sha256:94d546cec054e24f53841af5a46808cd452d0005f5bfcf8f7d370711ae446f0b"
18260
18260
  }
18261
18261
  }
18262
18262
  },
@@ -18278,7 +18278,7 @@
18278
18278
  "evidence": {
18279
18279
  "path": "dist/site/manual-registry.json",
18280
18280
  "selector": "$",
18281
- "valueRoot": "sha256:b59b28864798f61c0c893afd23c9a234ef9bafae98fe579bc7a3d160dd89c46b"
18281
+ "valueRoot": "sha256:b446b41f1342623ad5189850985553a9044dd14f3c4a24aa44cfc54db95ce876"
18282
18282
  }
18283
18283
  }
18284
18284
  },
@@ -18300,7 +18300,7 @@
18300
18300
  "evidence": {
18301
18301
  "path": "dist/site/node-api-registry.json",
18302
18302
  "selector": "$",
18303
- "valueRoot": "sha256:872cc8fb9f34546c2f031c2adc04c164196895c4fa039b110546116b826405b8"
18303
+ "valueRoot": "sha256:9b173aa7390cc94d24b9a2b5711a367b15771b73773cd8f0a78f5c71ed054701"
18304
18304
  }
18305
18305
  }
18306
18306
  },
@@ -18322,7 +18322,7 @@
18322
18322
  "evidence": {
18323
18323
  "path": "dist/site/page-registry.json",
18324
18324
  "selector": "$",
18325
- "valueRoot": "sha256:21b32f318518e79b75f1097128c582a27db32934cc0a7d6d625d2bc3c5b9696c"
18325
+ "valueRoot": "sha256:e01f49540ad858f2289ed212bdae9dab01be495f6c57d7d14ab07d3639201d3f"
18326
18326
  }
18327
18327
  }
18328
18328
  },
@@ -18344,7 +18344,7 @@
18344
18344
  "evidence": {
18345
18345
  "path": "dist/site/public-surface-audit.json",
18346
18346
  "selector": "$",
18347
- "valueRoot": "sha256:de1e9d5d7272dab92d5c9190859095facb34493ece6f37a1955aba2c6d7d1aed"
18347
+ "valueRoot": "sha256:dfdf7e6d38ea9b2cfec280831472ba61a825b88578437bc3b4965b61c656e0b1"
18348
18348
  }
18349
18349
  }
18350
18350
  },
@@ -18564,7 +18564,7 @@
18564
18564
  "evidence": {
18565
18565
  "path": "dist/site/site-manifest.json",
18566
18566
  "selector": "$",
18567
- "valueRoot": "sha256:82fa02f7b83f5edcaf93288122d0e653795ed3301b0b6c2ca8ebcd23eddbdeec"
18567
+ "valueRoot": "sha256:52413ce389353ea7fd83598a6f5c2ebbb5a88f163cff60ec4227324384d96fd8"
18568
18568
  }
18569
18569
  }
18570
18570
  },
@@ -18586,7 +18586,7 @@
18586
18586
  "evidence": {
18587
18587
  "path": "dist/site/workflow-registry.json",
18588
18588
  "selector": "$",
18589
- "valueRoot": "sha256:09480a4485d410fb1a073178eea6448258b6c9e22200d22ac1f0519c78beecc7"
18589
+ "valueRoot": "sha256:590efe0d07ae20987f36056835f21e2a17fe40c242eb55032776b9bc4c0c7735"
18590
18590
  }
18591
18591
  }
18592
18592
  },
@@ -68879,7 +68879,7 @@
68879
68879
  "evidence": {
68880
68880
  "path": "architecture/v4-runtime-semantic-closure.json",
68881
68881
  "selector": "capability[id=\"publish-transaction\"]",
68882
- "valueRoot": "sha256:6917cce13c939d813f2ddcf099cf22fbbc2a601ed94bcc3ac56b7e495fc0610a"
68882
+ "valueRoot": "sha256:4e24bcc1f070542ed22f3892d6f75f0d437e3242bfdee770c08788eca4407900"
68883
68883
  }
68884
68884
  }
68885
68885
  },
@@ -102360,9 +102360,9 @@
102360
102360
  },
102361
102361
  "liveV4": {
102362
102362
  "branch": "origin/dev/v4/v4.0",
102363
- "commit": "11b4ab21405cdffcc9d6dc10cd947618d9d1bf9c",
102363
+ "commit": "97edd5b93eb67e5bf36ad55726e08231b47b70c0",
102364
102364
  "role": "execution-time-protected-target",
102365
- "tree": "e427a70d932d1bf9575841c0e89974e70a8f6e23"
102365
+ "tree": "05b14410fd3350bc6a621fe2c1bef575fef9b5fd"
102366
102366
  },
102367
102367
  "priorFamilyV3": {
102368
102368
  "branch": "origin/dev/v3/v3.0",
@@ -0,0 +1,119 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contract": "kungfu-buildchain-v4-release-invocation-fixtures/v1",
4
+ "invocations": {
5
+ "alpha": {
6
+ "schema": "kungfu-buildchain-v4-release-invocation/v1",
7
+ "publisher": {
8
+ "repository": "kungfu-systems/buildchain",
9
+ "workflow": ".github/workflows/.release-candidate-promote.yml",
10
+ "workflowSha": "30cbbc46870871a0eacbe952935ea753e473ff25",
11
+ "job": "apply"
12
+ },
13
+ "runtime": {
14
+ "repository": "kungfu-systems/buildchain",
15
+ "commit": "30cbbc46870871a0eacbe952935ea753e473ff25",
16
+ "tree": "b86fea30cb92a32215206f159708a8ea1d10d462"
17
+ },
18
+ "candidate": {
19
+ "repository": "kungfu-systems/kungfu",
20
+ "commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
21
+ "tree": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
22
+ "version": "4.0.0-alpha.9"
23
+ },
24
+ "target": {
25
+ "channel": "alpha",
26
+ "tag": "v4.0.0-alpha.9",
27
+ "expectedOldSha": "cccccccccccccccccccccccccccccccccccccccc"
28
+ },
29
+ "authority": {
30
+ "policyRoot": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
31
+ "qualificationRoot": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
32
+ "warrantRoot": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
33
+ }
34
+ },
35
+ "stable": {
36
+ "schema": "kungfu-buildchain-v4-release-invocation/v1",
37
+ "publisher": {
38
+ "repository": "kungfu-systems/buildchain",
39
+ "workflow": ".github/workflows/.release-candidate-promote.yml",
40
+ "workflowSha": "30cbbc46870871a0eacbe952935ea753e473ff25",
41
+ "job": "apply"
42
+ },
43
+ "runtime": {
44
+ "repository": "kungfu-systems/buildchain",
45
+ "commit": "30cbbc46870871a0eacbe952935ea753e473ff25",
46
+ "tree": "b86fea30cb92a32215206f159708a8ea1d10d462"
47
+ },
48
+ "candidate": {
49
+ "repository": "kungfu-systems/kungfu",
50
+ "commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
51
+ "tree": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
52
+ "version": "4.0.0"
53
+ },
54
+ "target": {
55
+ "channel": "stable",
56
+ "tag": "v4.0.0",
57
+ "expectedOldSha": "cccccccccccccccccccccccccccccccccccccccc"
58
+ },
59
+ "authority": {
60
+ "policyRoot": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
61
+ "qualificationRoot": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
62
+ "warrantRoot": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
63
+ }
64
+ }
65
+ },
66
+ "cases": [
67
+ {
68
+ "id": "alpha-fresh",
69
+ "invocation": "alpha",
70
+ "route": { "surface": "alpha", "execution": "fresh" }
71
+ },
72
+ {
73
+ "id": "alpha-resume",
74
+ "invocation": "alpha",
75
+ "route": { "surface": "alpha", "execution": "resume" }
76
+ },
77
+ {
78
+ "id": "public-alpha",
79
+ "invocation": "alpha",
80
+ "route": { "surface": "public", "execution": "fresh" }
81
+ },
82
+ {
83
+ "id": "private-alpha",
84
+ "invocation": "alpha",
85
+ "route": { "surface": "private", "execution": "resume" }
86
+ },
87
+ {
88
+ "id": "declarative-alpha",
89
+ "invocation": "alpha",
90
+ "route": { "surface": "declarative", "execution": "fresh" }
91
+ },
92
+ {
93
+ "id": "legacy-alpha",
94
+ "invocation": "alpha",
95
+ "route": { "surface": "legacy-compatible", "execution": "resume" }
96
+ },
97
+ {
98
+ "id": "stable-fresh",
99
+ "invocation": "stable",
100
+ "route": { "surface": "stable", "execution": "fresh" }
101
+ },
102
+ {
103
+ "id": "stable-resume",
104
+ "invocation": "stable",
105
+ "route": { "surface": "stable", "execution": "resume" }
106
+ }
107
+ ],
108
+ "equivalenceGroups": [
109
+ [
110
+ "alpha-fresh",
111
+ "alpha-resume",
112
+ "public-alpha",
113
+ "private-alpha",
114
+ "declarative-alpha",
115
+ "legacy-alpha"
116
+ ],
117
+ ["stable-fresh", "stable-resume"]
118
+ ]
119
+ }
@@ -0,0 +1,238 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contract": "kungfu-buildchain-v4-release-topology/v1",
4
+ "sourceCut": {
5
+ "branch": "dev/v4/v4.0",
6
+ "commit": "30cbbc46870871a0eacbe952935ea753e473ff25",
7
+ "tree": "b86fea30cb92a32215206f159708a8ea1d10d462"
8
+ },
9
+ "enforcement": "converged",
10
+ "closedWorld": {
11
+ "workflowPaths": [
12
+ ".github/workflows/.publication-authority.yml",
13
+ ".github/workflows/.release-candidate-promote.yml",
14
+ ".github/workflows/.release-elastic-beanstalk.yml",
15
+ ".github/workflows/.release-new-version.yml",
16
+ ".github/workflows/.sam-release.yml",
17
+ ".github/workflows/.wheel-release.yml",
18
+ ".github/workflows/buildchain-ref-promotion-recovery.yml",
19
+ ".github/workflows/buildchain-ref-promotion.yml",
20
+ ".github/workflows/npm-publish.yml",
21
+ ".github/workflows/paper-release-sealed.yml",
22
+ ".github/workflows/paper-release.yml",
23
+ ".github/workflows/release-candidate-promote.yml",
24
+ ".github/workflows/release-new-version.yml",
25
+ ".github/workflows/release-tail.yml",
26
+ ".github/workflows/v4-declarative-release-tail-dogfood.yml"
27
+ ],
28
+ "unknownTopologyPolicy": "fail-closed"
29
+ },
30
+ "semanticScope": {
31
+ "workflowPaths": [
32
+ ".github/workflows/.release-candidate-promote.yml",
33
+ ".github/workflows/buildchain-ref-promotion-recovery.yml",
34
+ ".github/workflows/buildchain-ref-promotion.yml",
35
+ ".github/workflows/release-candidate-promote.yml",
36
+ ".github/workflows/v4-declarative-release-tail-dogfood.yml"
37
+ ],
38
+ "excludedMechanisms": [
39
+ "Paper product release",
40
+ "npm dry-run",
41
+ "v3 rollback workflows",
42
+ "retired compatibility workflows"
43
+ ]
44
+ },
45
+ "baselineMetrics": {
46
+ "workflowCount": 15,
47
+ "jobCount": 38,
48
+ "reusableEdgeCount": 11,
49
+ "mutationRelevantNodeCount": 25,
50
+ "contentsWriteJobCount": 10,
51
+ "oidcWriteJobCount": 9,
52
+ "semanticMutationRelevantNodeCount": 17
53
+ },
54
+ "targetBudgets": {
55
+ "semanticBoundaries": ["QUALIFY", "APPLY", "SETTLE"],
56
+ "maximumMutationRelevantNodeCount": 8,
57
+ "contentsWriteJobCount": 1,
58
+ "oidcWriteJobCount": 1,
59
+ "publisherIdentityCount": 1,
60
+ "runtimeIdentityCount": 1,
61
+ "terminalReceiptAuthorityCount": 1
62
+ },
63
+ "authorityClassification": {
64
+ "publisher": {
65
+ "current": [
66
+ ".github/workflows/.release-candidate-promote.yml#legacy-promote",
67
+ ".github/workflows/.release-candidate-promote.yml#v4-declarative-promote"
68
+ ],
69
+ "target": ".github/workflows/.release-candidate-promote.yml#apply"
70
+ },
71
+ "runtimeSelectors": {
72
+ "discoveryOnly": ["v4-alpha", "v4", "alpha/v4/v4.0"],
73
+ "postAdmissionPolicy": "exact-sha-only"
74
+ },
75
+ "engines": {
76
+ "current": ["legacy-promote", "v4-declarative-promote"],
77
+ "target": "release-transaction"
78
+ },
79
+ "terminalProjections": {
80
+ "current": ["promote", "controller-receipt", "release-tail receipt"],
81
+ "target": "ReleaseReceipt"
82
+ }
83
+ },
84
+ "observedTopology": {
85
+ "jobRecordFields": [
86
+ "id",
87
+ "kind",
88
+ "uses",
89
+ "contentsPermission",
90
+ "oidcPermission",
91
+ "carriers",
92
+ "mutationSignals"
93
+ ],
94
+ "workflows": [
95
+ {
96
+ "path": ".github/workflows/.publication-authority.yml",
97
+ "triggers": ["workflow_call"],
98
+ "jobs": [
99
+ "verify|runner|-|read|-|artifactDownload,artifactUpload,jobOutput|-"
100
+ ],
101
+ "reusableEdges": []
102
+ },
103
+ {
104
+ "path": ".github/workflows/.release-candidate-promote.yml",
105
+ "triggers": ["workflow_call"],
106
+ "jobs": [
107
+ "apply|runner|-|write|write|artifactDownload,artifactUpload|contents-write,oidc-write,promotion-runtime",
108
+ "qualify|runner|-|read|-|artifactUpload,jobOutput|-",
109
+ "settle|runner|-|read|-|artifactDownload,artifactUpload,jobOutput|-"
110
+ ],
111
+ "reusableEdges": []
112
+ },
113
+ {
114
+ "path": ".github/workflows/.release-elastic-beanstalk.yml",
115
+ "triggers": ["workflow_call"],
116
+ "jobs": ["retired|runner|-|-|-|-|-"],
117
+ "reusableEdges": []
118
+ },
119
+ {
120
+ "path": ".github/workflows/.release-new-version.yml",
121
+ "triggers": ["workflow_call"],
122
+ "jobs": ["retired|runner|-|-|-|-|-"],
123
+ "reusableEdges": []
124
+ },
125
+ {
126
+ "path": ".github/workflows/.sam-release.yml",
127
+ "triggers": ["workflow_call"],
128
+ "jobs": ["retired|runner|-|-|-|-|-"],
129
+ "reusableEdges": []
130
+ },
131
+ {
132
+ "path": ".github/workflows/.wheel-release.yml",
133
+ "triggers": ["workflow_call"],
134
+ "jobs": ["retired|runner|-|-|-|-|-"],
135
+ "reusableEdges": []
136
+ },
137
+ {
138
+ "path": ".github/workflows/buildchain-ref-promotion-recovery.yml",
139
+ "triggers": ["workflow_dispatch"],
140
+ "jobs": [
141
+ "resume|reusable-call|kungfu-systems/buildchain/.github/workflows/release-candidate-promote.yml@v4-alpha|write|write|-|contents-write,oidc-write"
142
+ ],
143
+ "reusableEdges": [
144
+ "kungfu-systems/buildchain/.github/workflows/release-candidate-promote.yml@v4-alpha"
145
+ ]
146
+ },
147
+ {
148
+ "path": ".github/workflows/buildchain-ref-promotion.yml",
149
+ "triggers": ["workflow_dispatch", "workflow_run:completed"],
150
+ "jobs": [
151
+ "promote|reusable-call|kungfu-systems/buildchain/.github/workflows/.release-candidate-promote.yml@v4-alpha|write|write|-|contents-write,oidc-write",
152
+ "reject-invalid-candidate-recovery|runner|-|read|-|-|-",
153
+ "reject-invalid-durable-recovery|runner|-|read|-|-|-",
154
+ "reject-manual-apply|runner|-|read|-|-|-"
155
+ ],
156
+ "reusableEdges": [
157
+ "kungfu-systems/buildchain/.github/workflows/.release-candidate-promote.yml@v4-alpha"
158
+ ]
159
+ },
160
+ {
161
+ "path": ".github/workflows/npm-publish.yml",
162
+ "triggers": ["workflow_dispatch"],
163
+ "jobs": ["dry-run|runner|-|-|-|-|direct-publication-command"],
164
+ "reusableEdges": []
165
+ },
166
+ {
167
+ "path": ".github/workflows/paper-release-sealed.yml",
168
+ "triggers": ["workflow_call"],
169
+ "jobs": [
170
+ "publication-authority|reusable-call|./.github/workflows/.publication-authority.yml|read|-|-|-",
171
+ "publication-candidate|reusable-call|./.github/workflows/publication-artifact.yml|read|-|-|-",
172
+ "publish|runner|-|read|write|artifactDownload,artifactUpload,jobOutput|contents-write,oidc-write,promotion-runtime"
173
+ ],
174
+ "reusableEdges": [
175
+ "./.github/workflows/.publication-authority.yml",
176
+ "./.github/workflows/publication-artifact.yml"
177
+ ]
178
+ },
179
+ {
180
+ "path": ".github/workflows/paper-release.yml",
181
+ "triggers": ["workflow_call"],
182
+ "jobs": [
183
+ "paper-release|runner|-|write|write|artifactUpload,jobOutput|contents-write,oidc-write,promotion-runtime",
184
+ "publication-authority|reusable-call|./.github/workflows/.publication-authority.yml|read|-|-|-"
185
+ ],
186
+ "reusableEdges": ["./.github/workflows/.publication-authority.yml"]
187
+ },
188
+ {
189
+ "path": ".github/workflows/release-candidate-promote.yml",
190
+ "triggers": ["workflow_call"],
191
+ "jobs": [
192
+ "consumer-admission|runner|-|read|-|artifactUpload|-",
193
+ "invoke|reusable-call|kungfu-systems/buildchain/.github/workflows/.release-candidate-promote.yml@v4-alpha|write|write|-|contents-write,oidc-write",
194
+ "resolve-promotion|runner|-|read|-|jobOutput|-"
195
+ ],
196
+ "reusableEdges": [
197
+ "kungfu-systems/buildchain/.github/workflows/.release-candidate-promote.yml@v4-alpha"
198
+ ]
199
+ },
200
+ {
201
+ "path": ".github/workflows/release-new-version.yml",
202
+ "triggers": ["pull_request:closed"],
203
+ "jobs": ["buildchain-self-release|runner|-|-|-|-|-"],
204
+ "reusableEdges": []
205
+ },
206
+ {
207
+ "path": ".github/workflows/release-tail.yml",
208
+ "triggers": ["workflow_call"],
209
+ "jobs": ["release-tail|runner|-|-|-|artifactUpload|-"],
210
+ "reusableEdges": []
211
+ },
212
+ {
213
+ "path": ".github/workflows/v4-declarative-release-tail-dogfood.yml",
214
+ "triggers": ["workflow_dispatch"],
215
+ "jobs": [
216
+ "publish|reusable-call|kungfu-systems/buildchain/.github/workflows/release-candidate-promote.yml@v4-alpha|-|-|-|-"
217
+ ],
218
+ "reusableEdges": [
219
+ "kungfu-systems/buildchain/.github/workflows/release-candidate-promote.yml@v4-alpha"
220
+ ]
221
+ }
222
+ ],
223
+ "metrics": {
224
+ "workflowCount": 15,
225
+ "jobCount": 25,
226
+ "reusableEdgeCount": 7,
227
+ "mutationRelevantNodeCount": 16,
228
+ "contentsWriteJobCount": 6,
229
+ "oidcWriteJobCount": 6
230
+ },
231
+ "semanticMetrics": {
232
+ "workflowCount": 5,
233
+ "mutationRelevantNodeCount": 8,
234
+ "contentsWriteJobCount": 1,
235
+ "oidcWriteJobCount": 1
236
+ }
237
+ }
238
+ }
@@ -16,15 +16,6 @@
16
16
  "owner": "buildchain-maintainers",
17
17
  "sunsetCondition": "Remove after every known caller migrates to the lifecycle version command."
18
18
  },
19
- {
20
- "path": ".github/workflows/.release-candidate-promote.yml",
21
- "token": "actions/create-github-app-token@v2",
22
- "expectedOccurrences": 1,
23
- "classification": "third-party-action-version",
24
- "callerStatus": "active",
25
- "owner": "actions/create-github-app-token maintainers",
26
- "sunsetCondition": "Upgrade through normal dependency review when a compatible successor is adopted."
27
- },
28
19
  {
29
20
  "path": ".github/workflows/.release-docker.yml",
30
21
  "token": "workflows v2 Docker release path is retired",
@@ -22,7 +22,7 @@
22
22
  "ref": "v4-alpha",
23
23
  "sha": "dddddddddddddddddddddddddddddddddddddddd",
24
24
  "contractRoot": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
25
- "consumerPolicyReceiptRoot": "sha256:e545cb7dc918ba14b02e9a557623edb7aaadeee180b211b8a3164d67af03e789"
25
+ "consumerPolicyReceiptRoot": "sha256:8d8e55a4ae07a57a2a262e138f55148b05916c364b3d086530e1392c982b886f"
26
26
  },
27
27
  "warrant": {
28
28
  "candidateId": "candidate-alpha-2",
@@ -0,0 +1,86 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://buildchain.libkungfu.dev/schema/v4-release-invocation-v1.schema.json",
4
+ "title": "Buildchain v4 canonical ReleaseInvocation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema",
9
+ "publisher",
10
+ "runtime",
11
+ "candidate",
12
+ "target",
13
+ "authority"
14
+ ],
15
+ "properties": {
16
+ "schema": { "const": "kungfu-buildchain-v4-release-invocation/v1" },
17
+ "publisher": { "$ref": "#/$defs/publisher" },
18
+ "runtime": { "$ref": "#/$defs/runtime" },
19
+ "candidate": { "$ref": "#/$defs/candidate" },
20
+ "target": { "$ref": "#/$defs/target" },
21
+ "authority": { "$ref": "#/$defs/authority" }
22
+ },
23
+ "$defs": {
24
+ "sha": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
25
+ "root": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
26
+ "publisher": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["repository", "workflow", "workflowSha", "job"],
30
+ "properties": {
31
+ "repository": { "const": "kungfu-systems/buildchain" },
32
+ "workflow": {
33
+ "const": ".github/workflows/.release-candidate-promote.yml"
34
+ },
35
+ "workflowSha": { "$ref": "#/$defs/sha" },
36
+ "job": { "const": "apply" }
37
+ }
38
+ },
39
+ "runtime": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["repository", "commit", "tree"],
43
+ "properties": {
44
+ "repository": { "const": "kungfu-systems/buildchain" },
45
+ "commit": { "$ref": "#/$defs/sha" },
46
+ "tree": { "$ref": "#/$defs/sha" }
47
+ }
48
+ },
49
+ "candidate": {
50
+ "type": "object",
51
+ "additionalProperties": false,
52
+ "required": ["repository", "commit", "tree", "version"],
53
+ "properties": {
54
+ "repository": { "type": "string", "pattern": "^[ -~]+$" },
55
+ "commit": { "$ref": "#/$defs/sha" },
56
+ "tree": { "$ref": "#/$defs/sha" },
57
+ "version": { "type": "string", "pattern": "^[ -~]+$" }
58
+ }
59
+ },
60
+ "target": {
61
+ "type": "object",
62
+ "additionalProperties": false,
63
+ "required": ["channel", "tag", "expectedOldSha"],
64
+ "properties": {
65
+ "channel": { "enum": ["alpha", "stable"] },
66
+ "tag": {
67
+ "type": "string",
68
+ "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+(?:-[0-9A-Za-z.-]+)?$"
69
+ },
70
+ "expectedOldSha": {
71
+ "oneOf": [{ "$ref": "#/$defs/sha" }, { "type": "null" }]
72
+ }
73
+ }
74
+ },
75
+ "authority": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "required": ["policyRoot", "qualificationRoot", "warrantRoot"],
79
+ "properties": {
80
+ "policyRoot": { "$ref": "#/$defs/root" },
81
+ "qualificationRoot": { "$ref": "#/$defs/root" },
82
+ "warrantRoot": { "$ref": "#/$defs/root" }
83
+ }
84
+ }
85
+ }
86
+ }