erplibre/doc/RELEASE.fr.md

5 KiB

Publication

Un guide sur la generation d'une publication.

Nettoyer l'environnement avant de generer une nouvelle publication

Avant le nettoyage, verifiez si des fichiers existants ne sont pas commites, pousses ou dans le stash.

.venv.erplibre/bin/repo forall -pc "git stash list"
./script/git/git_show_code_diff_repo_manifest.py

Ceci effacera tout dans les addons. Utile avant de creer un docker, un manifeste et de faire une publication.

./script/git/clean_repo_manifest.sh

Et mettre a jour tout depuis dev pour fusionner dans prod.

Tester toutes les versions Odoo supportees :

make install_odoo_all_version

Valider l'environnement

make test_full_fast

Formater le code

Pour formater tout le code, executez :

make format

Mettre a jour les documentations

Pour generer le Markdown dans le repertoire ./doc, executez :

make doc_markdown

Tester la generation docker

Pour generer un docker, executez :

make docker_build_odoo_18

Renommer l'ancienne version vers la nouvelle version

Rechercher l'ancienne version, comme :

grep --color=always --exclude-dir={.repo,.venv,.git} --exclude="*.svg" -nri v1.6.0

Remplacer si necessaire par la nouvelle version.

Mettre a jour le fichier ./pyproject.toml dans [tool.poetry], ligne version =.

Tester l'environnement de production Ubuntu

Suivre les instructions dans PRODUCTION.md.

Tester l'installation avec le generateur de code Geomap :

make addons_install_code_generator_full

Mettre a jour image_db

Pour generer les images de base de donnees dans le repertoire ./image_db, executez :

make db_clean_cache
make config_gen_all
make image_db_create_all_parallel

Pour le tester, vous devez nettoyer les caches et l'installer :

./script/database/db_restore.py --clean_cache
./script/database/db_restore.py --database test --image erplibre_website

Generer la nouvelle production et publication

Generer le manifeste de production et geler toutes les versions des depots.

.venv.erplibre/bin/repo manifest -r -o ./default.xml

Mettre a jour la variable ERPLIBRE_VERSION dans env_var.sh, Dockerfile.prod et docker-compose.

Generer poetry et garder uniquement les dependances manquantes, retirer les mises a jour.

./script/poetry/poetry_update.py

Lors de l'execution du script ./script/poetry/poetry_update.py, noter les dependances inserees manuellement, stasher tous les changements et les ajouter manuellement.

poetry add DEPENDENCY

Comprendre les differences depuis la derniere publication :

# Get all differences between the last tag and HEAD, to update the CHANGELOG.md
# ERPLibre
git diff v#.#.#..HEAD

# All repo
.venv.erplibre/bin/repo forall -pc "git diff ERPLibre/v#.#.#..HEAD"

Outils de simplification :

# Show all divergence repository with production
make repo_diff_manifest_production
# Short version with statistics
make repo_diff_stat_from_last_version
# Long version
make repo_diff_from_last_version

Mettre a jour le fichier CHANGELOG.md et creer une section avec la nouvelle version, utiliser la commande suivante pour lire tous les changements.

Creer une branche release/#.#.# et creer une demande de fusion vers la branche master avec votre commit :

git commit -am "Release v#.#.#"

Faire reviser par vos pairs, tester le fichier docker et fusionner dans master.

git checkout master
git merge --no-ff RELEASE_BRANCH

Ajouter le commentaire Release v#.#.#.

Creer le tag

Ajouter un tag sur le commit dans la branche master avec votre publication. Lors de l'ajout du tag, assurez-vous de mettre a jour default.xml

git tag v#.#.#
# Push your tags
git push --tags
# Add tags for all repo
.venv.erplibre/bin/repo forall -pc "git tag ERPLibre/v#.#.#"
make tag_push_all

Generer et pousser le docker

Important de generer le conteneur apres avoir pousse les tags git, sinon la version git sera incorrecte.

Lors de la construction de votre docker avec le script

make docker_build_release

Lister votre version docker

docker images

Vous devez pousser votre image docker et mettre a jour votre tag, comme 1.0.1 :

docker push technolibre/erplibre:VERSION

Faire une publication sur github

Visiter https://github.com/ERPLibre/ERPLibre/releases/new et creer une publication nommee v#.#.# et copier les informations depuis CHANGELOG.md.

ASTUCES

Comparer les differences de depots avec un autre projet ERPLibre

Pour generer une liste de differences entre les commits git des depots

./script/git/git_change_remote.py --sync_to /path/to/directory

Versionnage semantique

<valid semver> ::= <version core> "-" <pre-release> "+" <build>