LTS DEV NOTES: Difference between revisions
Eric.seigne (talk | contribs) (create lts notes for maint) |
Eric.seigne (talk | contribs) (notes eric) |
||
| Line 1: | Line 1: | ||
= 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 | |||
notes eric / à améliorer | |||
git log 18.0.6.. | grep -e 'FIX\|NEW\|SEC' >> /tmp/log1 | |||
git log 18.0.6.. | grep '#' | grep -v Merge >> /tmp/log1 | |||
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 | |||
} | |||
- [x] 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 | |||
# créer une nouvelle branche pour la release | |||
> git checkout -b 18.0.7_release | |||
# 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 [www.dolibarr.org](<nowiki>http://www.dolibarr.org/</nowiki>)). | |||
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. | |||
question ? | |||
erics poser un tag 18.0.7 apres que les paquets seront validés comme ça on peut encore faire quelques commits correctifs et validation git tag 18.0.7 dès que les zip sont publiés | |||
Pour publier sur le serveur de l'asso, tu dois ajouter la variable d'environnement DESTIASSOLOGIN=eseigne | |||
creation du dossier standard ? | |||
et erreur finale | |||
Publish file /tmp/release//standard/dolibarr-18.0.7.tgz to eseigne@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard | |||
rsync -s -e 'ssh' --recursive /tmp/emptydir/ "eseigne@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard" | |||
rsync -s -e 'ssh' "/tmp/release//standard/dolibarr-18.0.7.tgz" "eseigne@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard" | |||
rsync: [receiver] mkstemp "/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard/.dolibarr-18.0.7.tgz.767xWV" failed: Permission denied (13) | |||
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7] | |||
== 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 a un truc 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 | |||
== 17/04/2025 - tentative upload sourceforge == | |||
Note: je travaille en ramdisk (question io / perfs) | |||
puis en fin de séance, copie de toute l'archive sur le hdd /media/erics/stockage/dolibarr-releases/ | |||
pour reprendre le travail où on en était le coup d'avant: | |||
cd /mnt/ramdisk | |||
cp -a /media/erics/stockage/dolibarr-releases/dolibarr/ . | |||
et ensuite pour le script makepack.pl, ne pas utiliser le /media/erics/nvdata/dev/dolibarr/dolibarr-git/ qui n'est pas “à jour” (le changelog est toujours celui de la 18.0.6) | |||
il faut utiliser le /media/erics/stockage/dolibarr-releases/git/dolibarr/build/makepack-dolibarr.pl qui est donc la copie de travail de notre boulot de packager | |||
les modifications “locales” sont a) le Changelog qui fait donc référence à 18.0.7 | |||
(changelog long) | |||
b) le htdocs/filefunc.inc.php | |||
if (!defined('DOL_APPLICATION_TITLE')) { | |||
- define('DOL_APPLICATION_TITLE', 'Dolibarr'); | |||
+ define('DOL_APPLICATION_TITLE', 'Dolibarr LTS'); | |||
} | |||
if (!defined('DOL_VERSION')) { | |||
- define('DOL_VERSION', '18.0.6'); // 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 | |||
} | |||
Et ensuite pour lancer le “99” : | |||
DESTIASSOLOGIN='eseigne' DESTISFLOGIN='caprel,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 | |||
<br /> | <br /> | ||
Revision as of 07:19, 2 May 2025
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 notes eric / à améliorer git log 18.0.6.. | grep -e 'FIX\|NEW\|SEC' >> /tmp/log1 git log 18.0.6.. | grep '#' | grep -v Merge >> /tmp/log1
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
}
- [x] 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
# créer une nouvelle branche pour la release > git checkout -b 18.0.7_release # 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 [www.dolibarr.org](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.
question ?
erics poser un tag 18.0.7 apres que les paquets seront validés comme ça on peut encore faire quelques commits correctifs et validation git tag 18.0.7 dès que les zip sont publiés
Pour publier sur le serveur de l'asso, tu dois ajouter la variable d'environnement DESTIASSOLOGIN=eseigne
creation du dossier standard ?
et erreur finale
Publish file /tmp/release//standard/dolibarr-18.0.7.tgz to eseigne@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard rsync -s -e 'ssh' --recursive /tmp/emptydir/ "eseigne@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard" rsync -s -e 'ssh' "/tmp/release//standard/dolibarr-18.0.7.tgz" "eseigne@vmprod1.dolibarr.org:/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard" rsync: [receiver] mkstemp "/home/dolibarr/asso.dolibarr.org/dolibarr_documents/website/www.dolibarr.org/files/stable/standard/.dolibarr-18.0.7.tgz.767xWV" failed: Permission denied (13) rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1338) [sender=3.2.7]
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 a un truc 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
17/04/2025 - tentative upload sourceforge
Note: je travaille en ramdisk (question io / perfs)
puis en fin de séance, copie de toute l'archive sur le hdd /media/erics/stockage/dolibarr-releases/
pour reprendre le travail où on en était le coup d'avant:
cd /mnt/ramdisk cp -a /media/erics/stockage/dolibarr-releases/dolibarr/ .
et ensuite pour le script makepack.pl, ne pas utiliser le /media/erics/nvdata/dev/dolibarr/dolibarr-git/ qui n'est pas “à jour” (le changelog est toujours celui de la 18.0.6)
il faut utiliser le /media/erics/stockage/dolibarr-releases/git/dolibarr/build/makepack-dolibarr.pl qui est donc la copie de travail de notre boulot de packager
les modifications “locales” sont a) le Changelog qui fait donc référence à 18.0.7
(changelog long)
b) le htdocs/filefunc.inc.php
if (!defined('DOL_APPLICATION_TITLE')) {
- define('DOL_APPLICATION_TITLE', 'Dolibarr');
+ define('DOL_APPLICATION_TITLE', 'Dolibarr LTS');
}
if (!defined('DOL_VERSION')) {
- define('DOL_VERSION', '18.0.6'); // 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
}
Et ensuite pour lancer le “99” :
DESTIASSOLOGIN='eseigne' DESTISFLOGIN='caprel,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