Repository navigation
conformance: OCI VCN verdict vectors from the common fixture + integration contract - #62
Merged
Merged
Conversation
… integration contract Nine differential vectors (conformant, drift, field-absent, desired-absent, desired-absent-observed-present, partial-read, malformed-cidr, not-found, transport-error) derived from the vendored cic-factory fixtures/vcn-v1; per-path and object verdicts equal the fixture's, digests and canonical bytes are the engine's and Rust and Go agree byte for byte. docs/INTEGRATION-CONTRACT.md states what the environment supplies and what the engine returns, with the open question about planned-but-undeclared paths. No crate code changed. --- [signing-metadata] key = cic-my-sign-key signature = vault:v1:MEUCIQDYQkuEkilEZ/NqB9hJSqDXpwzoNu4BOZZNWUSB+hbSoQIgFgI0fVCNIUMFiS6/dYNxo7FszPGAXpITcOzwyT+5+T8= hash-algorithm = sha256 digest = I780svv+V6cQuSWoIKegxf+uOPWVyQGxPeaa86rnWoY= [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.
Stage 5 of the Intent -> Observed -> Conformance -> Evidence VCN slice. No crate code changed.
fixtures/vcn-v1(commit e5978f50, PR cic-factory#37) unchanged intofixtures/vcn-v1with its MANIFEST;fixtures/make_vcn_vectors.py --checkverifies the manifest, the derived inputs and that each pinned verdict equals the fixture's per-path/object verdict.conformance/differential/verdict/vcn_*(same format asoci_*), run by both the Rust and Go harnesses: per-path and object verdicts equal the fixture's; digests and canonical bytes are the engine's, Rust and Go agree byte for byte.docs/INTEGRATION-CONTRACT.md: what the environment supplies, what the engine returns, how absent/unobserved/unknown are treated, the pinned digests, a 'not exercised' list, status per statement.Findings recorded in the contract (not fixed here): (1) a path that is in the plan but not declared by the intent gives NOT_COMPARABLE (object DRIFT) when a value is observed, while the OCI module treats absent-in-desired as unmanaged; (2) element identities are the union of intent and observed, so an observed-only tag is a path of its own and is UNOBSERVED unless its coverage is listed; (3) unknown and unobserved give the same verdict (only the observation digest differs).
Local: cargo +stable fmt/clippy -D warnings, cargo test --workspace, go vet, go test -race ./... all pass; the vectors fail when a pinned verdict is edited. The receipt verifier is already on main (#61); the contract describes it as such.