Skip to content

feat!: remove auto-fix subsystem (mrt fix, clean-backups) — out of scope#88

Closed
croc100 wants to merge 2 commits into
test/coverage-completeness-gapsfrom
feat/remove-fixer
Closed

feat!: remove auto-fix subsystem (mrt fix, clean-backups) — out of scope#88
croc100 wants to merge 2 commits into
test/coverage-completeness-gapsfrom
feat/remove-fixer

Conversation

@croc100

@croc100 croc100 commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Why

Migration code generation is a transform, not a verify operation. mrt fix (and its Django backup/restore scaffolding) was ~1100 lines doing something fundamentally outside the charter of a rollback-testing tool. It carried its own correctness risk (regex-based codegen) and coupled a separate lifecycle to the verifier's reputation. Dropping it sharpens the library's scope.

What's removed

  • core/fixer.py, adapters/django_fixer.py, commands/fix.py — the mrt fix command
  • commands/clean_backups.pymrt clean-backups only cleaned the _mrt_backups table that mrt fix-generated migrations created; orphaned once fixer is gone
  • fixable field in mrt check --format json output (advertised a now-removed capability)
  • Associated tests (test_fixer.py, test_django_fixer.py, test_django_fixer_e2e.py) and the django_fixer_app test fixture
  • All references in README, docs (cli/api/faq/best-practices), ROADMAP, CONTRIBUTING

Breaking changes

  • mrt fix and mrt clean-backups commands no longer exist
  • JSON findings no longer include fixable
  • Bumped to 1.5.0; CHANGELOG documents the removal and migration path (pin pytest-mrt<1.5.0 if you need auto-fix)

Verification

  • ruff check + ruff format --check clean
  • CLI command set: version, check, drift, init, report, explain
  • 434 passed, 17 skipped

Note on base branch

Based on test/coverage-completeness-gaps (PR #87) so the diff shows only the removal. Merge after #87 lands, or rebase onto main.

croc100 added 2 commits June 11, 2026 18:49
Migration code generation is a transform, not a verify operation, and
does not belong in a rollback-testing tool. Removes ~1100 lines:

- core/fixer.py, adapters/django_fixer.py, commands/fix.py (mrt fix)
- commands/clean_backups.py (mrt clean-backups — only cleaned the
  _mrt_backups table that mrt fix-generated migrations created)
- fixable field from mrt check --format json output
- associated tests and the django_fixer_app test fixture
- docs, roadmap, and contributing references

BREAKING CHANGE: mrt fix and mrt clean-backups commands are gone, and
the JSON findings no longer include a fixable field. Pin pytest-mrt<1.5.0
if you depend on auto-fix. Bumped to 1.5.0.
@croc100

croc100 commented Jun 13, 2026

Copy link
Copy Markdown
Owner Author

Superseded by new PR based directly on main (branch: feat/remove-fixer-v2).

@croc100 croc100 closed this Jun 13, 2026
@croc100
croc100 deleted the feat/remove-fixer branch June 13, 2026 15:03
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.

1 participant