LTS DEV NOTES

Notes - Mainteneur Dolibarr 18 LTS

Préparation

Pour réaliser une release sur la branche de maintenance, on peut s'inspirer de la documentation sur Dolibarr :

https://github.com/Dolibarr/dolibarr/blob/develop/dev/build/makepack-howto.md

Création de la release Dolibarr 18.0.7

Ici nous allons créer la release 18.0.7 à partir du premier commit après la release 18.0.6 (sortie le 13 novembre 2024) :

Préparation du Changelog et de la version de la release

Création du fichier temporaire avec tous les changements qui va servir pour le fichier “Changelog”

# se placer dans le dossier Dolibarr que l'on a cloné depuis le dépôt Git
> cd /var/www/html/dolibarr 

# se placer sur la branche 18.0 (récupéré en upstream) 
> git checkout 18.0 

# mettre à jour la branche
> git pull upstream 18.0 

# récupérer les tags de la branche upstream afin d'avoir le tag de la dernière release
> git fetch upstream --tags 

# création d'une branche locale pour le travail
> git checkout -b 18.0.7_lts

# création d'un fichier temporaire pour préparer le Changelog avec les FIX, NEW et SEC
# ici on a supprimé la partie 'sed -e "s/^[0-9a-z]* //"' (pas compris à quoi ça sert ?) par rapport au fichier 'makepack-howto.md' qui se trouve sur le lien Github Dolibarr présenté au début de cette documentation
# ici on a ajouté les PR concernant les correctifs de sécurité en ajoutant le mot-clé 'SEC'
# ici on a enlevé les lignes qui commencent par ' Merge ' pour éviter d'avoir les "Merge pull" et "Merge branch"
> git log 18.0.6.. | grep -e 'FIX\|NEW\|SEC' | sort -u | sed 's/FIXED:/FIX:/g' | sed 's/FIXED :/FIX:/g' | sed 's/FIX :/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW :/NEW:/g' | sed 's/NEW /NEW: /g' | grep -ve "^\s*Merge "  > /tmp/changelogtocopy

Ensuite copie le contenu du fichier “/tmp/changelogtocopy” dans le fichier “Changelog” se trouvant à la racine des sources de Dolibarr en y ajoutant les lignes suivantes avant le contenu des changements (FIX, NEW, SEC) au début du fichier :

***** ChangeLog for 18.0.7 compared to 18.0.6 *****
121 files changed, 1007 insertions(+), 371 deletions(-)

On reformate les lignes des changements si besoin.

Pour connaître le nombre de fichiers changés on peut utiliser la commandes :

> git diff --shortstat 18.0.6

Mettre à jour le numéro de version avec 18.0.7 dans le fichier “htdocs/filefunc.inc.php”

if (!defined('DOL_VERSION')) {
	define('DOL_VERSION', '18.0.7'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c
}

Et si on est sur une version LTS, on peut ajouter “LTS” dans le titre de l'application Dolibarr :

if (!defined('DOL_APPLICATION_TITLE')) {
	define('DOL_APPLICATION_TITLE', 'Dolibarr LTS');
}

Création de la release

Commiter tous ces changements

# ajouter tous les changements
> git add .

# et les commiter
> git commit -m "Prepare 18.0.7"

Lancer la commande “makepack-dolibarr.pl” (utiliser le chemin complet)

# exporter les variables d'environnement (sous Linux)
# si vous lancer la commande 'makepack-dolibarr.pl': celle-ci affichera une aide pour exporter ces variables sous Linux ou Windows
> export DESTIBETARC='/tmp'; export DESTISTABLE='/tmp';

# lancer la commande en utilisant le chemin complet
> /var/www/html/dolibarr/build/makepack-dolibarr.pl

# choisir la cible

Makepack version 4.0
Building/publishing package name: dolibarr
Building/publishing package version: 18.0.7
Source directory (SOURCE): /var/www/html/php74/easya3/dolibarr/build/..
Target directory (DESTI) : /tmp
  0 - ALL (1..10)     (Need ISCC.exe,rpmbuild,xz,flatpack,tar,rpmbuild,dpkg dpatch,rpmbuild,7z,rpmbuild,tar)
  1 - Generate check file
  2 - TGZ             (Need tar)
  3 - ZIP             (Need 7z)
  4 - RPM_GENERIC     (Need rpmbuild)
  5 - RPM_FEDORA      (Need rpmbuild)
  6 - RPM_MANDRIVA    (Need rpmbuild)
  7 - RPM_OPENSUSE    (Need rpmbuild)
  8 - DEB             (Need dpkg dpatch)
  9 - EXEDOLIWAMP     (Need ISCC.exe)
 10 - SNAPSHOT        (Need tar)
 98 - ASSO (publish)  (Need git ssh rsync)
 99 - SF (publish)    (Need git ssh rsync)
Choose one target number or several separated with space (0 - 99): 0

# note: ici on tape 2 pour ne générer que le TGZ et une fois validé il faut utiliser le code 0 pour générer tous les paquets

# et voilà vous pouvez cliquer sur la touche "Entrée" du clavier pour terminer

----- Summary -----
Package TGZ built successfully in /tmp

Press key to finish...

# le fichier est dans "/tmp/dolibarr-18.0.7.tgz"

Voilà le fichier de la release 18.0.7 vient d'être crée dans le dossier “/tmp” : il faut alors le vérifier en le décompressant et en installant la version 18.0.7 de Dolibarr.

Publication de la release

Envoyer vers le serveur de l'association

Relancer le script “makepack-dolibarr.pl” avec les options de publication sur le serveur de la fondation Dolibarr (ça sera envoyé sur le dir /home/dolibarr/wwwroot/files/stable sur http://www.dolibarr.org/).

DESTIASSOLOGIN='xxxxxxx' /var/www/html/dolibarr/build/makepack-dolibarr.pl
Envoyer vers le serveur sourceforge

Puis Relancer le script “makepack-dolibarr.pl” avec les options pour publier les fichiers sur SourceForge. Ca ajoutera également le tag de la version officielle 18.0.7.

DESTISFLOGIN='xxxxx,dolibarr' /var/www/html/dolibarr/build/makepack-dolibarr.pl
Annoncer la nouvelle version

Poster un nouveau message sur le site “dolibarr.org” en clonant une actualité passée et relayer l'url de cette actualité sur les réseaux sociaux.