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.
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:
cp dev/setup/git/hooks/pre-commit .git/hooks/ chmod +x .git/hooks/pre-commit
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"
# 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)
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/beta'; export DESTISTABLE='/tmp/stable'; export GITREMOTENAME='origin';
#creer les dossiers de destination
> mkdir /tmp/{stable,beta}
# 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/dolibarr/build/..
Target directory (DESTI) : /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 /tmp/stable
Press key to finish...
# le fichier est dans "/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 “/tmp/stable/standard/” : il faut alors le vérifier en le décompressant et en installant la version 18.0.7 de Dolibarr.
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
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 git remote add dolibarr 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=dolibarr DESTISFLOGIN='xxxxx,dolibarr' /var/www/html/dolibarr/build/makepack-dolibarr.pl
Entrer "99" pour publier sur sourceforge
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.8 (nous avons appris à faire une release lors de la 18.0.8) et là vous pouvez voir en haut à droite un bouton "Create release from tag" ... tout simplement !
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.