@kungfu-tech/buildchain 3.0.2 → 3.0.3-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.
- package/AGENTS.md +1 -1
- package/CONTRIBUTING.md +1 -1
- package/README.md +27 -1
- package/actions/promote-buildchain-ref/README.md +90 -19
- package/actions/report-buildchain-issue/README.md +20 -2
- package/actions/run-lifecycle/README.md +5 -0
- package/actions/validate-config/README.md +19 -1
- package/bin/buildchain.mjs +56 -2
- package/bin/internal/command-registry.mjs +82 -0
- package/bin/internal/trust-release-cli.mjs +1 -0
- package/contracts/auditable-demo-media-profiles-v1.json +116 -1
- package/contracts/buildchain-v2-residuals-v1.json +146 -0
- package/contracts/evidence/auditable-demo-responsive-web-delivery-v1.json +143 -0
- package/contracts/evidence/auditable-demo-web-delivery-v1.json +7 -3
- package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/complete-transcript.txt +2 -0
- package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/public-projection.json +16 -0
- package/contracts/fixtures/auditable-demo-responsive-web-delivery-v1/scene.json +12 -0
- package/dist/site/buildchain-contract.json +188 -46
- package/dist/site/buildchain-site.json +181 -90
- package/dist/site/capability-registry.json +5 -5
- package/dist/site/cli-registry.json +860 -98
- package/dist/site/controller-registry.json +118 -5
- package/dist/site/kfd-claims.json +233 -19
- package/dist/site/kfd-upstream-aggregate.json +1 -1
- package/dist/site/manual-registry.json +20 -20
- package/dist/site/node-api-registry.json +374 -59
- package/dist/site/page-registry.json +156 -65
- package/dist/site/public-surface-audit.json +231 -22
- package/dist/site/publication-registry.json +4 -4
- package/dist/site/release-provenance.json +3 -0
- package/dist/site/site-manifest.json +24 -24
- package/dist/site/workflow-registry.json +575 -79
- package/docs/MAP.md +22 -4
- package/docs/auditable-demo.md +54 -13
- package/docs/aws-us-elastic-runner-burst-plane.md +381 -0
- package/docs/cli.md +119 -12
- package/docs/consumer-issue-reporting.md +20 -2
- package/docs/dev-alpha-candidate-patrol.md +24 -10
- package/docs/github-governance-authority.md +24 -31
- package/docs/lifecycle-protocol.md +20 -2
- package/docs/migration-inventory.md +24 -5
- package/docs/observed-evidence-patrol.md +28 -12
- package/docs/ownership.md +19 -1
- package/docs/publication-artifacts.md +158 -18
- package/docs/publication-authority.md +4 -4
- package/docs/publish-transaction.md +78 -31
- package/docs/release-candidate.md +24 -0
- package/docs/release-flow.md +50 -32
- package/docs/release-governance.md +39 -32
- package/docs/release-passport.md +4 -0
- package/docs/release-propagation.md +57 -12
- package/docs/reusable-build-surface.md +218 -90
- package/docs/runtime-train-validation.md +20 -2
- package/docs/shifu-gate-profiles.md +7 -1
- package/docs/stable-candidate-patrol.md +6 -6
- package/docs/toolkit-observability.md +22 -0
- package/docs/versioning.md +46 -24
- package/docs/web-surface-deployments.md +82 -1
- package/package.json +7 -5
- package/packages/core/README.md +60 -4
- package/packages/core/artifact-signing.js +1 -0
- package/packages/core/buildchain-contract.js +9 -4
- package/packages/core/cache-evidence.js +1 -0
- package/packages/core/controller-evidence.js +2 -0
- package/packages/core/diagnostics.js +105 -30
- package/packages/core/github-governance-authority.js +25 -17
- package/packages/core/index.js +40 -0
- package/packages/core/paper.js +3226 -0
- package/packages/core/public-surface-audit.js +3 -0
- package/packages/core/publication-artifact.js +1 -6
- package/packages/core/publication-authority.js +1 -0
- package/packages/core/publication-control-plane-audit.js +28 -0
- package/packages/core/publication-reproducibility.js +947 -0
- package/packages/core/publication-sealed-bundle.js +190 -0
- package/packages/core/publish-transaction.js +147 -17
- package/packages/core/release-candidate.js +234 -0
- package/packages/core/release-passport.js +519 -228
- package/packages/core/release-propagation.js +175 -1
- package/packages/core/stable-release-gate.js +4 -1
- package/scripts/artifact-signing-delegation.mjs +268 -0
- package/scripts/audit-github-governance.mjs +32 -13
- package/scripts/audit-publication-control-plane.mjs +17 -8
- package/scripts/auditable-demo.mjs +266 -7
- package/scripts/aws-codebuild-toolchain.mjs +285 -0
- package/scripts/aws-macos-jit-core.mjs +378 -0
- package/scripts/aws-macos-jit.mjs +123 -0
- package/scripts/aws-runner-burst-core.mjs +248 -0
- package/scripts/aws-runner-burst.mjs +79 -0
- package/scripts/aws-windows-jit-core.mjs +374 -0
- package/scripts/aws-windows-jit.mjs +121 -0
- package/scripts/build-contract-core.mjs +69 -6
- package/scripts/build-standalone-binary.mjs +23 -0
- package/scripts/buildchain-contract-lock.mjs +1 -1
- package/scripts/buildchain-patrol.mjs +1 -1
- package/scripts/check-internal-architecture.mjs +69 -2
- package/scripts/check-inventory.mjs +70 -2
- package/scripts/check-javascript-syntax.mjs +31 -0
- package/scripts/check-maintainability.mjs +371 -0
- package/scripts/compiler-cache-evidence.mjs +221 -0
- package/scripts/dev-alpha-candidate-patrol.mjs +288 -43
- package/scripts/dispatch-artifact-signing-authority.mjs +7 -1
- package/scripts/finalize-native-artifact-signing-result.mjs +185 -31
- package/scripts/gate-profile-core.mjs +6 -1
- package/scripts/generate-channel-promotion-workflow.mjs +3 -12
- package/scripts/generate-release-candidate-passport.mjs +4 -0
- package/scripts/generate-site-bundle.mjs +84 -18
- package/scripts/import-artifact-signing-results.mjs +64 -5
- package/scripts/inspect-artifact-signing-requests.mjs +52 -14
- package/scripts/maintainability-metrics.mjs +339 -0
- package/scripts/npm-publish-transaction.mjs +57 -6
- package/scripts/observed-evidence.mjs +151 -33
- package/scripts/paper.mjs +645 -0
- package/scripts/promotion-channel-router.mjs +16 -4
- package/scripts/publication-reproducibility.mjs +62 -0
- package/scripts/reconcile-github-governance.mjs +8 -1
- package/scripts/release-propagation.mjs +39 -0
- package/scripts/resolve-artifact-signing-upload-route.mjs +55 -0
- package/scripts/resolve-build-contract.mjs +6 -0
- package/scripts/route-offline-runners.mjs +236 -0
- package/scripts/run-candidate-body-prefix-renderer.mjs +187 -0
- package/scripts/run-lifecycle-core.mjs +62 -1
- package/scripts/runtime-ref-core.mjs +36 -4
- package/scripts/seal-artifact-signing-requests.mjs +64 -12
- package/scripts/stable-candidate-qualification.mjs +50 -0
- package/scripts/verify-artifact-signing-results.mjs +26 -1
- package/scripts/web-surface-core.mjs +272 -86
- package/scripts/web-surface-production-decision.mjs +19 -3
|
@@ -131,6 +131,121 @@
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
},
|
|
134
|
+
"responsive-web-delivery-v1": {
|
|
135
|
+
"extends": "web-delivery-v1",
|
|
136
|
+
"mode": "web-delivery",
|
|
137
|
+
"renditions": [
|
|
138
|
+
{
|
|
139
|
+
"path": "demo.gif",
|
|
140
|
+
"role": "readme-compatibility",
|
|
141
|
+
"mimeType": "image/gif",
|
|
142
|
+
"container": "gif",
|
|
143
|
+
"videoCodec": "gif",
|
|
144
|
+
"audioStreams": 0,
|
|
145
|
+
"maximumBytes": 1048576,
|
|
146
|
+
"budgetBasis": {
|
|
147
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
148
|
+
"observedPath": "demo.gif",
|
|
149
|
+
"observedBytes": 40826,
|
|
150
|
+
"multiplier": 16,
|
|
151
|
+
"rounding": "next-power-of-two"
|
|
152
|
+
},
|
|
153
|
+
"dimensions": {
|
|
154
|
+
"policy": "exact-downscale-same-aspect",
|
|
155
|
+
"width": 1280,
|
|
156
|
+
"height": 720
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"path": "demo.mp4",
|
|
161
|
+
"role": "primary-video",
|
|
162
|
+
"mimeType": "video/mp4",
|
|
163
|
+
"container": "mp4",
|
|
164
|
+
"videoCodec": "h264",
|
|
165
|
+
"pixelFormat": "yuv420p",
|
|
166
|
+
"audioStreams": 0,
|
|
167
|
+
"maximumBytes": 2097152,
|
|
168
|
+
"budgetBasis": {
|
|
169
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
170
|
+
"observedPath": "demo.mp4",
|
|
171
|
+
"observedBytes": 27038,
|
|
172
|
+
"multiplier": 64,
|
|
173
|
+
"rounding": "next-power-of-two"
|
|
174
|
+
},
|
|
175
|
+
"progressiveDownload": "moov-before-mdat",
|
|
176
|
+
"frameRatePolicy": "scene-exact"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"path": "demo.webm",
|
|
180
|
+
"role": "alternate-video",
|
|
181
|
+
"mimeType": "video/webm",
|
|
182
|
+
"container": "webm",
|
|
183
|
+
"videoCodec": "vp9",
|
|
184
|
+
"pixelFormat": "yuv420p",
|
|
185
|
+
"audioStreams": 0,
|
|
186
|
+
"maximumBytes": 2097152,
|
|
187
|
+
"budgetBasis": {
|
|
188
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
189
|
+
"observedPath": "demo.webm",
|
|
190
|
+
"observedBytes": 23383,
|
|
191
|
+
"multiplier": 64,
|
|
192
|
+
"rounding": "next-power-of-two"
|
|
193
|
+
},
|
|
194
|
+
"frameRatePolicy": "scene-exact"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"path": "demo-720p.mp4",
|
|
198
|
+
"role": "responsive-primary-video",
|
|
199
|
+
"mimeType": "video/mp4",
|
|
200
|
+
"container": "mp4",
|
|
201
|
+
"videoCodec": "h264",
|
|
202
|
+
"pixelFormat": "yuv420p",
|
|
203
|
+
"audioStreams": 0,
|
|
204
|
+
"maximumBytes": 2097152,
|
|
205
|
+
"budgetBasis": {
|
|
206
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
207
|
+
"observedPath": "demo.mp4",
|
|
208
|
+
"observedBytes": 27038,
|
|
209
|
+
"multiplier": 64,
|
|
210
|
+
"rounding": "next-power-of-two"
|
|
211
|
+
},
|
|
212
|
+
"progressiveDownload": "moov-before-mdat",
|
|
213
|
+
"frameRatePolicy": "scene-exact",
|
|
214
|
+
"dimensions": {
|
|
215
|
+
"policy": "exact-downscale-same-aspect",
|
|
216
|
+
"width": 1280,
|
|
217
|
+
"height": 720
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"path": "demo-720p.webm",
|
|
222
|
+
"role": "responsive-alternate-video",
|
|
223
|
+
"mimeType": "video/webm",
|
|
224
|
+
"container": "webm",
|
|
225
|
+
"videoCodec": "vp9",
|
|
226
|
+
"pixelFormat": "yuv420p",
|
|
227
|
+
"audioStreams": 0,
|
|
228
|
+
"maximumBytes": 2097152,
|
|
229
|
+
"budgetBasis": {
|
|
230
|
+
"evidence": "contracts/evidence/auditable-demo-web-delivery-v1.json",
|
|
231
|
+
"observedPath": "demo.webm",
|
|
232
|
+
"observedBytes": 23383,
|
|
233
|
+
"multiplier": 64,
|
|
234
|
+
"rounding": "next-power-of-two"
|
|
235
|
+
},
|
|
236
|
+
"frameRatePolicy": "scene-exact",
|
|
237
|
+
"dimensions": {
|
|
238
|
+
"policy": "exact-downscale-same-aspect",
|
|
239
|
+
"width": 1280,
|
|
240
|
+
"height": 720
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"singletonRoles": [
|
|
245
|
+
"responsive-primary-video",
|
|
246
|
+
"responsive-alternate-video"
|
|
247
|
+
]
|
|
248
|
+
},
|
|
134
249
|
"site-hero-v1": {
|
|
135
250
|
"extends": "web-delivery-v1",
|
|
136
251
|
"mode": "web-delivery",
|
|
@@ -155,7 +270,7 @@
|
|
|
155
270
|
}
|
|
156
271
|
},
|
|
157
272
|
"qualification": {
|
|
158
|
-
"dimensions": "exact-scene",
|
|
273
|
+
"dimensions": "exact-scene-or-profile-declared-downscale",
|
|
159
274
|
"durationToleranceMs": 600,
|
|
160
275
|
"memberRootAlgorithm": "sha256",
|
|
161
276
|
"nonClaims": [
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": "buildchain.v2-residual-inventory/v1",
|
|
3
|
+
"scope": ".github/workflows on the current default branch",
|
|
4
|
+
"policy": {
|
|
5
|
+
"runtimeDefault": "v3",
|
|
6
|
+
"dogfoodRuntimeDefault": "v3-alpha",
|
|
7
|
+
"unclassifiedV2TokensAllowed": false
|
|
8
|
+
},
|
|
9
|
+
"entries": [
|
|
10
|
+
{
|
|
11
|
+
"path": ".github/workflows/.bump-minor-version.yml",
|
|
12
|
+
"token": "kungfu-systems/buildchain/actions/bump-version@v2",
|
|
13
|
+
"expectedOccurrences": 1,
|
|
14
|
+
"classification": "legacy-compatibility-action",
|
|
15
|
+
"callerStatus": "legacy-reusable",
|
|
16
|
+
"owner": "buildchain-maintainers",
|
|
17
|
+
"sunsetCondition": "Remove after every known caller migrates to the lifecycle version command."
|
|
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
|
+
{
|
|
29
|
+
"path": ".github/workflows/.release-docker.yml",
|
|
30
|
+
"token": "workflows v2 Docker release path is retired",
|
|
31
|
+
"expectedOccurrences": 1,
|
|
32
|
+
"classification": "retired-path-tombstone",
|
|
33
|
+
"callerStatus": "fail-closed",
|
|
34
|
+
"owner": "buildchain-maintainers",
|
|
35
|
+
"sunsetCondition": "Remove only after the compatibility workflow entry itself is removed."
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"path": ".github/workflows/.release-elastic-beanstalk.yml",
|
|
39
|
+
"token": "workflows v2 Elastic Beanstalk release path is retired",
|
|
40
|
+
"expectedOccurrences": 1,
|
|
41
|
+
"classification": "retired-path-tombstone",
|
|
42
|
+
"callerStatus": "fail-closed",
|
|
43
|
+
"owner": "buildchain-maintainers",
|
|
44
|
+
"sunsetCondition": "Remove only after the compatibility workflow entry itself is removed."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"path": ".github/workflows/.release-new-version.yml",
|
|
48
|
+
"token": "default: \"v2\"",
|
|
49
|
+
"expectedOccurrences": 1,
|
|
50
|
+
"classification": "retired-input-tombstone",
|
|
51
|
+
"callerStatus": "fail-closed-unused-input",
|
|
52
|
+
"owner": "buildchain-maintainers",
|
|
53
|
+
"sunsetCondition": "Remove with the retired workflow input compatibility surface."
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"path": ".github/workflows/.release-verify.yml",
|
|
57
|
+
"token": "workflows v2",
|
|
58
|
+
"expectedOccurrences": 3,
|
|
59
|
+
"classification": "retired-path-tombstone",
|
|
60
|
+
"callerStatus": "fail-closed",
|
|
61
|
+
"owner": "buildchain-maintainers",
|
|
62
|
+
"sunsetCondition": "Remove each message with its corresponding retired input or path."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"path": ".github/workflows/.sam-release.yml",
|
|
66
|
+
"token": "workflows v2 SAM release path is retired",
|
|
67
|
+
"expectedOccurrences": 1,
|
|
68
|
+
"classification": "retired-path-tombstone",
|
|
69
|
+
"callerStatus": "fail-closed",
|
|
70
|
+
"owner": "buildchain-maintainers",
|
|
71
|
+
"sunsetCondition": "Remove only after the compatibility workflow entry itself is removed."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"path": ".github/workflows/.sam-verify.yml",
|
|
75
|
+
"token": "kungfu-systems/buildchain/actions/bump-version@v2",
|
|
76
|
+
"expectedOccurrences": 3,
|
|
77
|
+
"classification": "legacy-compatibility-action",
|
|
78
|
+
"callerStatus": "legacy-reusable",
|
|
79
|
+
"owner": "buildchain-maintainers",
|
|
80
|
+
"sunsetCondition": "Remove after SAM consumers migrate to the lifecycle version command."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"path": ".github/workflows/.sam-verify.yml",
|
|
84
|
+
"token": "aws-actions/setup-sam@v2",
|
|
85
|
+
"expectedOccurrences": 1,
|
|
86
|
+
"classification": "third-party-action-version",
|
|
87
|
+
"callerStatus": "legacy-reusable",
|
|
88
|
+
"owner": "aws-actions/setup-sam maintainers",
|
|
89
|
+
"sunsetCondition": "Upgrade through normal dependency review when a compatible successor is adopted."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"path": ".github/workflows/.sync-release-page.yml",
|
|
93
|
+
"token": "retired in workflows v2",
|
|
94
|
+
"expectedOccurrences": 1,
|
|
95
|
+
"classification": "retired-path-tombstone",
|
|
96
|
+
"callerStatus": "fail-closed",
|
|
97
|
+
"owner": "buildchain-maintainers",
|
|
98
|
+
"sunsetCondition": "Remove only after the compatibility workflow entry itself is removed."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"path": ".github/workflows/.wheel-release.yml",
|
|
102
|
+
"token": "workflows v2 wheel release path is retired",
|
|
103
|
+
"expectedOccurrences": 1,
|
|
104
|
+
"classification": "retired-path-tombstone",
|
|
105
|
+
"callerStatus": "fail-closed",
|
|
106
|
+
"owner": "buildchain-maintainers",
|
|
107
|
+
"sunsetCondition": "Remove only after the compatibility workflow entry itself is removed."
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"path": ".github/workflows/.wheel-verify.yml",
|
|
111
|
+
"token": "kungfu-systems/buildchain/actions/publish-prebuilt@v2",
|
|
112
|
+
"expectedOccurrences": 1,
|
|
113
|
+
"classification": "legacy-compatibility-action",
|
|
114
|
+
"callerStatus": "legacy-reusable",
|
|
115
|
+
"owner": "buildchain-maintainers",
|
|
116
|
+
"sunsetCondition": "Remove after wheel consumers migrate to the publication authority path."
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"path": ".github/workflows/.wheel-verify.yml",
|
|
120
|
+
"token": "kungfu-systems/buildchain/actions/bump-version@v2",
|
|
121
|
+
"expectedOccurrences": 3,
|
|
122
|
+
"classification": "legacy-compatibility-action",
|
|
123
|
+
"callerStatus": "legacy-reusable",
|
|
124
|
+
"owner": "buildchain-maintainers",
|
|
125
|
+
"sunsetCondition": "Remove after wheel consumers migrate to the lifecycle version command."
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"path": ".github/workflows/candidate-lab.yml",
|
|
129
|
+
"token": "default: \"v2\"",
|
|
130
|
+
"expectedOccurrences": 1,
|
|
131
|
+
"classification": "legacy-compatibility-ref",
|
|
132
|
+
"callerStatus": "manual-no-publish-report-only",
|
|
133
|
+
"owner": "buildchain-maintainers",
|
|
134
|
+
"sunsetCondition": "Remove after the legacy workflows comparison lane is formally retired."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"path": ".github/workflows/schedule-purge-artifacts.yml",
|
|
138
|
+
"token": "not shipped in buildchain v2",
|
|
139
|
+
"expectedOccurrences": 1,
|
|
140
|
+
"classification": "retired-path-tombstone",
|
|
141
|
+
"callerStatus": "fail-closed",
|
|
142
|
+
"owner": "buildchain-maintainers",
|
|
143
|
+
"sunsetCondition": "Remove only after the compatibility workflow entry itself is removed."
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
{
|
|
2
|
+
"evidenceRoot": "sha256:5bebb7ca41b7b509d63293c3c363fbff917d188fe1d6ae19a73d33424ea623ed",
|
|
3
|
+
"inputs": {
|
|
4
|
+
"complete-transcript.txt": "sha256:3cc1fc8a46d47fad052143b54ab261f08d007403c4ec00eba37b0a733f7cc615",
|
|
5
|
+
"public-projection.json": "sha256:c5d5ec702189d2e6eed17419f2fd9a659c1b4cbcf7ee1a58ac8507ec2a748180",
|
|
6
|
+
"scene.json": "sha256:a140e39b721ba3fe0daa05d6391fb690027efd52e15e1d801dade3934385e67e"
|
|
7
|
+
},
|
|
8
|
+
"qualification": {
|
|
9
|
+
"inspectionRoot": "sha256:c2ad1f75b543f2dbc5abb3dcedce3bb11d1f02cb2463444277ae6ecd80459f76",
|
|
10
|
+
"nonClaims": [
|
|
11
|
+
"browser-playback-success",
|
|
12
|
+
"responsive-layout",
|
|
13
|
+
"reduced-motion-behavior",
|
|
14
|
+
"production-site-deployment"
|
|
15
|
+
],
|
|
16
|
+
"profile": {
|
|
17
|
+
"catalogRoot": "sha256:cf885ac31104a36aa051fb62f47dd79b68bd671f7dfeeb1a458ea7d0cbf0c479",
|
|
18
|
+
"id": "responsive-web-delivery-v1",
|
|
19
|
+
"mode": "web-delivery",
|
|
20
|
+
"profileRoot": "sha256:fdbda001970304af935f58af11ccfdb7c32ec466c9dd487cbb81ee1b19dc4556"
|
|
21
|
+
},
|
|
22
|
+
"qualificationRoot": "sha256:1c588662db5abcc6776a43b3210f43555161b55ddf8aa4aa4530371bc1d26ec8",
|
|
23
|
+
"renditions": [
|
|
24
|
+
{
|
|
25
|
+
"audioStreams": 0,
|
|
26
|
+
"bytes": 45632,
|
|
27
|
+
"container": "gif",
|
|
28
|
+
"dimensionPolicy": "exact-downscale-same-aspect",
|
|
29
|
+
"durationMs": 2500,
|
|
30
|
+
"frameRate": 12.5,
|
|
31
|
+
"height": 720,
|
|
32
|
+
"maximumBytes": 1048576,
|
|
33
|
+
"mimeType": "image/gif",
|
|
34
|
+
"path": "demo.gif",
|
|
35
|
+
"pixelFormat": "bgra",
|
|
36
|
+
"progressiveDownload": "not-applicable",
|
|
37
|
+
"role": "readme-compatibility",
|
|
38
|
+
"root": "sha256:92a73e4c384f4a1c563d1594d77ac114db0f969fefe033e4bd98fad62473478d",
|
|
39
|
+
"videoCodec": "gif",
|
|
40
|
+
"width": 1280
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"audioStreams": 0,
|
|
44
|
+
"bytes": 30654,
|
|
45
|
+
"container": "mp4",
|
|
46
|
+
"dimensionPolicy": "scene-exact",
|
|
47
|
+
"durationMs": 2533,
|
|
48
|
+
"frameRate": 15,
|
|
49
|
+
"height": 1080,
|
|
50
|
+
"maximumBytes": 2097152,
|
|
51
|
+
"mimeType": "video/mp4",
|
|
52
|
+
"path": "demo.mp4",
|
|
53
|
+
"pixelFormat": "yuv420p",
|
|
54
|
+
"progressiveDownload": "moov-before-mdat",
|
|
55
|
+
"role": "primary-video",
|
|
56
|
+
"root": "sha256:1a5a7896781417973d0f2c0ad936c89701a2705e1eb2d2d3c45b8ab95665717e",
|
|
57
|
+
"videoCodec": "h264",
|
|
58
|
+
"width": 1920
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"audioStreams": 0,
|
|
62
|
+
"bytes": 25420,
|
|
63
|
+
"container": "webm",
|
|
64
|
+
"dimensionPolicy": "scene-exact",
|
|
65
|
+
"durationMs": 2534,
|
|
66
|
+
"frameRate": 15,
|
|
67
|
+
"height": 1080,
|
|
68
|
+
"maximumBytes": 2097152,
|
|
69
|
+
"mimeType": "video/webm",
|
|
70
|
+
"path": "demo.webm",
|
|
71
|
+
"pixelFormat": "yuv420p",
|
|
72
|
+
"progressiveDownload": "not-applicable",
|
|
73
|
+
"role": "alternate-video",
|
|
74
|
+
"root": "sha256:f5b47da43d1f69dc66483933e3b3491215e686817eb787008cf026c20f543530",
|
|
75
|
+
"videoCodec": "vp9",
|
|
76
|
+
"width": 1920
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"audioStreams": 0,
|
|
80
|
+
"bytes": 42679,
|
|
81
|
+
"container": "png",
|
|
82
|
+
"dimensionPolicy": "scene-exact",
|
|
83
|
+
"durationMs": 0,
|
|
84
|
+
"frameRate": 25,
|
|
85
|
+
"height": 1080,
|
|
86
|
+
"maximumBytes": 1048576,
|
|
87
|
+
"mimeType": "image/png",
|
|
88
|
+
"path": "poster.png",
|
|
89
|
+
"pixelFormat": "rgb24",
|
|
90
|
+
"progressiveDownload": "not-applicable",
|
|
91
|
+
"role": "evidence-poster",
|
|
92
|
+
"root": "sha256:cf53da4af2c1ddd5341db19fc1f3cf5f23164517c2fe962f546be2faf0f606b0",
|
|
93
|
+
"videoCodec": "png",
|
|
94
|
+
"width": 1920
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"audioStreams": 0,
|
|
98
|
+
"bytes": 19252,
|
|
99
|
+
"container": "mp4",
|
|
100
|
+
"dimensionPolicy": "exact-downscale-same-aspect",
|
|
101
|
+
"durationMs": 2533,
|
|
102
|
+
"frameRate": 15,
|
|
103
|
+
"height": 720,
|
|
104
|
+
"maximumBytes": 2097152,
|
|
105
|
+
"mimeType": "video/mp4",
|
|
106
|
+
"path": "demo-720p.mp4",
|
|
107
|
+
"pixelFormat": "yuv420p",
|
|
108
|
+
"progressiveDownload": "moov-before-mdat",
|
|
109
|
+
"role": "responsive-primary-video",
|
|
110
|
+
"root": "sha256:7b397af86e2f9e8cdab1b5c669bc4b4475d9168508ecb938bab69979e0fcdeee",
|
|
111
|
+
"videoCodec": "h264",
|
|
112
|
+
"width": 1280
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"audioStreams": 0,
|
|
116
|
+
"bytes": 16089,
|
|
117
|
+
"container": "webm",
|
|
118
|
+
"dimensionPolicy": "exact-downscale-same-aspect",
|
|
119
|
+
"durationMs": 2534,
|
|
120
|
+
"frameRate": 15,
|
|
121
|
+
"height": 720,
|
|
122
|
+
"maximumBytes": 2097152,
|
|
123
|
+
"mimeType": "video/webm",
|
|
124
|
+
"path": "demo-720p.webm",
|
|
125
|
+
"pixelFormat": "yuv420p",
|
|
126
|
+
"progressiveDownload": "not-applicable",
|
|
127
|
+
"role": "responsive-alternate-video",
|
|
128
|
+
"root": "sha256:d6b8ae4513e09092de330dcc3a1b916f0e64a7743b6cfc102ae1e7a09667cb1c",
|
|
129
|
+
"videoCodec": "vp9",
|
|
130
|
+
"width": 1280
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"schema": "buildchain.auditable-demo-media-qualification/v1"
|
|
134
|
+
},
|
|
135
|
+
"renderer": {
|
|
136
|
+
"image": "ghcr.io/kungfu-systems/build-images/demo-renderer@sha256:b70a2f5631665f685280bc9d7434c5ed5cf48b760b728873734d0c47bff72b25",
|
|
137
|
+
"sourceRef": "refs/tags/v1.3.0-alpha.20",
|
|
138
|
+
"sourceRepository": "kungfu-systems/build-images",
|
|
139
|
+
"sourceSha": "b3cebc2deb5f140af74db24b1b45233ac6733ef1"
|
|
140
|
+
},
|
|
141
|
+
"rendererManifestRoot": "sha256:7c4066cbcf4cd612869d160ddc0beca0e35237369cdca895ffda265b60a74993",
|
|
142
|
+
"schema": "buildchain.auditable-demo-media-profile-fixture/v1"
|
|
143
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"evidenceRoot": "sha256:
|
|
2
|
+
"evidenceRoot": "sha256:5a4fced32999b3007628dfaee32206b0f7512032e65fd57be455e59df2f5d877",
|
|
3
3
|
"inputs": {
|
|
4
4
|
"complete-transcript.txt": "sha256:f3723a3eda614134ab724ce9fbe1e0e5f916d809a8a3096f5e37c1458cb3656c",
|
|
5
5
|
"public-projection.json": "sha256:127f9877f9750a85eada4338f088bee5460c5c71a83302652d3321667002c3c7",
|
|
@@ -14,17 +14,18 @@
|
|
|
14
14
|
"production-site-deployment"
|
|
15
15
|
],
|
|
16
16
|
"profile": {
|
|
17
|
-
"catalogRoot": "sha256:
|
|
17
|
+
"catalogRoot": "sha256:cf885ac31104a36aa051fb62f47dd79b68bd671f7dfeeb1a458ea7d0cbf0c479",
|
|
18
18
|
"id": "web-delivery-v1",
|
|
19
19
|
"mode": "web-delivery",
|
|
20
20
|
"profileRoot": "sha256:b6fb0a83414d03a7222fc50429e60ed68b6d47758b86ceaa316ecc659a01ae2b"
|
|
21
21
|
},
|
|
22
|
-
"qualificationRoot": "sha256:
|
|
22
|
+
"qualificationRoot": "sha256:a8509982ce43c133ef50bbb651bdba07b5b37bed06841ebb165f23b81e3b9fc1",
|
|
23
23
|
"renditions": [
|
|
24
24
|
{
|
|
25
25
|
"audioStreams": 0,
|
|
26
26
|
"bytes": 40826,
|
|
27
27
|
"container": "gif",
|
|
28
|
+
"dimensionPolicy": "scene-exact",
|
|
28
29
|
"durationMs": 2500,
|
|
29
30
|
"frameRate": 12.5,
|
|
30
31
|
"height": 720,
|
|
@@ -42,6 +43,7 @@
|
|
|
42
43
|
"audioStreams": 0,
|
|
43
44
|
"bytes": 27038,
|
|
44
45
|
"container": "mp4",
|
|
46
|
+
"dimensionPolicy": "scene-exact",
|
|
45
47
|
"durationMs": 2533,
|
|
46
48
|
"frameRate": 15,
|
|
47
49
|
"height": 720,
|
|
@@ -59,6 +61,7 @@
|
|
|
59
61
|
"audioStreams": 0,
|
|
60
62
|
"bytes": 23383,
|
|
61
63
|
"container": "webm",
|
|
64
|
+
"dimensionPolicy": "scene-exact",
|
|
62
65
|
"durationMs": 2534,
|
|
63
66
|
"frameRate": 15,
|
|
64
67
|
"height": 720,
|
|
@@ -76,6 +79,7 @@
|
|
|
76
79
|
"audioStreams": 0,
|
|
77
80
|
"bytes": 34769,
|
|
78
81
|
"container": "png",
|
|
82
|
+
"dimensionPolicy": "scene-exact",
|
|
79
83
|
"durationMs": 0,
|
|
80
84
|
"frameRate": 25,
|
|
81
85
|
"height": 720,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "build-images.demo-projection/v1",
|
|
3
|
+
"evidenceClass": "qualified-build-output",
|
|
4
|
+
"claimBoundary": "Fixture media qualifies responsive delivery properties only; it does not prove a production deployment.",
|
|
5
|
+
"cues": [
|
|
6
|
+
{
|
|
7
|
+
"startMs": 0,
|
|
8
|
+
"endMs": 2500,
|
|
9
|
+
"transcriptLines": [
|
|
10
|
+
1,
|
|
11
|
+
2
|
|
12
|
+
],
|
|
13
|
+
"annotation": "fixed responsive qualification fixture"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "build-images.demo-scene/v1",
|
|
3
|
+
"id": "buildchain-responsive-web-delivery-qualification",
|
|
4
|
+
"width": 1920,
|
|
5
|
+
"height": 1080,
|
|
6
|
+
"fps": 15,
|
|
7
|
+
"durationMs": 2500,
|
|
8
|
+
"title": "Buildchain responsive web delivery qualification",
|
|
9
|
+
"commandLabel": "buildchain qualify-media-fixture",
|
|
10
|
+
"background": "#0B1020",
|
|
11
|
+
"accent": "#67E8A5"
|
|
12
|
+
}
|