This also simplifies the way we track the conformance versions a bit, by centralizing the info into `repos.json`.
I know #20607 will conflict with this one, so feel free to merge whichever of these two you prefer, and then I'll resolve the conflicts afterward.
AI Disclosure: Generated with help from Claude Code.
Prompted by #20262. Fix an omission in docs for conformance tests, and explain how to filter tests while working on adding a plugin to conformance suite.
Supporting conformance testing is requiring adding extra code paths to `RuleTester` and main JS plugins code.
Previously, these paths were guarded by `if (DEBUG)` branches, so the extra code is not in release build. But ideally we don't want this code in debug build either, so the tests are testing a build that's identical to release build, except for enabling debug assertions.
Introduce a new build specifically for conformance testing, and gate code specific to conformance testing with `if (CONFORMANCE)` instead of `if (DEBUG)`.
Add conformance tester for JS plugins.
The tester runs all of ESLint's test cases for all its built-in rules, but using Oxlint's `RuleTester` in place of ESLint's. i.e. the ESLint rules are run as Oxlint JS plugins.
It outputs the results in `snapshot.md` file.
Majority of the failing test cases are false positives. Later PRs will improve the conformance tester and `RuleTester` so it correctly handles `sourceType`, `jsx`, and TypeScript sources.
These tests do not run in CI. For now it's just useful for me to commit this, while I work on improving the tester.
I'm not sure if inside `apps/oxlint` is the right place for this ultimately, but for now I think it's passable.