Picarones / codecov.yml
Claude
test(sprint-S8.7): bump patch coverage with real tests + fix codecov.yml
c900ebc unverified
# Codecov configuration β€” Picarones
#
# Cible : release institutionnelle (BnF, LoC, BL).
# - Plancher couverture projet : 85 % (cohΓ©rent avec
# ``--cov-fail-under=85`` dans la CI).
# - Patch coverage : 80 % (toute PR doit couvrir au moins 80 %
# des lignes qu'elle ajoute/modifie).
# - Seuil de tolΓ©rance ``threshold`` : 0.5 pt β€” on n'accepte pas
# une dΓ©gradation > 0.5 pt sans qu'elle soit explicite dans la
# PR description.
#
# RΓ©fΓ©rence : https://docs.codecov.com/docs/codecov-yaml
codecov:
require_ci_to_pass: false # Le report doit remonter mΓͺme si pytest a failed.
notify:
after_n_builds: 1 # Premier upload suffit (pas d'attente d'autres OS).
coverage:
precision: 2
round: down
range: "85...95" # Heatmap : rouge en dessous de 85, vert au-dessus de 95.
status:
project:
default:
target: 85%
threshold: 0.5%
if_ci_failed: error # CI cassΓ©e β†’ status Codecov en error.
only_pulls: false
patch:
default:
target: 80%
threshold: 0.5%
if_ci_failed: error
only_pulls: false
# ────────────────────────────────────────────────────────────────────
# Annotations dans les PR.
# ────────────────────────────────────────────────────────────────────
comment:
layout: "header, diff, flags, components, files"
behavior: default # Mise Γ  jour du commentaire existant Γ  chaque push.
require_changes: true # Pas de commentaire si la PR ne touche pas la couverture.
# ────────────────────────────────────────────────────────────────────
# Exclusions : modules sans contenu testable ou auto-gΓ©nΓ©rΓ©s.
# ────────────────────────────────────────────────────────────────────
ignore:
- "tests/"
- "scripts/"
- "docs/"
- "**/__init__.py" # Re-exports pur ; couverts indirectement.
- "picarones/_version.py" # GΓ©rΓ© par setuptools_scm.
# ────────────────────────────────────────────────────────────────────
# Composants logiques (lisibilitΓ© du dashboard Codecov).
# ────────────────────────────────────────────────────────────────────
component_management:
default_rules:
statuses:
- type: project
target: auto
threshold: 1%
individual_components:
- component_id: domain
name: Domain (cercle 1)
paths:
- picarones/domain/**
- component_id: formats
name: Formats
paths:
- picarones/formats/**
- component_id: evaluation
name: Evaluation
paths:
- picarones/evaluation/**
- component_id: pipeline
name: Pipeline
paths:
- picarones/pipeline/**
- component_id: adapters
name: Adapters
paths:
- picarones/adapters/**
- component_id: app
name: App services
paths:
- picarones/app/**
- component_id: reports
name: Reports
paths:
- picarones/reports/**
- component_id: interfaces
name: Interfaces (CLI, web)
paths:
- picarones/interfaces/**