Traduction automatique, non relue par un locuteur natif. L'anglais fait foi.

Validation et preuvesModifier sur GitHubSource : docs/COVERAGE.md

Couverture de lignes — la mesure de référence

La « couverture de lignes de ~95 % » du badge du README, du tableau CI (intégration continue) du README, des pages d'accueil de crates.io et de PyPI (Python Package Index), de la page de couverture de lignes de kshana.dev et du rapport technique est cette mesure, arrondie au pourcentage entier le plus proche. tests/coverage_figure_doc_sync.rs échoue si l'une de ces six surfaces indique un chiffre différent de celui enregistré ci-dessous, de sorte que la prochaine nouvelle mesure les déplace toutes ensemble ou aucune.

Mesuré 95.35 % — 55 970 lignes sur 58 697
Commit db796dd (moteur 0.29.0, l'étiquette v0.29.0)
Exécuter GitHub Actions, ci.yml job coverage, exécution 36809850252, 2026-10-01
Outil cargo tarpaulin --engine llvm (instrumentation LLVM fondée sur le code source)
Portée src/, à l'exclusion des tables de données générées src/*_data.rs et du point d'entrée mince de l'interface en ligne de commande (CLI) src/main.rs ; tests/ et web/ ne sont pas mesurés
Artefact coverage-lcov (lcov.info, 290 fichiers sources) joint à cette exécution
Plancher le même job échoue en dessous de 85 % (--fail-under 85) — le plancher est appliqué à chaque push ; le chiffre ci-dessus est un relevé, non une barrière

La commande, telle quelle dans .github/workflows/ci.yml :

cargo tarpaulin --engine llvm --out Lcov --output-dir coverage \
  --exclude-files 'src/*_data.rs' --exclude-files 'src/main.rs' \
  --exclude-files 'tests/*' --exclude-files 'web/*' \
  --timeout 3600 --fail-under 85

Re-measuring#

Chaque push vers main relance le job et joint un nouveau lcov.info. Pour faire évoluer le chiffre publié, téléchargez l'artefact d'une exécution réussie et additionnez-le :

gh run download <run-id> -n coverage-lcov -D /tmp/cov
awk -F: '/^LF:/{f+=$2} /^LH:/{h+=$2} END{printf "%.2f%% (%d/%d)\n", 100*h/f, h, f}' /tmp/cov/lcov.info

puis mettez à jour le tableau ci-dessus et les six surfaces dans le même commit ; le test de synchronisation de la documentation nomme celles que vous oubliez.

Historique#

Le chiffre a été remesuré, non retapé : 95,63 % sur le commit b1d350d (moteur 0.27.2 + non publié, exécution 35934579709, 2026-09-24, 37 697 lignes sur 39 419, publié comme ~96 %), révisé à 95,35 % sur 0.29.0 (ci-dessus), qui s'arrondit à ~95 % : le code a grossi de 19 278 lignes mesurées et les nouvelles lignes sont un peu moins couvertes que les anciennes ; 95,85 % à v0.17.0 (commit 1daa012, 2026-06-14, publié comme ~96 %), et ~97 % dans deux notes de version antérieures (CHANGELOG.md, laissées comme historique). paper/kshana-technical-report.md disait « près de 97 % » jusqu'à ce qu'il soit aligné sur ce relevé ; c'est désormais la sixième surface que le test fige.