45 lines
2.8 KiB
Markdown
45 lines
2.8 KiB
Markdown
# Modernization roadmap
|
||
|
||
The order of the modernization work and where each step stands. Steps are lettered as in
|
||
the original plan (February–March 2026). Statuses are as of October 2026; any marked
|
||
**[unverified]** were not recorded anywhere recent and need John to confirm.
|
||
|
||
| Step | What | Status |
|
||
|---|---|---|
|
||
| — | SVN → Git, self-hosted Gitea | ✅ Done |
|
||
| — | Build process documented; Docker builds for front end and docs; Windows build VM exported and backed up (VM later deprecated: builds run on the workstation, see `devdocs/build/BUILD.md`) | ✅ Done |
|
||
| A1 | E2E tests with Cypress 9.7.0, targeting remote devtest servers, with version validation and environment-based config | **[unverified]**: the suite exists in `raven-test\e2e` (last commit 2026-02-22), but the March notes listed it as both done and in progress |
|
||
| A2 | Fix the outdated integration tests in `raven-test-integration` | ✅ Done, March 2026: compiles on `net8.0`, broken tests removed or rewritten |
|
||
| A3 | Data-list filter and sort integration tests | ✅ Done, March 2026, together with Tier 1–3 gap coverage. `raven-test-integration\DataList\DataListOperations.cs` holds 15 real tests, not stubs |
|
||
| — | Fix the three server bugs the integration suite is waiting on: case 4653, case 4654, the contract issue | Open |
|
||
| ▶ | **.NET 10 port of the back end** | **Current**: `NET10-PORT.md` |
|
||
| B | Git baseline: tag plus refactor branch | Tag half done: `net8-baseline` exists in `raven` and `raven-client`. Refactor branch **[unverified]** |
|
||
| C | Architecture review | Not started |
|
||
| D | Refactor: remove redundant code, simplify, improve performance. No behaviour changes | Not started |
|
||
| E | Lower-level tests: unit and integration | Not started |
|
||
| F | Remaining dependency updates (see below) | Back end: in progress as the .NET 10 port. Front end: not started |
|
||
| G | New features, from the case database backlog | Not started |
|
||
|
||
## Why the .NET 10 port comes before step D
|
||
|
||
It pulls the back-end half of step F forward. Sockeye, which shares most of this codebase,
|
||
was ported first, so the work is mapped out and comes with a list of fixes found along the
|
||
way. The integration suite from A2/A3 is the regression gate for it, as it will be for D.
|
||
|
||
## Step F, front end (not part of the current port)
|
||
|
||
In this order, each step tested before the next:
|
||
|
||
1. Remove `fibers`. It is optional for `sass-loader`; builds get a little slower
|
||
2. Move Node from 12.22.9 to a current LTS
|
||
3. Update the safe dependencies
|
||
4. Vue 2 → Vue 3 and Vuetify 2 → Vuetify 3
|
||
5. Webpack → Vite
|
||
6. Optional: Options API → Composition API; TypeScript for new files only
|
||
|
||
## Before step D starts
|
||
|
||
1. The integration suite passes, apart from the three known server bugs
|
||
2. Fix those three bugs
|
||
3. Then refactor, letting the tests catch regressions
|