4.0 KiB
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.