Added 30 .base.md files using the mmg (Multilingual Markdown Generator) format to automatically generate English (.md) and French (.fr.md) versions of all project documentation. Updated conf/make.documentation.Makefile to process all .base.md files via `make doc_markdown`.
9 KiB
Release
A guide on how to generate a release.
Publication
Un guide sur la generation 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 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
This will erase everything in addons. Useful before creating docker, manifest and do a release.
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
And update all from dev to merge into prod.
Test all supported Odoo version :
Et mettre a jour tout depuis dev pour fusionner dans prod.
Tester toutes les versions Odoo supportees :
make install_odoo_all_version
Validate environment
- Check if each manifest version like manifest/default.dev.odoo16.0.xml is ready for production.
- Run test :
Valider l'environnement
- Verifier si chaque version de manifeste comme manifest/default.dev.odoo16.0.xml est prete pour la production.
- Executer les tests :
make test_full_fast
Format code
To format all code, run:
Formater le code
Pour formater tout le code, executez :
make format
Update documentations
To generate Markdown in directory ./doc, run:
Mettre a jour les documentations
Pour generer le Markdown dans le repertoire ./doc, executez :
make doc_markdown
Test docker generate
To generate a docker, run:
Tester la generation docker
Pour generer un docker, executez :
make docker_build_odoo_16
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 necessaire par la nouvelle version.
Mettre a 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 generateur de code Geomap :
make addons_install_code_generator_full
Update image_db
To generate database images in directory ./image_db, run:
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
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.
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
Update ERPLIBRE_VERSION variable in env_var.sh, Dockerfile.prod and docker-compose.
Generate poetry and keep only missing dependencies, remove updates.
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
When running script ./script/poetry/poetry_update.py, note manually inserted dependencies, stash all changes and add it manually.
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
Understand differences from last release:
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"
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 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#.#.#"
Review by your peers, test the docker file and merge to master.
Faire reviser 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
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
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
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
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 creer une publication nommee 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 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
Semantic versioning
Versionnage semantique
<valid semver> ::= <version core> "-" <pre-release> "+" <build>