LTS DEV NOTES

From Dolibarr ERP CRM Wiki
Revision as of 07:34, 2 May 2025 by Eric.seigne (talk | contribs) (grep)
Jump to navigation Jump to search

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
# ici on tape 2 pour ne générer que le TGZ
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): 2

# 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

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

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.

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.

Note sur la création des packages

Vu la quantité d'io que ça génère j'utilise un ramdisk pour tout le process de build des paquets.

Mais rpmbuild semble avoir un path codé en dur qui revient dans le home donc création d'un symlink vers le ramdisk:

cd /mnt/ramdisk

mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
mkdir -p dolibarr/{beta,tmp,stable}

cd ~

rm -rf rpmbuild
ln -s /mnt/ramdisk/rpmbuild
export DESTISFLOGIN=eseigne,dolibarr
export DESTIASSOLOGIN=eseigne
RPMDIR='/mnt/ramdisk/rpmbuild' DESTIBETARC='/mnt/ramdisk/dolibarr/beta' TEMP='/mnt/ramdisk/dolibarr/tmp' DESTISTABLE='/mnt/ramdisk/dolibarr/stable' /media/erics/nvdata/dev/dolibarr/dolibarr-git/build/makepack-dolibarr.pl

Tout à fait à la fin pour lancer le mode 99!:

DESTIASSOLOGIN='xxxxxxx' DESTISFLOGIN='xxxxx,dolibarr' RPMDIR='/mnt/ramdisk/dolibarr/rpmbuild' DESTIBETARC='/mnt/ramdisk/dolibarr/beta' TEMP='/mnt/ramdisk/dolibarr/tmp' DESTISTABLE='/mnt/ramdisk/dolibarr/stable' /media/erics/nvdata/dev/dolibarr/dolibarr-git/build/makepack-dolibarr.pl