Repository navigation
feat(release): project.yaml declares the 30 approved release artifacts - #28
Merged
Merged
Conversation
compiler_settings.release_artifacts.paths is the list the owner approved as the published surface (docs/en/RELEASE-ARTIFACT-CLASSIFICATION.md, 30 INCLUDE of 131 files). tests/test_release_declaration.py is the evidence: the declaration equals the approved list, every path is a regular file in the commit, every schema the compiler would publish is listed, the twelve Forms-pinned files are a subset, and the compiler produces the same artifacts block on every run and in every order, equal to one computed from the git blobs. It does not show that a release from this commit contains the pinned bytes (P0-4-MIGRATION.md differs), and it authorizes no release. --- [signing-metadata] key = cic-my-sign-key signature = vault:v1:MEUCIElSQsjpG0/F7h5VwYckeriZeuuix5sGUcpF0PorZwKMAiEAwYizhGQ6tUzs9UsQEMNhy4ACrm7PZR2kfVvM0tXFHgg= hash-algorithm = sha256 digest = OyueUXNPghqbyi5xWgrvg1MYs6wbZAHq0BbOR4CdwUA= [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-----
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #23.
project.yamldeclares the 30 files the owner approved as the published surface (docs/en/RELEASE-ARTIFACT-CLASSIFICATION.md, merged in #27). Not to be merged yet (owner: open, do not merge). It authorizes no release; the pre-check is not changed.Base:
devel3e94bb2 (the compiler of #26 and the classification of #27 are in).What changes
project.yaml:compiler_settings.release_artifacts.paths, 30 explicit paths, sorted by UTF-8 bytes, no globs (the only change; 34 lines).check_provenancetreatsproject.yamlas seeded, not pinned, so editing it does not trip that gate.Evidence (
tests/test_release_declaration.py, 12 tests, run against the commit under test)every_path_is_a_regular_file_in_the_commit_under_test(the commit's git tree, not the working directory)specs[].source_pathis among themevery_schema_the_compiler_would_publish_as_a_spec_is_listed(13 of 13, selection made on the tree) and the working-directory selectionthe_twelve_files_of_the_forms_grammar_pin_are_a_subset(the frozen pin fixture; 12 of 12 in, 18 more)git show <commit>:<path>(sha256sum-format manifest); the reference verifier reads it as a conforming list (record layer checks and the blob layer PASS against this checkout)_validate_release_artifact_declarationon the declaration read from the commit (the reference reading agrees)project.yamlvalidates againstproject.schema.yaml.Planted defects, run by hand on the declaration and each turned tests red: dropping a spec file (4 failures), dropping a Forms file (2), adding a missing path (7), adding a glob (7), adding a tooling file (3), swapping two paths (2), dropping
dependency.yaml(2, the approved-list equality). Before the declaration was committed,the_compiler_accepts_the_declaration_as_the_commit_holds_itfailed withdeclaration_missing: the test reads the commit, not the working copy.Local: 794 tests, coverage 90.24 %.
What this does NOT show (and the difference you asked for)
Two different commit states:
develwith this declaration (this PR). Of the 12 Forms-pinned files, 11 are byte-identical to the pin73ae469here;proposals/atom-grammar/P0-4-MIGRATION.mdis not. A release cut from this commit would not satisfy the Forms pin.73ae469(the owner's decision: a new release from the pin). It needs a new commit that holds this declaration and keeps the exact bytes of all twelve pinned files. That commit is not literally73ae469; its construction and the byte identity of the twelve (the pre-check, run against that commit) are to be shown separately. Not done here; on hold.Also not shown: that a release may be made, and anything about authenticity. Signing, publication, the production receipt and the trust gates stay on hold.