Skip to content

Nouvelle version mineure

Guillaume Lelarge edited this page Nov 24, 2020 · 1 revision

Une nouvelle version mineure génère beaucoup moins de travail qu'une nouvelle version majeure. Cependant, cela demande de mettre à jour une version mineure par branche, ce qui amène donc quand même un travail conséquent. Nous avons deux étapes, la première étant à réaliser pour chaque version mineure à traduire.

Étape 1, le merge et la traduction par version

Il convient de créer tout d'abord un tag pour l'ancienne version. L'exemple que nous prendrons ici est le travail effectué pour passer de la version 13.0 à la version 13.1. Voici comment ajouter le tag :

git tag tv130

Le nom du tag correspond au texte tv (pour Tag Version) suivi de la version sans point séparateur. Donc tv130 pour la version 13.0, tv9620 pour la version 9.6.20, etc.

Le but ensuite est de regarder toutes les différences entre l'ancienne version originale et la nouvelle. Ces différences se récupèrent avec la commande suivante (entre les versions 13.0 et 13.1 pour l'exemple) :

git diff REL_13_0..REL_13_1 doc/src/sgml > ~/en13.patch

Le résultat (le fichier ~/en13.patch) contient toutes les modifications qu'il va falloir reporter dans les fichiers de la traduction de la version 13.

Il est très improbable que de nouveaux fichiers soient créés ou que d'anciens soient supprimés. Néanmoins, si certains fichiers sont nouveaux dans la version originale, il faut les ajouter avec un git add. Et si certains sont supprimés de la version originale, Il faut les supprimer avec un git rm.

Quant aux fichiers modifiés, les modifications sont généralement traduites immédiatement car elles sont assez courtes. Les modifications des fichiers Makefile et XSLT sont à prendre en compte immédiatement. Les fichiers SVG sont à copier simplement.

En fin de traduction de la version complète, il est important de penser à réindenter la documentation. Il existe un programme pour cela dans le répertoire tools. Un simple make suffit à le compiler. Le script suivant permet de réindenter tous les fichiers se trouvant dans le répertoire courant et ses sous-répertoires :

#!/bin/sh

find . -name "*.xml" | while read file
do
  mv ${file} ${file}.old
  cat ${file}.old | ~/bin/pg_doc_indent > ${file}
  echo -n "."
done
echo " done!"

Une fois le merge terminé, il convient de faire un git commit -a. Le message de commit est traditionnellement Mise à jour en version X (X étant 13.1 dans l'exemple).

Étape 2, la mise à disposition

Il ne reste plus qu'à générer la documentation pour chaque version modifiée et à la mettre à disposition sur le serveur de documentation.