erplibre/doc/RELEASE.base.md

9 KiB

Release

A guide on how to generate a release.

Publication

Un guide sur la génération d'une publication.

Clean environment before generating new release

Before the cleaning, check if existing file isn't committed, not pushed or in stash.

Nettoyer l'environnement avant de générer une nouvelle publication

Avant le nettoyage, vérifiez si des fichiers existants ne sont pas commités, poussés ou dans le stash.

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

This will erase everything in addons. Useful before creating docker, manifest and do a release.

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

./script/git/clean_repo_manifest.sh

And update all from dev to merge into prod.

Test all supported Odoo version :

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

Tester toutes les versions Odoo supportées :

make install_odoo_all_version

Validate environment

Valider l'environnement

make test_full_fast

Format code

To format all code, run:

Formater le code

Pour formater tout le code, exécutez :

make format

Update documentations

To generate Markdown in directory ./doc, run:

Mettre à jour les documentations

Pour générer le Markdown dans le répertoire ./doc, exécutez :

make doc_markdown

Test docker generate

To generate a docker, run:

Tester la génération docker

Pour générer un docker, exécutez :

make docker_build_odoo_18

Rename old version to new version

Search old version, like :

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

Replace if need it to new version.

Update file ./pyproject.toml in [tool.poetry], line version =.

Remplacer si nécessaire par la nouvelle version.

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

Test production Ubuntu environment

Follow instructions in PRODUCTION.md.

Test installation with code generator Geomap:

Tester l'environnement de production Ubuntu

Suivre les instructions dans PRODUCTION.md.

Tester l'installation avec le générateur de code Geomap :

make addons_install_code_generator_full

Update image_db

To generate database images in directory ./image_db, run:

Mettre à jour image_db

Pour générer les images de base de données dans le répertoire ./image_db, exécutez :

make db_clean_cache
make config_gen_all
make image_db_create_all_parallel

To test it, you need to clean caches and install it:

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

Generate new prod and release

Generate production manifest and freeze all repos versions.

Générer la nouvelle production et publication

Générer le manifeste de production et geler toutes les versions des dépôts.

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

Update ERPLIBRE_VERSION variable in env_var.sh, Dockerfile.prod and docker-compose.

Generate poetry and keep only missing dependencies, remove updates.

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

Générer poetry et garder uniquement les dépendances manquantes, retirer les mises à jour.

./script/poetry/poetry_update.py

When running script ./script/poetry/poetry_update.py, note manually inserted dependencies, stash all changes and add it manually.

Lors de l'exécution du script ./script/poetry/poetry_update.py, noter les dépendances insérées manuellement, stasher tous les changements et les ajouter manuellement.

poetry add DEPENDENCY

Understand differences from last release:

Comprendre les différences depuis la dernière 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"

Simplification tools:

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

Update file CHANGELOG.md and create a section with new version, use next command to read all changes.

Create a branch release/#.#.# and create a pull request to branch master with your commit:

Mettre à jour le fichier CHANGELOG.md et créer une section avec la nouvelle version, utiliser la commande suivante pour lire tous les changements.

Créer une branche release/#.#.# et créer une demande de fusion vers la branche master avec votre commit :

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

Review by your peers, test the docker file and merge to master.

Faire réviser par vos pairs, tester le fichier docker et fusionner dans master.

git checkout master
git merge --no-ff RELEASE_BRANCH

Add comment Release v#.#.#.

Ajouter le commentaire Release v#.#.#.

Create tag

Add a tag on the commit in branch master with your release. When adding tag, be sure to update default.xml

Créer 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 à 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

Generate and push docker

Important to generate container after push git tags, otherwise the git version will be wrong.

When building your docker with script

make docker_build_release

List your docker version

docker images

You need to push your docker image and update your tag, like 1.0.1:

docker push technolibre/erplibre:VERSION

Générer et pousser le docker

Important de générer le conteneur après avoir poussé 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 à jour votre tag, comme 1.0.1 :

docker push technolibre/erplibre:VERSION

Do a release on github

Visit https://github.com/ERPLibre/ERPLibre/releases/new and create a release named v#.#.# and copy information from CHANGELOG.md.

Faire une publication sur github

Visiter https://github.com/ERPLibre/ERPLibre/releases/new et créer une publication nommée v#.#.# et copier les informations depuis CHANGELOG.md.

TIPS

Compare repo differences with another ERPLibre project

To generate a list of differences between repo git commit

ASTUCES

Comparer les différences de dépôts avec un autre projet ERPLibre

Pour générer une liste de différences entre les commits git des dépôts

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

Semantic versioning

Versionnage sémantique

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