Skip to content

docs(README): documente les retentatives automatiques (1.1.0) - #18

Open
arsenik-dtheo[bot] wants to merge 1 commit into
epic-6/04-retry-optionsfrom
epic-6/05-documentation-version
Open

arsenik-dtheo[bot] wants to merge 1 commit into
epic-6/04-retry-optionsfrom
epic-6/05-documentation-version

Conversation

@arsenik-dtheo

@arsenik-dtheo arsenik-dtheo Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

Closes #12
Partie de l'épic #6

🔍 Ce que fait cette PR

L'épic devient démontrable de bout en bout et documenté : le README décrit les retentatives automatiques (périmètre 429/529/5xx et erreurs réseau via ConnectionError, défauts 2 / 0,5 s / 8,0 s, Retry-After honoré, backoff exponentiel à jitter, rejeu à l'identique, retries silencieux), la section Configuration pointe vers les nouvelles retry_options: (avec l'exemple max_retries: 0 et la validation stricte ArgumentError), et l'ancien exemple de retry manuel — contredit par le comportement automatique livré par cet épic — est remplacé par un rescue exact. La table des erreurs s'enrichit de ConnectionError (#cause). Le CHANGELOG enregistre 1.1.0 et la version du gem est bumpée — bump unique de l'épic, porté par cette PR finale.

✅ Critères couverts

  • Le README documente les retentatives : périmètre des erreurs retentées, ConnectionError, défauts (2 / 0,5 / 8,0), exemple retry_options: incluant max_retries: 0 → nouvelle section ## Retries + table Errors ; exemples vérifiés par exécution contre le gem (valeurs attendues, ArgumentError nommant la clé, mutation du Hash passé sans effet)
  • Le CHANGELOG contient une entrée pour la nouvelle version décrivant le comportement de retry → ## [1.1.0]
  • La version du gem est bumpée dans le code source → VERSION = "1.1.0" (+ spec de contrat de version)
  • Les exemples du README sont exacts par rapport au comportement livré (validation stricte, héritage Jev) → chaque affirmation relue contre normalize_retry_options / validate_max_retries! / validate_delay! / Jev#initialize

👀 Comment vérifier

  1. Lire README.md section ## Retries : un lecteur peut écrire le code de la spec sans lire le reste
  2. bundle exec rspec — 268 exemples verts (aucun comportement nouveau : uniquement doc et version)

🧪 Vérifications

  • Seam de test : contrat de version spec/typesafe_spec.rb (mécanisme du bump) — cf. ## Décisions de test de la spec
  • typecheck propre (ruby -c sur les .rb touchés)
  • suite complète verte (268 exemples)
  • diff contenu dans le périmètre du ticket (README, CHANGELOG, version.rb, spec de version, lockfile)

⚠️ Écarts et arbitrages

Signalements [NIT] de la revue (cycle 1, verdict APPROVED), non bloquants, non corrigés ici :

  • Le README laisse croire qu'un délai serveur Retry-After est plafonné à 8 s — il ne l'est pas (max_delay ne borne pas l'en-tête), et Retry-After: 0 est ignoré ; une phrase lèverait l'ambiguïté
  • Le jitter ∈ [nominal/2 ; nominal] : le premier sommeil par défaut peut être 0,25 s, pas 0,5 s — le README ne le dit pas
  • La liste réseau du README est plus étroite que NETWORK_ERRORS (TLS, flux tronqué, hôte inaccessible)
  • Hygiène CHANGELOG : liens de comparaison non étendus (pattern pré-existant, laissé tel quel), ### Documentation hors types Keep a Changelog
  • Les mêmes faits de retry apparaissent trois fois dans le README (intro Errors, note de table, Retries) — risque de dérive
  • Hors ticket noté par le Worker : la docstring de APIError (lib) contient encore l'ancien exemple de retry manuel — commentaire de lib, au-delà du périmètre README/CHANGELOG

📚 Références

@arsenik-dtheo
arsenik-dtheo Bot added this pull request to stack #19 September 20, 2026 23:41
Le README décrit maintenant la politique de retry livrée par l'épic : erreurs
retentées (429, 529, 5xx et erreurs de connexion encapsulées dans
Typesafe::ConnectionError), défauts (2 retries / 0,5 s / 8,0 s), Retry-After
honoré, backoff exponentiel à jitter, rejeu à l'identique, retries silencieux,
et réglage/désactivation via retry_options: (max_retries / base_delay /
max_delay, validation stricte à la construction, héritage par Typesafe::Jev).
L'ancien exemple de retry manuel des erreurs retentables, contredit par le
comportement automatique, est remplacé par un exemple rescue exact
(ConnectionError#cause, APIError#status/#request_id/#body).

CHANGELOG : la section Unreleased devient l'entrée 1.1.0, augmentée de la section Documentation.
Version bumpée 1.0.0 -> 1.1.0 (bump unique de l'épic, porté par son PR final),
spec de contrat de version synchronisée, lockfile resynchronisé.
@arsenik-dtheo
arsenik-dtheo Bot force-pushed the epic-6/05-documentation-version branch from 7fe861c to 3d32860 Compare September 21, 2026 06:12
@arsenik-dtheo arsenik-dtheo Bot changed the title docs(README): documente les retentatives automatiques (1.5.0) docs(README): documente les retentatives automatiques (1.1.0) Sep 21, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

05 : documentation et version

0 participants