docs(v1.4.0): version plan and ADR
Plan 2 phases : bugfix timeout + config YAML, puis vue milestones + colonnes. ADR-012 a ADR-015 couvrant degradation gracieuse, config.py, MilestoneData, et colonnes configurables. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -167,3 +167,62 @@
|
||||
- Un seul niveau d'arguments
|
||||
- `--health` est mutuellement exclusif avec le mode dashboard
|
||||
- Si d'autres modes alternatifs apparaissent, reconsiderer les sous-commandes
|
||||
|
||||
## ADR-012 : Degradation gracieuse sur timeout dans _get_paginated (v1.4.0)
|
||||
|
||||
**Date** : 2026-03-13
|
||||
**Statut** : accepte
|
||||
|
||||
**Contexte** : Un timeout reseau sur une page intermediaire de la pagination fait crasher tout le collecteur. Le retry existant (ADR-007/ADR-009) retente les requetes individuelles, mais apres epuisement des retries, l'exception remonte et les donnees des pages precedentes sont perdues.
|
||||
|
||||
**Decision** : Dans `_get_paginated`, catch les exceptions Timeout apres epuisement des retries uniquement pour les pages > 1. Retourner les donnees collectees jusque-la et emettre un `warnings.warn()`. Si la premiere page echoue, l'exception remonte normalement.
|
||||
|
||||
**Consequences** :
|
||||
- Le dashboard affiche un resultat partiel plutot qu'un crash
|
||||
- L'utilisateur est informe via un warning
|
||||
- La premiere page echouee reste un crash clair
|
||||
- Coherent avec le principe "Gestion gracieuse" de CLAUDE.md
|
||||
|
||||
## ADR-013 : Nouveau module config.py pour la configuration YAML (v1.4.0)
|
||||
|
||||
**Date** : 2026-03-13
|
||||
**Statut** : accepte
|
||||
|
||||
**Contexte** : L'issue #17 demande un fichier de configuration YAML. La logique (lecture fichier, resolution variables, merge de priorites) est distincte du parsing CLI.
|
||||
|
||||
**Decision** : Creer `config.py` comme 7eme module source. Nouvelle dependance PyYAML. Le principe "un module = une responsabilite" de ADR-002 reste respecte.
|
||||
|
||||
**Consequences** :
|
||||
- Separation claire : cli.py parse les args, config.py resout la configuration
|
||||
- Le module est testable independamment avec des fixtures YAML
|
||||
- Premiere nouvelle dependance ajoutee au projet (PyYAML)
|
||||
- Le merge de priorites (CLI > env > config > defaults) est centralise et testable
|
||||
|
||||
## ADR-014 : Dataclass MilestoneData pour la vue milestones (v1.4.0)
|
||||
|
||||
**Date** : 2026-03-13
|
||||
**Statut** : accepte
|
||||
|
||||
**Contexte** : La vue `--milestones` collecte des milestones de tous les repos. Les milestones de l'API sont des dicts bruts sans reference au repo parent.
|
||||
|
||||
**Decision** : Creer un dataclass `MilestoneData` dans collector.py. Collecte avec `state=all` pour afficher l'historique complet.
|
||||
|
||||
**Consequences** :
|
||||
- Coherent avec RepoData : donnees normalisees et documentees
|
||||
- Le calcul du pourcentage de progression est centralise dans le collecteur
|
||||
- `state=all` augmente les appels API mais donne une vue complete
|
||||
|
||||
## ADR-015 : Colonnes configurables par inclusion/exclusion (v1.4.0)
|
||||
|
||||
**Date** : 2026-03-13
|
||||
**Statut** : accepte
|
||||
|
||||
**Contexte** : L'issue #19 demande de pouvoir choisir les colonnes affichees. L'approche actuelle (`--no-desc`) est ad hoc. Un systeme generique est maintenant justifie par le besoin.
|
||||
|
||||
**Decision** : Ajouter `--columns` avec syntaxe a virgules. Support inclusion directe et exclusion par prefixe `-`. `--no-desc` reste fonctionnel comme alias.
|
||||
|
||||
**Consequences** :
|
||||
- Remplace l'approche YAGNI de v1.3.0 (maintenant justifie)
|
||||
- Retrocompatible : `--no-desc` continue de fonctionner
|
||||
- `--columns help` fournit une aide contextuelle
|
||||
- Les deux flags combines s'appliquent cumulativement
|
||||
|
||||
Reference in New Issue
Block a user