Skip to content

feat(compatibility): add pinned OverPy feature-contract inventory - #195

Open
e54-bot wants to merge 1 commit into
mainfrom
codex/issue-192-feature-contract-inventory
Open

feat(compatibility): add pinned OverPy feature-contract inventory#195
e54-bot wants to merge 1 commit into
mainfrom
codex/issue-192-feature-contract-inventory

Conversation

@e54-bot

@e54-bot e54-bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a pinned OverPy feature-contract inventory with 257 registry leaves and 25 distinct parser/compiler/tooling branches
  • validate immutable reference pins, registry drift, required branches, production paths, and leaf-level evidence
  • expose inventory gaps in conformance reports and document the audit workflow

Tests

  • python3 -m unittest discover -s compatibility/tests
  • pinned-source inventory validation against OverPy commit 889d9749d1def17f146548cbddb94ea1ab015847
  • python3 -m py_compile ..., JSON validation, and git diff --check

The full compiler conformance runner was not executed because the local target/debug/opy-cli and target/debug/opy-compat binaries were unavailable.

Fixes #192

@Teakowa Teakowa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. compatibility/feature-contracts.json: the claimed exhaustive pinned inventory omits src/data/opy/stringEntities.ts#opyStringEntities. The pinned compiler consumes that registry for user-visible \&name; string escapes in src/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.

  2. compatibility/conformance.py::validate_inventory: compiler-branch completeness is only checked by comparing branches with requiredBranches, both supplied by the same inventory. Removing a branch from both makes the audit accept the omission; --upstream-root only 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.

  3. compatibility/tests/test_conformance.py::test_feature_contract_inventory_is_leaf_explicit: the new test hard-codes 257, 25, and 282 as 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.

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.

Maintain exhaustive pinned OverPy feature-contract inventory and leaf coverage

2 participants