Backward Compatibility Registry¶
This document is the canonical process and registry for tracking backward-compatibility surfaces in BenchBox.
Release Stage Policy¶
BenchBox is currently in beta.
Alpha:
Prioritize canonical API cleanup over compatibility.
Breaking changes are allowed with direct migration in the same PR.
Shims should be short-lived and removed quickly.
Beta:
Minimize breaking public API changes.
New shims require explicit owner, target removal version, and migration path.
Deprecation windows should span at least one beta cycle.
GA (1.x):
Preserve public API compatibility by default.
Breaking changes require a documented migration guide and major-version policy alignment.
Compatibility shims must include sunset criteria and timeline.
Scope¶
A code element belongs in this registry if it keeps old behavior working, including:
Legacy parameter or field handling
Backward-compatible aliases or re-exports
Legacy schema or format handling
Compatibility fallbacks for prior API or result shapes
Registry Process¶
Every new compatibility shim must add or update a row in this registry in the same PR.
Every removal must delete or update the corresponding row in the same PR.
Every row must include:
LocationCompatibility MarkerStatus(active,deprecate,remove)Target RemovalRationaleOwner
Lifecycle States¶
active: currently retained for compatibility.deprecate: retained temporarily and scheduled for removal.remove: approved for removal in the next compatible breaking window.
Update Procedure¶
Run scan:
rg -n "backward compatibility|Backward compatibility|legacy compatibility|for backward compatibility|Legacy|backward-compatible|Backward-compatible" benchbox
Reconcile scan output with registry entries.
Add missing rows for newly introduced shims.
Remove or update rows for shims removed in the PR.
Validate:
make ci-lint
make ci-test
Current Inventory¶
Maintain live rows below. Do not leave compatibility changes untracked.
Location |
Compatibility Marker |
Status |
Target Removal |
Rationale |
Owner |
|---|---|---|---|---|---|
|
|
active |
Beta compatibility review |
Preserve stable result-shape behavior for adapters and wrapper benchmarks while runtime internals are unified |
core-runtime |
|
Internal base class retained for existing benchmarks, with result creation delegated to shared result factory |
deprecate |
After all core benchmarks migrate to |
Avoid breaking remaining internal benchmark classes during staged runtime harmonization |
core-runtime |
Runtime Harmonization Notes (2026-02-26)¶
Loader benchmark-set definitions are now registry-backed (
list_loader_benchmark_ids+get_core_benchmark_class_name) to prevent loader/registry drift.transaction_primitivesis now part of the core loader-supported benchmark set; stale loader-only entries were removed.Runtime contract coverage now runs against loader benchmark IDs sourced from the shared registry contract.
Cleanup boundary for this workstream:
Keep top-level wrapper classes in
benchbox/*.pyas-is.Keep
benchbox.core.base_benchmark.BaseBenchmarkuntil a dedicated migration/removal item is approved.
Final Removal Report (2026-02-18)¶
Before/After Inventory Diff¶
Baseline at kickoff: 89 compatibility markers tracked (67 active, 22 deprecate).
Current active compatibility registry rows: 0.
Final status: all registry-tracked compatibility shims removed for alpha-stage API cleanup.
Final Removals In This Closing Wave¶
Removed platform alias export:
MicrosoftFabricAdapter(canonical:FabricWarehouseAdapter).Removed legacy data loading provider:
LegacyGetTablesSourceandlegacy_get_tablessource path.Removed compatibility-only tests asserting
benchmark.get_tables()loading path in SQLite adapter coverage.
Canonical Replacement Paths¶
Platform adapter naming:
Use
FabricWarehouseAdapter(and platform keyfabric-warehouse) instead of alias names.
Data loading source contract:
Use
benchmark.tables,benchmark._impl.tables, or_datagen_manifest.json(v1/v2).Do not rely on
benchmark.get_tables()compatibility fallback.
Verification Summary¶
Registry row scan (
rg -n '^\\| \\benchbox/’ docs/reference/backward-compatibility.md`): no active benchbox rows.Compatibility alias/shim scan for final-wave removals:
MicrosoftFabricAdapter: no matches.LegacyGetTablesSource/legacy_get_tables: no matches.
CI fast profile (
make ci-test): passing.CI lint (
make ci-lint): still blocked by pre-existing globaltywarning backlog outside this TODO’s closing-wave diffs.