|
1 | 1 | # Roadmap |
2 | 2 |
|
3 | | -## Current status: Beta (v0.6.x) |
| 3 | +## Current status: Production/Stable (v0.8.x) |
4 | 4 |
|
5 | | -pytest-mrt is actively used in production. The core API (`MRTConfig`, `mrt` fixture, `mrt check`) is stable. Breaking changes will be versioned. |
| 5 | +pytest-mrt is production-ready. The core API (`MRTConfig`, `mrt` fixture, `mrt check`) is stable and |
| 6 | +breaking changes will be versioned. See [`docs/api.md`](docs/api.md) for the stability guarantee. |
6 | 7 |
|
7 | 8 | --- |
8 | 9 |
|
9 | | -## v0.7 — Notifications & integrations |
| 10 | +## v0.7 — Notifications & integrations ✅ (partially shipped in v0.8) |
10 | 11 |
|
11 | 12 | - [ ] Slack notification on detection (`--notify-slack`) |
12 | 13 | - [ ] JSON output improvements for DataDog / Grafana ingestion |
13 | | -- [ ] `mrt check` exit code breakdown (separate codes for errors vs. warnings) |
| 14 | +- ✅ `mrt check` exit code breakdown (0 = clean / 1 = warnings / 2 = errors) |
14 | 15 | - [ ] Django: `squashmigrations` detection (squashed migrations with unresolved refs) |
15 | 16 |
|
16 | | -## v0.8 — Coverage & confidence |
17 | | - |
18 | | -- [ ] `--coverage` flag: show which patterns were tested vs. inferred |
| 17 | +## v0.8 — Coverage & confidence ✅ |
| 18 | + |
| 19 | +- ✅ 30 static analysis patterns (3 new: DROP FK, CREATE TRIGGER, CREATE TYPE) |
| 20 | +- ✅ Actionable error messages with concrete fix suggestions |
| 21 | +- ✅ False-positive test suite (`tests/test_false_positives.py`) |
| 22 | +- ✅ Public detection accuracy report (`docs/accuracy.md`) |
| 23 | +- ✅ PostgreSQL CI |
| 24 | +- ✅ MySQL CI |
| 25 | +- ✅ Python 3.13 support + ruff/mypy CI enforcement |
| 26 | +- ✅ Test coverage 88% |
| 27 | +- [ ] `--coverage` flag: show which patterns were exercised vs. inferred |
19 | 28 | - [ ] Per-pattern confidence score in JSON output |
20 | 29 | - [ ] HTML report: link each finding to the source line |
21 | | -- [ ] Benchmark: publish detection latency vs. migration count |
| 30 | + |
| 31 | +## v0.9 — Django dynamic verification |
| 32 | + |
| 33 | +- [ ] **Django dynamic rollback**: run `manage.py migrate <app> <prev>` and verify schema/data |
| 34 | + restoration (currently Django support is static analysis only — v1.0 hard requirement) |
| 35 | +- [ ] Django: `squashmigrations` detection |
| 36 | +- [ ] `mrt check --watch`: re-run on file change during development |
22 | 37 |
|
23 | 38 | ## v1.0 — Production ready |
24 | 39 |
|
25 | 40 | Target criteria: |
26 | 41 | - ✅ PostgreSQL, SQLite, MySQL/MariaDB dynamic verification |
27 | | -- ✅ Alembic + Django migration support |
| 42 | +- ✅ Alembic + Django migration support (static; dynamic in v0.9) |
28 | 43 | - ✅ 30+ static analysis patterns |
| 44 | +- ✅ Zero false-positive guarantee on the pattern test suite |
| 45 | +- ✅ Public detection accuracy report |
| 46 | +- ✅ Stable plugin API for custom patterns |
| 47 | +- [ ] Django dynamic rollback verification |
29 | 48 | - [ ] Oracle support |
30 | 49 | - [ ] SQL Server support |
31 | | -- [ ] Zero false-positive guarantee on the pattern test suite |
32 | | -- [ ] Public detection accuracy report |
33 | | -- [ ] Stable plugin API for custom patterns |
34 | 50 |
|
35 | 51 | ## Long-term / community-driven |
36 | 52 |
|
|
0 commit comments