Files
govoplan-core/docs/COMPATIBILITY_INVENTORY.md

4.0 KiB

GovOPlaN Compatibility Inventory

This inventory classifies compatibility paths covered by COMPATIBILITY_POLICY.md. It is intentionally limited to behavior that changes accepted data, imports, permissions, or migration state. Operational fallbacks such as Redis degradation and language fallback are not compatibility paths.

Database Bridges

Path Purpose Retention Removal
govoplan_core.db.migrations.reconcile_legacy_create_all_schema Reconciles databases created before Alembic ownership was recorded. At least one major release after runtime aliases are removed. Review after 1.0; keep release-baseline tests.
Migration table/column aliases in govoplan_core.db.migrations Detect and reconcile pre-split table ownership and migration tracks. All tagged 0.1.x upgrade origins plus one major release cycle. Remove only after the corresponding baseline leaves support.
Access and module migration backfills for legacy permission names Converts persisted role assignments without dropping authority. Same as the database upgrade origin that contains the old role. Keep migrations immutable; remove only runtime expansion at 0.2.

Portable-Schema Readers

Path Purpose Retention Removal
govoplan_core.mail.config.normalize_split_transport_credentials Reads pre-split SMTP/IMAP credentials and emits the split representation. Current and previous two configuration schema versions. Version-gate once Mail writes an explicit current schema version; reject inputs older than the two-version window.
ImapServerConfig.discard_legacy_enabled Reads the former nested IMAP enabled field without writing it. Current and previous two configuration schema versions. Remove with the oldest accepted Mail configuration schema.
govoplan_core.core.configuration_packages readers Reads explicitly versioned configuration-package manifests. Current and previous two schema versions. Retire individual readers as their version leaves the window.

Runtime And API Aliases

Path Purpose Retention Removal
govoplan_core.security.scope_aliases.LEGACY_SCOPE_ALIASES Expands pre-granular permission names. Tagged 0.1.x runtime/API window. Remove at 0.2 after role backfills and migration notes are verified.
govoplan_core.security.module_permissions.LEGACY_TO_MODULE_SCOPES Maps pre-module-split scopes to canonical owning-module scopes. Tagged 0.1.x runtime/API window. Remove at 0.2; keep database migration evidence for one major cycle.
govoplan_core.privacy.retention Stable import facade delegating policy-owned behavior through a capability. Tagged 0.1.x import window. Remove at 0.2 after all in-tree callers use the policy contract and release notes name the replacement.
Legacy tenant aliases in API response schemas Preserves active-tenant response fields used by 0.1.x clients. Tagged 0.1.x API window. Remove at 0.2 with response-schema migration notes.
Optional fields in Poll response references Accepts providers built against the earlier Poll contract. Tagged 0.1.x runtime contract window. Remove or require a new interface version at 0.2.
Legacy single-tenant summary providers Allows modules without the batch provider introduced in 0.1.x. Tagged 0.1.x module contract window. Remove at 0.2 after manifests advertise the batch provider contract.

Removed Paths

Path Reason Removed
govoplan_core.core.module_installer._run_restart_command_legacy Private wrapper had no callers and never represented a persisted or published contract. Current development line
Retired govoplan_core.api.admin and pre-split core model imports In-tree callers and module packages use their owning modules; regression tests prohibit reintroduction. Before 0.1.10

Every new compatibility path must be added here with its classification, diagnostic, test owner, and planned removal release.