Journal des modifications
Modifications notables du livre et de son outillage. Les entrées les plus récentes figurent en haut. Les dates suivent la norme ISO 8601 (AAAA-MM-JJ).
[Unreleased]
Changed
- Néerlandais (
nl-nl) : traduction des titres et slugs anglais restants des sujets 9.0, 9.3 et 9.4 (bijlagen,controlelijsten,sjablonen). - Gallois (
cy-001,cy-gb) : terminologie alignée sur TermCymru :risg(risque, remplaçantperygl, avec accord en genre),cyfnewidiad(compromis),dangosydd rhagfynegietdangosydd ôl-fynegi(indicateur avancé et retardé, remplaçanthwyrfrydig),cynhwysedd(capacité),dosraniad(distribution),cydberthynas(corrélation),allbwnpour production dans le sujet 1.3, etcyfradd gadael staff(rotation du personnel). Quatre slugs de sujets ont été renommés pour correspondre. - Site : mise à niveau de
@lilydesignsystem/svelte-picker-barvers 0.2.0, qui ajoute un sélecteur de recherche à la barre d’en-tête ; il soumet à la recherche existante du site/?<query>. - Ajout de
scripts/generate-sitemap.mjs, exécuté à la fin depnpm build, qui écritsitemap.xmlà partir des pages pré-rendues (URL de locale canoniques uniquement, sans doublons d’alias à deux lettres) afin que la ligneSitemap:derobots.txtsoit résolue. AGENTS.mdest désormais un court index ; les détails sont passés dansAGENTS/layout.md,style.md,locales.mdetworkflow.md.- Passe de documentation : mise à jour de
AGENTS.md,index.md, du texte de locales du README généré, despec/index.md,spec/locales.md, ainsi que deAGENTS.mdetREADME.mddu site pour 27 locales, des noms de répertoires de section par locale et du nouvel outillage ; ajout deCLAUDE.md(un pointeur versAGENTS.md) ; correction des anciens cheminsdocs/dans les deux compétences d’agent et deskills/comme copie canonique de.claude/skills/(vérifié par les tests). - Ajout de
llms.txtetllms.json(un index pour agents d’IA de chaque locale et sujet servis) dansstatic/du site, générés partools/gen_llms.py(just llms) et vérifiés par les tests. - Page d’accueil du site : la liste de tuiles des « neuf parties » est désormais une liste imbriquée « Contenu » de toutes les parties et de tous les sujets, et la section « La loi de Goodhart, partout » est supprimée.
- Remplacement de « chapter » par « topic » dans toute la prose du livre pour chaque
locale (par exemple « sujet 2.1 », « Sujets de cette partie »), en utilisant le mot propre à
chaque langue pour sujet (
tema,sujet,Thema,тема,主題, et ainsi de suite), ainsi que dans la spécification, le texte généré par les outils et les chaînes d’interface du site. Les noms de fichiers, les URL et les clés de section sont inchangés. - Traduction de chaque nom de répertoire de section sous
locales/:chapters/est désormaistopics/(et sa traduction dans chaque autre locale, p. ex.temas/,sujets/,themen/), et leexamples/dees-001estejemplos/. Les noms résident dansspec/section-names.json; les outils, les tests et la synchronisation de contenu du site les lisent à cet endroit, et les URL du site sont inchangées.
Changed
- Révision des locales galloises (
cy-001,cy-gb, maintenues identiques) par rapport à la liste de terminologie TermCymru du gouvernement gallois :llesiantpour bien-être,cynhyrchiantpour productivité,gwendid/gwendidaupour vulnérabilité,llywodraethiantpour gouvernance,cydberthynaspour corrélation,ôl-groniadpour backlog (auparavant laissé en anglais),cost a buddpour coûts-avantages, etdeallusrwydd artiffisial (AI)à la première mention de l’IA dans chaque sujet.
Added
- Les sections liminaires, exemples, contribution et projet (14 fichiers, plus un journal des modifications, une page d’accueil et une table des matières) ont été traduites dans cette locale, avec des noms de répertoires traduits.
- Ajout de l’allemand (
de-001) comme 26e locale entièrement traduite : les 63 sujets avec les fichiers annexes.locale-peer-idcorrespondants, identique en contenu àde-de. Raccordée au site et servie sur/de-001/(alias/de/). - Ajout du portugais (
pt-001) comme 25e locale entièrement traduite : les 63 sujets avec les fichiers annexes.locale-peer-idcorrespondants, identique en contenu àpt-pt. Raccordée au site et servie sur/pt-001/(alias/pt/). - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
ourdou (
ur-001, de droite à gauche), 24e locale entièrement traduite, avec les fichiers annexes.locale-peer-idcorrespondants. Chaque sujet a été traduit directement à partir de la source anglaise, l’index (sujet 9.7) remappe chaque lien interne vers son nom de fichier en ourdou, et le répertoire de section estموضوعات. Raccordée au site et servie sur/ur-001/(alias/ur/). - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
indonésien (
id-001), avec les fichiers annexes.locale-peer-idcorrespondants. Aucune locale indonésienne préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise, et l’index (sujet 9.7) remappe chaque lien interne vers son nom de fichier en indonésien. Raccordée au site et servie sur/id-001/(alias/id/). - Ajout du russe (
ru-001) et du chinois (zh-001) comme 21e et 22e locales entièrement traduites : les 63 sujets chacune, avec les fichiers annexes.locale-peer-idcorrespondants, identiques en contenu àru-ruetzh-cn. Raccordées au site et servies sur/ru-001/et/zh-001/(alias/ru/et/zh/). - Ajout du français (
fr-001) comme 20e locale entièrement traduite : les 63 sujets avec les fichiers annexes.locale-peer-idcorrespondants, identique en contenu àfr-fr. Raccordée au site et servie sur/fr-001/(alias/fr/). - Ajout du bengali (
bn-001) comme 19e locale entièrement traduite : les 63 sujets avec les fichiers annexes.locale-peer-idcorrespondants, identique en contenu àbn-bd. Raccordée au site et servie sur/bn-001/(alias/bn/). - Ajout de l’arabe (
ar-001) comme 18e locale entièrement traduite : les 63 sujets avec les fichiers annexes.locale-peer-idcorrespondants, identique en contenu àar-eg. Raccordée au site et servie sur/ar-001/(alias/ar/). - Ajout du gallois, Grande-Bretagne (
cy-gb) comme 17e locale entièrement traduite : les 63 sujets avec les fichiers annexes.locale-peer-idcorrespondants, identique en contenu àcy-001(la même relation quehi-idavechi-001). Raccordée àSERVED_LOCALE_CODESdu site et servie sur/cy-gb/. - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
néerlandais, Pays-Bas (
nl-nl), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Aucune locale néerlandaise préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier néerlandais, selon l’approche utilisée pourar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jp,ru-ru,fr-fretsv-se. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
suédois, Suède (
sv-se), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Aucune locale suédoise préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier suédois, selon l’approche utilisée pourar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jp,ru-ruetfr-fr. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
français, France (
fr-fr), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Aucune locale française préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier français, selon l’approche utilisée pourar-eg,bn-bd,ko-kr,es-es,pt-pt,ja-jpetru-ru. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
russe, Russie (
ru-ru), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Aucune locale russe préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier russe, selon l’approche utilisée pourar-eg,bn-bd,ko-kr,es-es,pt-ptetja-jp. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
japonais, Japon (
ja-jp), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Aucune locale japonaise préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier japonais, selon l’approche utilisée pourar-eg,bn-bd,ko-kr,es-esetpt-pt. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète, à partir de zéro, des 63 sujets en
portugais, Portugal (
pt-pt), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Aucune locale portugaise préexistante ne pouvait servir de base, donc chaque sujet a été traduit directement à partir de la source anglaise. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier portugais, selon l’approche utilisée pourar-eg,bn-bd,ko-kretes-es. Pas encore raccordée au site. - Ajout de l’espagnol, Espagne (
es-es) comme locale entièrement traduite, les 63 sujets, en partant d’une copie de la traduction espagnole existante (es-001) (qui s’est avérée, à l’examen, déjà grammaticalement neutre, avec un vocabulaire déjà majoritairement tourné vers l’Espagne) puis en appliquant une passe terminologique ciblée aux usages minoritaires restants, notamment « incidente » vers « incidencia » pour le domaine des métriques d’incidents de ce livre, avec les corrections d’accord en genre correspondantes partout. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète des 63 sujets en coréen, Corée
(
ko-kr), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. L’index (sujet 9.7) remappe chaque lien interne de sujet vers son nom de fichier coréen, selon l’approche utilisée pourar-egetbn-bd. Pas encore raccordée au site. - Ajout de l’hindi, Inde (
hi-id) comme locale entièrement traduite, les 63 sujets, en copiant à l’identique la traduction hindi existante (hi-001) sous le code de locale étiqueté par pays, puisque l’hindi standard n’a pas de variante propre à l’Inde à traduire à la main séparément. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète des 63 sujets en bengali,
Bangladesh (
bn-bd), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète des 63 sujets en arabe, Égypte
(
ar-eg), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Pas encore raccordée au site. - Réalisation d’une traduction manuelle complète des 63 sujets en allemand, Allemagne
(
de-de), avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. Pas encore raccordée au site. - Réalisation de traductions manuelles complètes des 63 sujets dans trois locales :
gallois (
cy-001), chinois (zh-cn) et hindi (hi-001), chacune avec les fichiers annexes.locale-peer-idcorrespondants etjust testau vert. - Ajout de deux autres locales traduites prévues, gallois - Grande-Bretagne
(
cy-gb) et chinois (zh-001), àspec/locales-for-global-sharing-with-svelte/locales.tsvetspec/locales.md(treize locales prévues désormais, contre onze), et résolution de l’endonyme jusque-là indécis dezh-cnen 中文. LesLOCALE_LABELSdu site ont gagné des entrées correspondantes (cy-gb: « Cymraeg (Prydain Fawr) »,zh-001: « 中文 »,zh-cn: « 中文 (中国) »). Toujours de l’infrastructure seulement : aucune de ces locales n’a de répertoirelocales/<code>/ni de contenu traduit. - Publication du livre en quatre locales sous
locales/:en-gb-oxendict(anglais britannique, orthographe d’Oxford ; la source écrite à la main),en-001(anglais international),en-gb(anglais britannique courant) eten-us(anglais américain).en-001,en-gbeten-ussont dérivées mécaniquement deen-gb-oxendictpar le nouveautools/localize.py; voirspec/locales.md.docs/n’existe plus ; toute référence à celui-ci dansspec/,AGENTS.md,tests/validate.py,tools/gen_nav.pyettools/stats.pypointe désormais verslocales/<locale>/. - Ajout de deux compétences Claude Code,
software-engineering-metrics-skill(pour les lecteurs qui appliquent les conseils du livre à leur propre équipe) etsoftware-engineering-metrics-maintainer-skill(pour les contributeurs qui ajoutent ou modifient des sujets), sousskills/et reflétées dans.claude/skills/. - Déplacement de la source du site web publié dans ce dépôt sous le nom
software-engineering-metrics.github.io/, auparavant un dépôt distinct. Il lit désormaislocales/directement depuis la racine du dépôt plutôt que depuis une copie voisine. Le.github/workflows/deploy.ymlde la racine vérifie que le site se construit toujours à chaque push versmain, puis envoie unrepository_dispatchau dépôtsoftware-engineering-metrics.github.io(conservé comme une fine coque de déploiement, car GitHub Pages ne servira ce domaine nu qu’à partir d’un dépôt portant exactement ce nom), qui récupère ce monorepo, construit le site et le déploie. - Ajout de l’infrastructure pour les locales traduites (et pas seulement dérivées par
l’orthographe), selon la nouvelle sous-spécification
spec/locales-for-global-sharing-with-svelte/:tools/gen_locale_peer_ids.pyattribue à chaque fichier de contenu un fichier annexe.locale-peer-id, identique d’une locale à l’autre, qu’une future locale traduite (avec ses propres slugs en écriture native) peut utiliser pour résoudre « cette page, dans la locale X » au lieu de faire correspondre par slug ;tests/validate.pyvérifie que chaque fichier annexe existe et correspond.spec/locales.mddocumente dix locales traduites prévues (arabe, bengali, gallois, espagnol, français, hindi, indonésien, portugais, russe, ourdou et chinois - Chine) ; aucune n’a encore de répertoirelocales/<code>/, puisqu’aucune n’est encore traduite. Sur le site,scripts/locales.mjsa gagnéLOCALE_LABELS/localeLabel()(un nom d’affichage pour chaque locale prévue, prêt avant le routage) etsortedLocaleEntries()(l’ordre de tri qu’une future liste de locales devrait utiliser), etsrc/lib/i18n.jsa extrait les chaînes d’interface (navigation, barre latérale, pagination, sélecteur, pied de page, lien d’évitement) que chaque composant.sveltecodait auparavant en dur en anglais, acheminées viaui(locale), avec repli sur l’anglais pour toute locale sans ses propres traductions. - Remplacement du contrôle d’en-tête du site, construit à la main et limité aux locales, par le
@lilydesignsystem/svelte-picker-bardu Lily Design System : un vrai sélecteur de thème (clair/sombre, via les nouveauxstatic/assets/themes/{light,dark}.css), le vrai sélecteur de locale (relié au routage par URL de ce site plutôt qu’à son comportement par défaut limité à lang/dir), un sélecteur de taille de texte (l’échelle à sept niveaux de Lily) et un sélecteur de partage (courriel, Mastodon, copie du lien). Épinglage de@lilydesignsystem/svelte-{theme,locale,text-size,share}-pickerà^0.1.2et de@lilydesignsystem/svelte-headlessà^0.2.0via les overrides depnpm-workspace.yaml, en contournant un vrai bogue publié dans les plages de dépendances desvelte-picker-bar0.1.0 (voir leCHANGELOG.mdde chaque sélecteur, « 0.1.2 », et leAGENTS.mdde ce site). - Suppression de la rangée de statistiques de la page d’accueil (parties/sujets/« Free Always ») et de sa section « How to read it », et remplacement de la grille de cartes « Browse the nine parts » par une simple liste à puces.
Changed
- Ajout de
scripts/generate-sitemap.mjs, exécuté à la fin depnpm build, qui écritsitemap.xmlà partir des pages pré-rendues (URL de locale canoniques uniquement, sans doublons d’alias à deux lettres) afin que la ligneSitemap:derobots.txtsoit résolue. - Ajout du sujet 2.8, métriques de chaîne de valeur Lean (délai de livraison, temps de traitement, temps de cycle, pourcentage complet et exact, et temps takt issus de la cartographie classique de la chaîne de valeur Lean, plus le calcul du rendement de débit cumulé), placé après la théorie des files d’attente. Les métriques de demandes de fusion et de revue de code sont passées de 2.8 à 2.9, et le sujet des métriques DORA de 2.9 à 2.10. Mise à jour de chaque renvoi concerné dans tout le livre.
- Renommage de la partie 2 de « Delivery and Flow Metrics » en « Flow Metrics » et réorganisation autour du Flow Framework de Mik Kersten. Ajout de quatre nouveaux sujets : 2.1 Le Flow Framework, 2.2 Éléments de flux (fonctionnalités, défauts, risques, dette), 2.3 Vitesse de flux et distribution de flux, et 2.4 Temps de flux et charge de flux. Regroupement des quatre sujets individuels de métriques DORA (fréquence de déploiement, délai de livraison, taux d’échec des changements, temps de rétablissement) en un seul sujet de référence, 2.9 Le cadre des métriques DORA, déplacé à la fin de la partie. Renumérotation de l’efficacité de flux et du travail en cours en 2.5 et renommage et renumérotation du sujet de la théorie des files d’attente (anciennement 2.9) en 2.7 Théorie des files d’attente. Le temps de cycle (2.6) et les métriques de demandes de fusion et de revue de code (2.8) conservent leurs numéros. Mise à jour de chaque renvoi dans le livre, le glossaire, la référence des formules, l’auto-évaluation de la maturité et les liminaires pour qu’ils correspondent.
Added
- Version initiale : 45 sujets de fond répartis en 8 parties, plus les liminaires et une annexe de 7 sujets (partie 9), couvrant les cadres DORA et SPACE, les métriques de code et de qualité, les métriques de produit et d’activité, les métriques de fiabilité et de sécurité, et l’effet de l’IA générative sur les métriques d’ingénierie.
- Infrastructure du dépôt reprise du projet frère
software-engineering-guide: unspec/piloté par la spécification (index, structure, conventions, orthographe d’Oxford, feuille de route), une suite de validation danstests/validate.py, un générateur de navigation danstools/gen_nav.py, unjustfile,AGENTS.mdavec des guides de contribution sousdocs/contributing/,CONTRIBUTING.mdet ce journal des modifications. spec/structure.md, le manifeste canonique des sujets auquel les tests comparent les fichiers.- Deux exemples détaillés dans
docs/examples/: une charte de métriques remplie et une spécification de tableau de bord.
Historique
Le livre a été construit de la spécification vers l’extérieur : la structure en neuf parties
a d’abord été déclarée dans spec/structure.md, puis chaque sujet a été rédigé
selon le modèle partagé de docs/contributing/chapter-template.md, avec tests/validate.py imposant la structure et le style maison tout du long.
Conventions pour ce fichier
- Regroupez les changements sous Added, Changed, Fixed, Removed ou Deprecated.
- Gardez les entrées courtes et précises. Une ligne chacune quand c’est possible.
- N’utilisez pas non plus de tirets cadratins ici ; les tests vérifient aussi ce fichier.