417
edits
Eric.seigne (talk | contribs) |
Eric.seigne (talk | contribs) (clone avec les droits pour pousser un tag) |
||
| (37 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
=Notes - Mainteneur Dolibarr 18 LTS= | =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 [https://wiki.dolibarr.org/index.php/Projet_Dolibarr#D.C3.A9veloppeur_grade_Jedi_.28Mainteneur_et_Release_manager_des_versions_de_maintenance.29 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== | ==Préparation== | ||
Pour réaliser une release sur la branche de maintenance, on peut s'inspirer de la documentation sur Dolibarr : | Pour réaliser une release sur la branche de maintenance, on peut s'inspirer de la documentation sur Dolibarr<span> </span>: | ||
https://github.com/Dolibarr/dolibarr/blob/develop/dev/build/makepack-howto.md | 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<span> </span>: | |||
> 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==== | ====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) : | 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)<span> </span>: | ||
====Préparation du Changelog et de la version de la release==== | ====Préparation du Changelog et de la version de la release==== | ||
| Line 14: | Line 33: | ||
> cd /var/www/html/dolibarr | > cd /var/www/html/dolibarr | ||
# se placer sur la branche 18.0 ( | # 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 | > git checkout 18.0 | ||
# mettre à jour la branche | # mettre à jour la branche | ||
> git pull | > 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 | > git fetch origin --tags | ||
# création d'un fichier temporaire pour préparer le Changelog avec les FIX, NEW et SEC | # création d'un fichier temporaire pour préparer le Changelog avec les FIX, NEW et SEC | ||
| Line 30: | Line 46: | ||
# ici on a ajouté les PR concernant les correctifs de sécurité en ajoutant le mot-clé 'SEC' | # 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" | # 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' | > git log 18.0.6.. | grep -e 'FIX\|NEW\|SEC' | sed 's/FIXED:/FIX:/g' | sed 's/FIXED<span> </span>:/FIX:/g' | sed 's/FIX<span> </span>:/FIX:/g' | sed 's/FIX /FIX: /g' | sed 's/NEW<span> </span>:/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 : | 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<span> </span>: | ||
***** ChangeLog for 18.0.7 compared to 18.0.6 ***** | ***** ChangeLog for 18.0.7 compared to 18.0.6 ***** | ||
121 files changed, 1007 insertions(+), 371 deletions(-) | 121 files changed, 1007 insertions(+), 371 deletions(-) | ||
On reformate les lignes des changements si besoin. | On reformate les lignes des changements si besoin. | ||
Pour connaître le nombre de fichiers changés on peut utiliser la commandes : | Pour connaître le nombre de fichiers changés on peut utiliser la commandes<span> </span>: | ||
> git diff --shortstat 18.0.6 | > git diff --shortstat 18.0.6 | ||
Mettre à jour le numéro de version avec 18.0.7 dans le fichier “htdocs/filefunc.inc.php” | Mettre à jour le numéro de version avec 18.0.7 dans le fichier “htdocs/filefunc.inc.php” | ||
| Line 43: | Line 59: | ||
define('DOL_VERSION', '18.0.7'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c | 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"<span> </span>: | |||
git fetch develop:develop | |||
git checkout develop | |||
Puis copier le fichier de pre-commit<span> </span>: | |||
cp dev/setup/git/hooks/pre-commit .git/hooks/ | |||
chmod +x .git/hooks/pre-commit | |||
Puis repasser sur la branche de la v18<span> </span>: | |||
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 | Commiter tous ces changements | ||
# créer une branche locale | |||
> git checkout -b 18.0.7_lts | |||
# ajouter tous les changements | # ajouter tous les changements | ||
> git add . | > git add . | ||
# et les commiter | # et les commiter | ||
> git commit -m "Prepare 18.0.7" | > git commit -m "Prepare 18.0.7" (lance le script pre-commit automatiquement) | ||
# corriger les erreurs de pre-commit (ex<span> </span>: les mots-clés du changelog non anglicisés) | |||
<br /> | |||
# 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 -- attention à faire un clone avec un compte qui a le droit de pousser un tag | |||
git clone git@github.com:/Dolibarr/dolibarr.git --single-branch -b 18.0 | |||
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é<span> </span>: | |||
wget <nowiki>https://cap-rel.fr/dolibarr/dol-18-conf.txt</nowiki> -O dolibarr/htdocs/conf/conf.php | |||
Lancer la commande “makepack-dolibarr.pl” (utiliser le chemin complet) | Lancer la commande “makepack-dolibarr.pl” (utiliser le chemin complet) | ||
# exporter les variables d'environnement (sous Linux) | # 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 | # si vous lancer la commande 'makepack-dolibarr.pl': celle-ci affichera une aide pour exporter ces variables sous Linux ou Windows | ||
> export DESTISTABLE= | > export DESTIBETARC="${HOME}/dolibarr-build/18/tmp/beta"; export DESTISTABLE="${HOME}/dolibarr-build/18/tmp/stable"; export GITREMOTENAME='origin'; | ||
#creer les dossiers de destination | #creer les dossiers de destination | ||
> mkdir /tmp/{stable,beta} | > mkdir ${HOME}/dolibarr-build/18/tmp/{stable,beta} -p | ||
# lancer la commande en utilisant le chemin complet | # lancer la commande en utilisant le chemin complet, par exemple | ||
> /var/www/html/dolibarr/build/makepack-dolibarr.pl | > /var/www/html/dolibarr/build/makepack-dolibarr.pl | ||
| Line 72: | Line 118: | ||
Building/publishing package name: dolibarr | Building/publishing package name: dolibarr | ||
Building/publishing package version: 18.0.7 | Building/publishing package version: 18.0.7 | ||
Source directory (SOURCE): /var/www/html | Source directory (SOURCE): /var/www/html/dolibarr/build/.. | ||
Target directory (DESTI) : /tmp | Target directory (DESTI)<span> </span>: /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) | 0 - ALL (1..10) (Need ISCC.exe,rpmbuild,xz,flatpack,tar,rpmbuild,dpkg dpatch,rpmbuild,7z,rpmbuild,tar) | ||
1 - Generate check file | 1 - Generate check file | ||
| Line 94: | Line 140: | ||
----- Summary ----- | ----- Summary ----- | ||
Package TGZ built successfully in /tmp | Package TGZ built successfully in ${HOME}/dolibarr-build/18/tmp/stable | ||
Press key to finish... | Press key to finish... | ||
# le fichier est dans "/tmp/dolibarr-18.0.7.tgz" | # 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 “/ | Voilà le fichier de la release 18.0.7 vient d'être crée dans le dossier “${HOME}/dolibarr-build/18/tmp/stable/standard/”<span> </span>: 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) <span> </span>:<br /><syntaxhighlight lang="console"> | |||
----- 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... | |||
</syntaxhighlight> | |||
On doit avoir le fichier "${HOME}/dolibarr-build/18/tmp/stable/signature/filelist-18.0.7.xml" | |||
<br /> | |||
====Publication de la release==== | ====Publication de la release==== | ||
| Line 108: | Line 177: | ||
DESTIASSOLOGIN='xxxxxxx' /var/www/html/dolibarr/build/makepack-dolibarr.pl | DESTIASSOLOGIN='xxxxxxx' /var/www/html/dolibarr/build/makepack-dolibarr.pl | ||
Entrer "98" pour publier sur le serveur de l'association | Entrer "98" pour publier sur le serveur de l'association | ||
Lorsque le script a été exécuté avec succès<span> </span>: | |||
'''Aller sur <nowiki>https://www.dolibarr.org/files/stable/signatures/</nowiki> 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é ...'''" | |||
<br /> | |||
[[File:Integrity-Check-Filelist.png|center|thumb]] | |||
<br /> | |||
*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 | |||
<br /> | |||
=====Envoyer vers le serveur sourceforge===== | =====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.''' | 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 | GITREMOTENAME=origin DESTISFLOGIN='xxxxx,dolibarr' /var/www/html/dolibarr/build/makepack-dolibarr.pl | ||
Entrer "99" pour publier sur sourceforge | 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 | |||
<br /> | |||
=====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. | |||
[[File:Github - release 18.0.9.png|thumb|border|left]] | |||
<br /> | |||
<br /> | |||
[[File:Github - release.png|border|center|thumb]] | |||
=====Annoncer la nouvelle version===== | =====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. | 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. | ||
<br /> | |||
edits