55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
# Task 1 — the Wave 0 red set is empty, and the lanes are removed
|
|
|
|
## Command
|
|
|
|
```bash
|
|
cd src
|
|
./gradlew wave0RedReport --console=plain --no-daemon
|
|
```
|
|
|
|
`BUILD SUCCESSFUL in 43s` — but that says nothing on its own, and this is the important part of the
|
|
evidence rather than a caveat to it. Both `wave0Red` lanes set `ignoreFailures = true`, because they
|
|
were reports rather than gates: their job was to answer "what is still red from the baseline?", not
|
|
to fail a build. A green exit code from a report is not a claim about the tests.
|
|
|
|
## What the results actually say
|
|
|
|
```
|
|
app-bootstrap/build/test-results/wave0Red: 0 classes, 0 tests, 0 failures, 0 skipped
|
|
messaging/messaging-observability/build/test-results/wave0Red: 0 classes, 0 tests, 0 failures, 0 skipped
|
|
```
|
|
|
|
Zero tests, because no test carries the tag any more:
|
|
|
|
```bash
|
|
grep -rc 'wave0-red' $(git ls-files '*.java') # no match in any tracked Java source
|
|
```
|
|
|
|
The three Wave 0 characterizations — the full-`test` scanner failure, the five-switch-off bean and
|
|
resource inventory, and the local/dev boot and Compose merge reproductions — became ordinary tests as
|
|
the waves that fixed them landed, and their `@Tag("wave0-red")` markers came off with them. The red
|
|
set is empty by the only measure that matters: there is nothing left tagged.
|
|
|
|
## Why the lanes are deleted rather than kept
|
|
|
|
Two reasons, and the second is the one that generalises.
|
|
|
|
1. The plan says so, and its reason holds: a permanent lane for an empty set is a lane that stops
|
|
being read.
|
|
2. These lanes are the exact shape the Wave 5 lane convention exists to refuse. A tag filter that
|
|
matches nothing does not fail — `failOnNoDiscoveredTests` applies to discovery and a tag excludes
|
|
after discovery — so the lane runs, executes zero tests, and reports success. Here that is
|
|
harmless, because the lanes are reports and their emptiness is the answer. But leaving two
|
|
hand-rolled lanes in that shape, outside the convention that would have refused them, is leaving
|
|
a template for the next lane somebody copies.
|
|
|
|
Removed:
|
|
|
|
- `src/build.gradle` — the `wave0RedReport` aggregate
|
|
- `src/app-bootstrap/build.gradle` — the `wave0Red` lane and the `test { excludeTags 'wave0-red' }`
|
|
- `src/messaging/messaging-observability/build.gradle` — the same pair
|
|
|
|
The `excludeTags` removal matters as much as the lane removal: it was what kept tagged
|
|
characterizations out of the ordinary suite. With no tagged test left it is inert, and leaving it
|
|
would silently exclude any future test that reused the tag.
|