erplibre/doc/RELEASE.fr.md

209 lines
5.1 KiB
Markdown
Raw Normal View History

# Publication
2026-03-07 00:29:49 -05:00
Un guide sur la génération d'une publication.
2026-03-07 00:29:49 -05:00
## Nettoyer l'environnement avant de générer une nouvelle publication
2026-03-07 00:29:49 -05:00
Avant le nettoyage, vérifiez si des fichiers existants ne sont pas commités, poussés ou dans le stash.
```bash
.venv.erplibre/bin/repo forall -pc "git stash list"
./script/git/git_show_code_diff_repo_manifest.py
```
2026-03-07 00:29:49 -05:00
Ceci effacera tout dans les addons. Utile avant de créer un docker, un manifeste et de faire une publication.
```bash
./script/git/clean_repo_manifest.sh
```
2026-03-07 00:29:49 -05:00
Et mettre à jour tout depuis dev pour fusionner dans prod.
2026-03-07 00:29:49 -05:00
Tester toutes les versions Odoo supportées :
```bash
make install_odoo_all_version
```
## Valider l'environnement
2026-03-07 00:29:49 -05:00
- Vérifier si chaque version de manifeste comme [manifest/default.dev.odoo16.0.xml](../manifest/default.dev.odoo16.0.xml) est prête pour la production.
- Exécuter les tests :
```bash
make test_full_fast
```
### Formater le code
2026-03-07 00:29:49 -05:00
Pour formater tout le code, exécutez :
```bash
make format
```
2026-03-07 00:29:49 -05:00
### Mettre à jour les documentations
2026-03-07 00:29:49 -05:00
Pour générer le Markdown dans le répertoire `./doc`, exécutez :
```bash
make doc_markdown
```
2026-03-07 00:29:49 -05:00
### Tester la génération docker
2026-03-07 00:29:49 -05:00
Pour générer un docker, exécutez :
```bash
2026-02-16 10:30:53 -05:00
make docker_build_odoo_18
```
### Renommer l'ancienne version vers la nouvelle version
Rechercher l'ancienne version, comme :
```bash
[ADD] release : publier 1.8.0, section de changelog et version déclarée Les 39 puces du non-publié décrivent du travail fini qu'aucun numéro ne permettait de citer. La section 1.8.0 les porte, avec la note de migration que réclament le choix de l'interpréteur Python et le retrait d'Ubuntu 20.04 et 22.04. La version déclarée suit, comme le veut doc/RELEASE.base.md : le fichier semver que lit env_var.sh, les huit pyproject, npm, CLAUDE.md et la note des versions supportées. La ligne de contracts/compatibility.json reste en 1.7.0, elle atteste un appariement mobile éprouvé et non la version courante. Le commentaire de todo.py ne nomme plus de version, celle du dépôt étant marquée « default » dans le fichier des versions supportées. Vérifié : ERPLIBRE_VERSION=1.8.0, parité 17/8/10/2/2, tests de version verts. --- EN --- The unreleased list's 39 entries describe finished work no number could cite. The 1.8.0 section carries them, with the migration note that choosing the Python interpreter and dropping Ubuntu 20.04 and 22.04 call for. The declared version follows, as doc/RELEASE.base.md wants: the semver file env_var.sh reads, the eight pyproject files, npm, CLAUDE.md and the supported-version note. The contracts/compatibility.json row stays at 1.7.0, attesting a tested mobile pairing and not the current version. The todo.py comment names no version any more, the repository's own being marked « default » in the supported-version file. Checked: ERPLIBRE_VERSION=1.8.0, 17/8/10/2/2 parity, version tests green. Assisted-by: Claude Opus 5
2026-09-04 05:57:20 -04:00
grep --color=always --exclude-dir={.repo,.venv,.git} --exclude="*.svg" -nri v1.8.0
```
2026-03-07 00:29:49 -05:00
Remplacer si nécessaire par la nouvelle version.
2026-03-07 00:29:49 -05:00
Mettre à jour le fichier `./pyproject.toml` dans [tool.poetry], ligne `version =`.
### Tester l'environnement de production Ubuntu
Suivre les instructions dans [PRODUCTION.md](./PRODUCTION.md).
2026-03-07 00:29:49 -05:00
Tester l'installation avec le générateur de code Geomap :
```bash
make addons_install_code_generator_full
```
2026-03-07 00:29:49 -05:00
### Mettre à jour image_db
2026-03-07 00:29:49 -05:00
Pour générer les images de base de données dans le répertoire `./image_db`, exécutez :
```bash
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 :
```bash
./script/database/db_restore.py --clean_cache
./script/database/db_restore.py --database test --image erplibre_website
```
2026-03-07 00:29:49 -05:00
## Générer la nouvelle production et publication
2026-03-07 00:29:49 -05:00
Générer le manifeste de production et geler toutes les versions des dépôts.
```bash
.venv.erplibre/bin/repo manifest -r -o ./default.xml
```
2026-03-07 00:29:49 -05:00
Mettre à jour la variable ERPLIBRE_VERSION dans [env_var.sh](../env_var.sh), [Dockerfile.prod](../docker/Dockerfile.prod.pkg)
et [docker-compose](../docker-compose.yml).
2026-03-07 00:29:49 -05:00
Générer [poetry](./POETRY.md) et garder uniquement les dépendances manquantes, retirer les mises à jour.
```bash
./script/poetry/poetry_update.py
```
2026-03-07 00:29:49 -05:00
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.
```bash
poetry add DEPENDENCY
```
2026-03-07 00:29:49 -05:00
Comprendre les différences depuis la dernière publication :
```bash
# 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 :
```bash
# 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
```
2026-03-07 00:29:49 -05:00
Mettre à jour le fichier [CHANGELOG.md](../CHANGELOG.md) et créer une section avec la nouvelle version, utiliser la commande suivante pour lire tous les changements.
2026-03-07 00:29:49 -05:00
Créer une branche release/#.#.# et créer une demande de fusion vers la branche master avec votre commit :
```bash
git commit -am "Release v#.#.#"
```
2026-03-07 00:29:49 -05:00
Faire réviser par vos pairs, tester le fichier docker et **fusionner dans master**.
```bash
git checkout master
git merge --no-ff RELEASE_BRANCH
```
Ajouter le commentaire `Release v#.#.#`.
2026-03-07 00:29:49 -05:00
## Créer le tag
2026-03-07 00:29:49 -05:00
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
```bash
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
```
2026-03-07 00:29:49 -05:00
## Générer et pousser le docker
2026-03-07 00:29:49 -05:00
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
2026-03-07 00:29:49 -05:00
Vous devez pousser votre image docker et mettre à jour votre tag, comme 1.0.1 :
> docker push technolibre/erplibre:VERSION
## Faire une publication sur github
2026-03-07 00:29:49 -05:00
Visiter `https://github.com/ERPLibre/ERPLibre/releases/new` et créer une publication nommée `v#.#.#` et copier les informations depuis
CHANGELOG.md.
# ASTUCES
2026-03-07 00:29:49 -05:00
## Comparer les différences de dépôts avec un autre projet ERPLibre
2026-03-07 00:29:49 -05:00
Pour générer une liste de différences entre les commits git des dépôts
```bash
./script/git/git_change_remote.py --sync_to /path/to/directory
```
2026-03-07 00:29:49 -05:00
## Versionnage sémantique
```
<valid semver> ::= <version core> "-" <pre-release> "+" <build>
```