LTS DEV NOTES
Notes - Mainteneur Dolibarr 18 LTS
Vous trouverez ci-dessous les notes complémentaires prises par les mainteneurs de la version 18 LTS de Dolibarr (Voir la page des acteurs et rôles Dolibarr pour voir qui a ce rôle) au gréé des sessions de travail en commun pour la publication de la première 18.0.7 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
Remarque préalable
Note: si vous avez plusieurs remote le script makepack-dolibarr.pl semble ne pas savoir envoyer le tag sur le dépôt principal
Dans la suite de la documentation, nous allons utiliser la branche remote "origin" pour le dépôt Git de Dolibarr :
> git remote -v > origin https://github.com/Dolibarr/dolibarr.git
Si vous utilisez une remote "upstream" pour le dépôt Git de Dolibarr alors il faudra adapter vos commandes.
Il est tout de même fortement conseillé d'utiliser la remote "origin" pour le dépôt Git de Dolibarr.
ATTENTION à l'utilisation du /tmp -> proposition de passer sur ${HOME}/dolibarr-build/18
Comme le process de création de release est long il nous semble important de ne plus utiliser le /tmp (qui est vidé lors de chaque reboot) mais plutôt un dossier pérenne comme par exemple ${HOME}/dolibarr-build/18
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 (le mieux est d'avoir le dépôt Git Dolibarr sur la remote origin et non en upstream) > git checkout 18.0 # mettre à jour la branche > git pull origin 18.0 # récupérer les tags de la branche origin afin d'avoir le tag de la dernière release > git fetch origin --tags # 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' | 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
}
Création de la release
Attention a bien avoir les git precommit configurés pour éviter les erreurs côté github lorsqu'on pousse le commit, voir Environment and development tools:
Il faut aller chercher le pre-commit de la branche "develop" :
git fetch develop:develop git checkout develop
Puis copier le fichier de pre-commit :
cp dev/setup/git/hooks/pre-commit .git/hooks/ chmod +x .git/hooks/pre-commit
Puis repasser sur la branche de la v18 :
git checkout 18.0
Note: dans le script de pre-commit un appel aux commandes phpcs et phpcbf sera fait vous devez donc avoir ces deux commandes disponibles sur votre système
apt install php-codesniffer
Commiter tous ces changements
# créer une branche locale > git checkout -b 18.0.7_lts # ajouter tous les changements > git add . # et les commiter > git commit -m "Prepare 18.0.7" (lance le script pre-commit automatiquement) # corriger les erreurs de pre-commit (ex : les mots-clés du changelog non anglicisés)
# puis faire la merge Request sur Dolibarr vers la branche "18.0" # pour ça, pousser le commit sur sa remote pour ne pas polluer le dépot, par exemple > git remote add myrepository git@github.com:GITHUBPATH/dolibarr.git # puis pousser sur ce dépot > git push myrepository 18.0.7_lts
Et attendre que la PR soit mergée pour continuer la suite et récupérer cette merge request sur la branche 18.0
Note: Il peut être plus facile de repartir du dépôt officiel à cette étape surtout si le merge a été modifié au passage
git clone https://github.com/Dolibarr/dolibarr.git --single-branch -b 18.0
Attention il faut avoir un fichier htdocs/conf/conf.php "opérationnel" sinon le makepack ne marchera pas (et l'erreur n'est pas très visible). Pour ça un fichier conf "basique" est proposé :
wget https://cap-rel.fr/dolibarr/dol-18-conf.txt -O dolibarr/htdocs/conf/conf.php
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="${HOME}/dolibarr-build/18/tmp/beta"; export DESTISTABLE="${HOME}/dolibarr-build/18/tmp/stable"; export GITREMOTENAME='origin';
#creer les dossiers de destination
> mkdir ${HOME}/dolibarr-build/18/tmp/{stable,beta} -p
# lancer la commande en utilisant le chemin complet, par exemple
> /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/dolibarr/build/..
Target directory (DESTI) : /home/votrelogin/dolibarr-build/18/tmp/stable
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 ${HOME}/dolibarr-build/18/tmp/stable
Press key to finish...
# le fichier est dans "${HOME}/dolibarr-build/18/tmp/stable/standard/dolibarr-18.0.7.tgz"
Voilà le fichier de la release 18.0.7 vient d'être crée dans le dossier “${HOME}/dolibarr-build/18/tmp/stable/standard/” : il faut alors le vérifier en le décompressant et en installant la version 18.0.7 de Dolibarr.
Une fois qu'on a testé la version LTS, on peut lancer la commande précédente avec l'option "0" pour créer l'ensemble des paquets.
Cette fois il faut s'assurer que tous les paquets ont bien été créés (sauf le build pour Windows) :
----- Summary -----
Checksum was generated
Package DEB built successfully in /tmp/stable
Package EXEDOLIWAMP not built (bad requirement).
Package RPM_FEDORA built successfully in /tmp/stable
Package RPM_GENERIC built successfully in /tmp/stable
Package RPM_MANDRIVA built successfully in /tmp/stable
Package RPM_OPENSUSE built successfully in /tmp/stable
Package TGZ built successfully in /tmp/stable
Package ZIP built successfully in /tmp/stable
Press key to finish...
On doit avoir le fichier "${HOME}/dolibarr-build/18/tmp/stable/signature/filelist-18.0.7.xml"
Publication de la release
Pour avoir le droit de publier les fichiers sur le serveur de l'asso puis sur le serveur sourceforge il faut demander la création de votre compte sur ces deux serveurs (niveau jedi-maint')
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
Entrer "98" pour publier sur le serveur de l'association
Lorsque le script a été exécuté avec succès :
Aller sur https://www.dolibarr.org/files/stable/signatures/ et voir si le fichier filelist-18.0.7.xml est bien présent.
Vérifier l'intégrité du fichier "filelist-18.0.7.xml
Vous pouvez revenir sur l'installation de Dolibarr localement et penser à aller sur la page de vérification de l'intégrité du fichier "filelist-18.0.7.xml" accessible depuis le menu "Accueil -> Outils d'administration -> Vérification de l'intégrité ..."
- lancer les 2 tests comme on a maitenant le fichier filelist-18.0.7.xml en local et sur le serveur de l'association Dolibarr
Envoyer vers le serveur sourceforge
Note: pensez bien à mettre votre clé ssh publique dans la configuration de votre compte sur sourceforge
#il faut un accès en écriture au dépot git dolibarr pour pouvoir pousser le tag qui sera utilisé via GITREMOTENAME #le remote origin est déjà configuré depuis le début de la documentation #git remote add origin git@github.com:Dolibarr/dolibarr.git
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.
GITREMOTENAME=origin DESTISFLOGIN='xxxxx,dolibarr' /var/www/html/dolibarr/build/makepack-dolibarr.pl
Entrer "99" pour publier sur sourceforge
Vérifier que la liste des fichiers publiés est bien complète (seul le fichier .exe peut être absent tant qu'une solution de build des .exe n'est pas de retour)
List of files to publish (BUILD=9) /home/votrelogin/dolibarr-build/18/tmp/stable/package_debian-ubuntu/dolibarr_18.0.7-4.debian.tar.gz (found) - 17991 - 2026-04-02 09:24:01 /home/votrelogin/dolibarr-build/18/tmp/stable/package_debian-ubuntu/dolibarr_18.0.7-4.dsc (found) - 862 - 2026-04-02 09:24:01 /home/votrelogin/dolibarr-build/18/tmp/stable/package_debian-ubuntu/dolibarr_18.0.7-4_all.deb (found) - 43848172 - 2026-04-02 09:26:51 /home/votrelogin/dolibarr-build/18/tmp/stable/package_debian-ubuntu/dolibarr_18.0.7-4_amd64.changes (found) - 1867 - 2026-04-02 09:26:53 /home/votrelogin/dolibarr-build/18/tmp/stable/package_debian-ubuntu/dolibarr_18.0.7.orig.tar.gz (found) - 73101059 - 2026-04-02 09:23:55 /home/votrelogin/dolibarr-build/18/tmp/stable/package_rpm_generic/dolibarr-18.0.7-0.4.noarch.rpm (found) - 70979957 - 2026-04-02 09:29:28 /home/votrelogin/dolibarr-build/18/tmp/stable/package_rpm_generic/dolibarr-18.0.7-0.4.src.rpm (found) - 72527018 - 2026-04-02 09:29:12 /home/votrelogin/dolibarr-build/18/tmp/stable/package_windows/DoliWamp-18.0.7.exe (not found) /home/votrelogin/dolibarr-build/18/tmp/stable/signatures/filelist-18.0.7.xml (found) - 1259567 - 2026-04-02 09:23:17 /home/votrelogin/dolibarr-build/18/tmp/stable/standard/dolibarr-18.0.7.tgz (found) - 73145878 - 2026-04-02 09:32:17 /home/votrelogin/dolibarr-build/18/tmp/stable/standard/dolibarr-18.0.7.zip (found) - 79310718 - 2026-04-02 09:33:10
Créer la release sur github
Pour créer la release sur github il suffit d'aller sur le tag, par exemple https://github.com/Dolibarr/dolibarr/releases/tag/18.0.7 (nous avons appris à faire une release lors de la 18.0.7) et là vous pouvez voir en haut à droite un bouton "Create release from tag" ... tout simplement !
Mettre "18.0.7" dans le titre Choisir 18.0.6 dans la liste déroulante du tag précédent et cliquer sur le bouton pour générer le changelog automatiquement. Patienter le temps que le texte se génère.
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.