I3932 — Coverage is exported as LCOV and Cobertura from its one measurement, and uploaded to Coveralls and Codecov when their secrets exist
scripts/rust-coverage writes LCOV and Cobertura from the same post-processed measurement its gates read, the coverage job keeps both beside coverage.json and uploads LCOV to Coveralls and Codecov only when COVERALLS_REPO_TOKEN and CODECOV_TOKEN exist.
BLOKOVÁNO vlna 1 · p1 · profil implementation · běží samostatně
Blocked. This issue cannot start until I3919 is done. The status is derived from that, not declared.
Cíl
scripts/rust-coverage writes LCOV and Cobertura from the same post-processed measurement its gates read, the coverage job keeps both beside coverage.json and uploads LCOV to Coveralls and Codecov only when COVERALLS_REPO_TOKEN and CODECOV_TOKEN exist.
Proč
The measurement existed only as a 14-day JSON artifact, in no format another tool reads, so coverage could not be tracked, compared or graphed. A raw `cargo llvm-cov report --lcov` would count test code that rust-coverage excludes and publish a second number, which docs/COVERAGE.md forbids.
Aktuální stav
rust-coverage writes coverage.json; validate.yml keeps it 14 days; nothing is uploaded.
Cílový stav
`--lcov FILE` and `--cobertura FILE` write the one measurement; case 3932 proves their totals equal rust-coverage's own and that test code is absent; the coverage job uploads both in ci-metrics-coverage and to Coveralls and Codecov when the secrets exist, skipped and never failing otherwise; docs/COVERAGE.md says so.
Rozsah
- scripts/rust-coverage
- .github/workflows/validate.yml
- docs/COVERAGE.md
- test/cases/3932_the_coverage_export_is_its_one_measurement.sh
- .ai/repo/project/issues/I3932.yaml
- .ai/repo/project/milestones/measurements-are-tracked-over-time.yaml
Mimo rozsah
- The scanner I3919 changes in scripts/rust-coverage
- Adding the repository secrets, which the owner does
Závislosti
Co na tom čeká
Kritéria přijetí
- LCOV and Cobertura line totals equal rust-coverage's for the same export, and a test-code line is absent from both
- The coverage job keeps both files and uploads them only when the matching secret exists, never failing the job
- docs/COVERAGE.md names the exports and the two secrets
Validace
- bash test/run.sh 3932_the_coverage_export_is_its_one_measurement
- scripts/ci/shell-lint
Požadované důkazy
- sada testů
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Riziko
An upload action that changes its inputs fails silently; continue-on-error keeps the verdict, and the artifact keeps the files whatever the service does.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3932.yaml. Read it back with majordomus plan show I3932.