Skip to content

docs(release): classification of the files for the release artifact list (proposal) - #27

Merged
sinkog merged 2 commits into
develfrom
docs/release-artifact-classification
Nov 2, 2026
Merged

sinkog merged 2 commits into
develfrom
docs/release-artifact-classification

Conversation

@sinkog

@sinkog sinkog commented Nov 1, 2026 •

Copy link
Copy Markdown
Member

The owner's ten decisions on the REVIEW rows are applied (commit 5924b07): 30 INCLUDE, 101 EXCLUDE, 0 REVIEW. Refs #23. Documents only: project.yaml is not changed, no list is applied, no compiler or verifier change. The content of the list is approved by the owner after this survey; merge is on hold until then.

  • docs/en/RELEASE-ARTIFACT-CLASSIFICATION.md: every tracked file of devel d2d8ec7 (131) with INCLUDE / EXCLUDE / REVIEW and a technical reason: 29 / 92 / 10.
  • Rule: a file is listed when its content determines the contract, interpretation or reproducibility of the released package. The twelve files pinned by cic-primitive-forms are marked as a checked subset, not as the criterion (all twelve end up in the proposal; that is a consequence).
  • 10 REVIEW rows are owner questions (e.g. project.yaml: it carries the declaration but also Vault settings; tools/compiler.py; the reference verifier; kubernetes-pod.yaml, which the release grammar gate checks; licence metadata; the locked tool requirements).
  • Facts found while classifying: P0-4-ACCESS-GRAMMAR.md says Status: proposed itself; p0-4-contradiction-matrix.md says it is a non-normative working paper; dependencies/template-schema-*.yaml is read by no tool; commitment.yaml's content is already inside the record; of the 12 Forms files 11 are byte-identical between the pin and devel's head, P0-4-MIGRATION.md differs.
  • The proposed paths block is text in the document only. A producer-side check (specs[].source_path ⊆ artifacts.files) is offered as a follow-up, not decided.

Update after the owner's review

  • check_access_vectors.py IN; EXCLUDE: LICENSE.meta.yaml, LICENSE.yaml, project.schema.yaml, project.yaml, requirements.in, requirements.txt, kubernetes-pod.yaml, tools/compiler.py, tools/release_record_conformance.py.
  • Measured: in a directory with only the 30 listed files, check_access_vectors.py runs 187 cases with 0 failures, its --self-test detects 50/50 seeded faults, check_grammar.py --self-test gives 53/53. Everything they read is in the list; from outside they need only the Python packages PyYAML and jsonschema.
  • The approved list is not enough for a release from the historical pin 73ae469: the compiler reads the declaration from the source commit's project.yaml, so the release branch needs a new commit that holds the declaration and the exact bytes of the twelve pinned files; that commit is not literally 73ae469 and the pre-check has to run against it. Unchanged here, on hold.
  • project.yaml is still not changed; that is a separate, targeted change (and check_provenance treats project.yaml as seeded, not pinned, so editing it does not trip that gate).

Gábor Z Sinkó added 2 commits November 1, 2026 23:20
…release artifact list (proposal)

A review table of every tracked file of devel d2d8ec7 with INCLUDE, EXCLUDE or REVIEW and the technical reason, by the rule that a file is listed when its content determines the contract, the interpretation or the reproducibility of the released package. The twelve Forms-pinned files are marked as a checked subset, not as the criterion. The proposed paths are text in the document; project.yaml is not changed.

---
[signing-metadata]
key = cic-my-sign-key
signature = vault:v1:MEUCIEtFYhOHIoUx04XEmaQQxoRRrlvJgvc2nczHuyaKpO4KAiEAtvkl88ardzdlzwZuf5KpBeLIVAsN8pIet4uoVbdecw8=
hash-algorithm = sha256
digest = vDMBA0U5RuAthxvlzdcaodjeMJ3kkt3XqilauLXdKoU=

[certificate]
-----BEGIN CERTIFICATE-----
MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw
QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV
BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy
MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb
MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe
i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS
WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0
lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW
-----END CERTIFICATE-----
…sification: 30 paths

Ten REVIEW rows decided (check_access_vectors.py in; the licence metadata, project.yaml, project.schema.yaml, the requirements, kubernetes-pod.yaml, the compiler and the reference verifier out). The access tools are measured to run, with their self-tests, in a tree of only the 30 listed files. The note on the historical pin: the approved list is not enough, a release commit that already holds the declaration and the exact bytes of the twelve pinned files is needed. project.yaml is not changed.

---
[signing-metadata]
key = cic-my-sign-key
signature = vault:v1:MEQCIHqc4rbja+dGIkDHeqczIUoWg6pPyZeJ2aqK+z7pFiHDAiAt3AN1mLalII0Veehvc7u3pOPHtDzdPzknylqU5W5+tQ==
hash-algorithm = sha256
digest = +woMbWHqbUSCCTzbPpPcOEp1Rpn73NmUyRw92p9seIA=

[certificate]
-----BEGIN CERTIFICATE-----
MIICBjCCAaygAwIBAgIUSnRMR6RPnEbg296XWPOqq/u5PCwwCgYIKoZIzj0EAwIw
QzELMAkGA1UEBhMCSFUxGTAXBgNVBAoMEENlbnRyYWxJbmZyYUNvcmUxGTAXBgNV
BAMMEENJQyBEZXZlbG9wZXIgQ0EwHhcNMjYwMzIwMTMyMjU5WhcNMjYxMjMxMTMy
MjU5WjBFMQswCQYDVQQGEwJIVTEZMBcGA1UECgwQQ2VudHJhbEluZnJhQ29yZTEb
MBkGA1UEAwwSR2Fib3IgWm9sdGFuIFNpbmtvMFkwEwYHKoZIzj0CAQYIKoZIzj0D
AQcDQgAEIG2CVmTfmLB9pLLclj7YmP2eedAjklpy4LGrU2ijoiy6Xqpuybv7OgJe
i+ez31s65NEV8+X/ByeX1cstR988z6N8MHowCQYDVR0TBAIwADAdBgNVHQ4EFgQU
yZN6AIX/TNnIJ9GwAa/NRN3ujHAwHwYDVR0jBBgwFoAUXn6CHYzPUqU4JVP8g+OS
WeDYjhcwDgYDVR0PAQH/BAQDAgeAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF
BQcDBDAKBggqhkjOPQQDAgNIADBFAiEA+bFzXRoJ4PCQbhAAtpkcMjt0vNj5rEW0
lOMBGDNyaWkCIB1vmM7PcZzv/c9bIrxF5kqv6QXomouhByUfeNUTbpKW
-----END CERTIFICATE-----
@sinkog
sinkog merged commit a2aee15 into devel Nov 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant