68 lines
2.6 KiB
Markdown
68 lines
2.6 KiB
Markdown
# Analyse v1.2.0 — gitea-dashboard
|
|
|
|
**Date** : 2026-03-12
|
|
**Track** : minor
|
|
**Issues** : #6, #7, #8, #9, #10 (5/5 fermees)
|
|
|
|
## Metriques
|
|
|
|
| Metrique | v1.1.0 | v1.2.0 | Delta | Seuil | Alerte |
|
|
|----------|--------|--------|-------|-------|--------|
|
|
| Modules source | 5 | 7 | +2 | — | — |
|
|
| Lignes source | ~400 | 551 | +38% | — | — |
|
|
| Fichiers test | 4 | 6 | +2 | — | — |
|
|
| Tests | 53 | 88 | +66% | +50% | OUI |
|
|
| Couverture | ~95% | 93% | -2% | -5% | non |
|
|
| Dependances | 2 | 2 | 0 | +5 | non |
|
|
| Audit initial | 94 | 78 | -16 | — | — |
|
|
| Audit final | 100 | 100 | 0 | — | — |
|
|
| Rounds audit | 2 | 3 | +1 | — | — |
|
|
|
|
### Alerte : tests +66%
|
|
|
|
La croissance des tests depasse le seuil de +50%. C'est attendu pour une version minor
|
|
ajoutant 5 fonctionnalites (4 Added + 1 Fixed). Le ratio tests/fonctionnalite reste stable
|
|
(~7 tests/fonctionnalite). Pas d'action corrective necessaire.
|
|
|
|
## Chronologie
|
|
|
|
| Etape | Duree estimee | Notes |
|
|
|-------|--------------|-------|
|
|
| 6 Plan | rapide | architect, 3 phases, 3 ADR |
|
|
| 7 Dev | moyen | orchestrator (8 fichiers), 1 commit |
|
|
| 8 Audit | moyen | 3 rounds (78→94→100), 4 corrections |
|
|
| 9 Smoke | rapide | 7/7 E2E, 1 round |
|
|
| 10 Docs | fusionne avec 11 | — |
|
|
| 11 Release | rapide | lightweight, guardian APPROVED |
|
|
| 12 Deploy | skip | CLI local |
|
|
| 13 Retro | rapide | metriques + analyse |
|
|
|
|
## Findings d'audit corriges
|
|
|
|
1. **Sort milestones** : la section milestones utilisait la liste non triee
|
|
2. **Sort JSON** : `--sort` etait ignore en mode `--format json`
|
|
3. **Import lazy** : `export_json` importe conditionnellement dans le corps de main()
|
|
4. **Helper duplique** : `_make_repo` identique dans test_display.py et test_exporter.py
|
|
5. **N+1 API** : declasse en dette documentee (ADR-003), 3 appels/repo accepte
|
|
|
|
## Decisions notables
|
|
|
|
- **ADR-006** : ajout de `exporter.py` (5e module), separation serialisation/affichage
|
|
- **ADR-007** : retry manuel plutot que urllib3.Retry (simplicite, testabilite)
|
|
- **ADR-008** : tri dans display.py, pas collector.py (SRP)
|
|
- **sort_repos rendu public** : necessaire pour le tri JSON dans cli.py
|
|
|
|
## Points d'amelioration pour v1.3+
|
|
|
|
- Parallelisation des appels API (ADR-003, 3 appels sequentiels par repo)
|
|
- Export CSV
|
|
- Cache API local
|
|
- Couverture display.py a 86% (branches de formatage de dates)
|
|
|
|
## Conclusion
|
|
|
|
Version v1.2.0 livree avec les 5 fonctionnalites prevues. Audit final 100/100.
|
|
Le score initial d'audit (78) est le plus bas depuis v1.0.0, principalement du a
|
|
des bugs introduits par l'orchestrateur (sort inconsistency, sort JSON). Les corrections
|
|
ont ete rapides (3 rounds). La dette N+1 est documentee et planifiee.
|