feat(compatibility): add pinned OverPy feature-contract inventory - #195
feat(compatibility): add pinned OverPy feature-contract inventory#195e54-bot wants to merge 1 commit into
Conversation
Teakowa
left a comment
There was a problem hiding this comment.
-
compatibility/feature-contracts.json: the claimed exhaustive pinned inventory omitssrc/data/opy/stringEntities.ts#opyStringEntities. The pinned compiler consumes that registry for user-visible\&name;string escapes insrc/utils/strings.ts, so #192 AC requiring every user-visible feature family is not met. Add this contract surface with provenance/status/coverage/evidence, and ensure an omitted whole registry/family is detectable. -
compatibility/conformance.py::validate_inventory: compiler-branch completeness is only checked by comparingbrancheswithrequiredBranches, both supplied by the same inventory. Removing a branch from both makes the audit accept the omission;--upstream-rootonly validates key sets for already-declared registries. This does not satisfy #192 AC requiring reporting to detect an upstream compiler branch absent from the inventory. Anchor branch completeness to independent pinned-upstream audit evidence and add a regression that removes the branch from both inventory lists. -
compatibility/tests/test_conformance.py::test_feature_contract_inventory_is_leaf_explicit: the new test hard-codes257,25, and282as stable assertions even though #192 explicitly does not make feature counts the contract and the updated docs say the inventory is not a fixed feature-count assertion. Replace these counts with invariants tied to the independently audited inventory so a legitimate pin update does not require changing an implementation-detail count alongside the inventory.
Summary
Tests
python3 -m unittest discover -s compatibility/tests889d9749d1def17f146548cbddb94ea1ab015847python3 -m py_compile ..., JSON validation, andgit diff --checkThe full compiler conformance runner was not executed because the local
target/debug/opy-cliandtarget/debug/opy-compatbinaries were unavailable.Fixes #192