erplibre/CHANGELOG.base.md

1452 lines
63 KiB
Markdown
Raw Normal View History

<!---------------------------->
<!-- multilingual suffix: en, fr -->
<!-- no suffix: en -->
<!---------------------------->
<!-- [en] -->
# Changelog
<!-- [fr] -->
# Journal des modifications
<!-- [en] -->
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com). This project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
<!-- [fr] -->
Tous les changements notables de ce projet seront documentés dans ce fichier.
Le format est basé sur [Keep a Changelog](https://keepachangelog.com). Ce projet adhère
au [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
<!-- [common] -->
## [Unreleased]
<!-- [en] -->
**Migration notes**
Recreating the virtual environment, use installation guide from tool `make`.
<!-- [fr] -->
**Notes de migration**
Recréer l'environnement virtuel, utiliser le guide d'installation depuis l'outil `make`.
<!-- [en] -->
## Added
<!-- [fr] -->
## Ajouté
<!-- [en] -->
- Support Odoo migration database and module with TODO
- Support multi version odoo switch on same workspace
- Script for hardening the installation
- Support Odoo versions 12.0 to 18.0
- Separate ERPLibre python installation from Odoo python with .venv.erplibre and .venv.odoo18
- Implement auto-installation with TODO.py
- TODO show documentation, download database, help with code formatting
- Performance script to mesure request per second
- Support Mainframe architecture 390x
- Deployment with Cloudflare and Nginx
- Support Apache configuration like Nginx
- Support RobotLibre code generator
- Support ERPLibre DevOps, automation procedure about DevOps
- ERPLibre Home Mobile Application, use TODO to compile, deploy it and personalize it
- Support Selenium grid from selenium_lib.py
- Add addons OnlyOffice, Cetmix, OCA automation, OCA shopfloor
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Deploy ERPLibre VMs with QEMU/KVM from cloud images (Ubuntu, Debian, Fedora, AlmaLinux, Rocky Linux, openSUSE Tumbleweed, Arch) on amd64, arm64 and s390x, with a menu to list, test, resize, delete and clean up
- Graphical VMs: a server / desktop choice offering GNOME or Cinnamon (the Linux Mint desktop), with remote access through xrdp — TigerVNC on Arch
2026-08-10 03:10:50 -04:00
- Textual interfaces: install dashboard, VM deployment form, migration resume
screen; Textual is installed on demand
- Navigation telemetry for TODO, as a tree, a kanban or a list
- Migration tools for the website copy-on-write views: predict, snapshot,
diff, neutralize and reset
- Read-only analysis toolkit for an Odoo database
- SSH configuration with recursive ProxyJump, port forwarding, and
registration of the QEMU hosts in virt-manager
- NTFY self-hosted push notification server
- Generative AI policy, adopting the OCA one
- Claude Code agents and commands
- Local git server to share code between machines
- Unit tests for the configuration, the refactoring and the uncovered
components, with a bilingual test plan
- Read and send email from the TODO CLI, over IMAP and SMTP
- The database analysis reads a backup zip directly, without restoring it
- RTK management menu
- AI assistant tools menu, with the Claude Code commit command
- Deploy menu: clone ERPLibre on a remote host, configure sshfs, and make
targets for SSH deployment
- Database backup and erase commands, and a clearer restore naming
- Git patch, git remote and vim configuration from the menu
- Security check of the Python environment
- Odoo 18 reads STL files (OpenCAD)
- Mobile: whisper.cpp and sentencepiece in the manifest, a mobile test script,
and the Odoo sync API contract
- FAQ entry on wkhtmltopdf for recent distributions
- brin_advisor and brin_cluster: recommend and apply the right PostgreSQL
index for an Odoo model
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Per-VM settings in the deployment form: vCPU, RAM, disk, type, ERPLibre branch, Odoo version and timezone, a lock that shields a VM from the global profile, renaming, and several copies of one entry
- Python interpreter provider chosen through EL_PYTHON_PROVIDER — mise lays down a precompiled CPython, pyenv builds one — and picked per deployment
- uv places the Python packages, pip as fallback, through EL_PIP_PROVIDER
- openSUSE Leap 16.0 and Fedora 43 in the VM catalogue
- Application store of a graphical VM: .deb only, Flatpak tooling, or snap
- Remote desktop tunnel: the SSH command is composed from ~/.ssh/config, with the hypervisor console as a third route
- The install dashboard acts on a VM without leaving it: update by parts, restart Odoo, delete; architecture column and resizable columns
- Migration: go back to a step from the resume screen or from a prompt, and act on the COW copies as soon as they are announced
- The website copy analysis diffs each copy against the view it shadows
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- A test checks that what the tooling imports is declared
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- Automated Odoo migration: the tool drives the whole run -- repair, replay, an auto-run that takes the default after five seconds, and a countdown that names the answer it is about to take
- Migration state screen: « t » shows where a run stands, with coloured commands, elapsed time, the server log read for you, and one log file per step on disk
- Migration quality: what a run gained and lost step by step, the missing files named, Odoo's own redesigns told apart from real losses, and OpenUpgrade's declared changes laid over the real ones
- Migration repairs: the customized SCSS the next bump breaks, predicted then fixed; themes uninstalled before the first bump; DMS visibility restored; views whose stored type contradicts their parent; and the <tree> tags Odoo 18 renamed to <list>
- Smoke tests after a migration: every public URL requested, /my and every app opened as the neutralization test user, the views behind a failing URL named, and the OCA database cleanup run first
- Filestore check: whether the attachment files landed, whether the record still exists, and the cleanups offered on the spot
- Analysis: the modules a database lacks against the default package, with an offer to install those that are ready, and the attachment files that are truly unrecoverable
- Debian on s390x through debian-installer, no cloud image being published for that architecture
- A mobile development VM: PyCharm, Android Studio, GNOME extensions, an Android emulator and an adb tunnel for scrcpy, with the mobile app built and tested inside it
- Forgejo, a git forge installable from the deployment menu
- VM hardware set per machine: the host GPU, the CPU mode, the screens and the network
- virt-viewer opens a VM screen from the menu
- The install dashboard shows the host RAM, a VM's used RAM and uptime, and how long a log has been silent
- A VM greets its SSH login with the distribution's own commands
- Proxmox VE as a deployment target: deploy a VM on a remote Proxmox host from a screen that recaps in the terminal before creating, creates the missing bridge, follows the VM and changes its state, shows its Odoo column and the web link, and deletes it from the host. Every remote VM now comes with its connection guide, which was missing from the start
- Repairs for what an Odoo bump leaves behind: website copies that no longer render — predicted BEFORE the bump rather than found as a 500 after it — the indexes Odoo 17 creates twice, and the settings no event restores
- Analyses that read a database rather than count it: which module depends on which, on screen; what is installed, in progress and applied; the state of an instance read for the use made of it; and the examination of a database that is not local
- Anonymising a copy without AI: a production copy exists to reproduce a defect, so identifiers stay consistent across tables once the names are replaced
- Per-VM statistics: writes, RAM and disk
- Choosing the database at startup without ever blocking on the choice
- The reboot is part of installing Proxmox VE: install_proxmox.sh lays down the kernel and stops, rightly so, because launched over ssh a reboot would cut its session and make the install look failed. The reboot now belongs to the launching wrapper, which runs on OUR machine and survives the VM's — install, reboot, wait for `uname -r` to carry the Proxmox kernel, then verify. The ✅ is written only after that, so it means "usable hypervisor"
<!-- [fr] -->
- Support de la migration de base de données et de modules Odoo avec TODO
- Support du changement multi-version Odoo sur le même espace de travail
- Script pour le renforcement de la sécurité de l'installation
- Support des versions Odoo 12.0 à 18.0
- Séparation de l'installation Python ERPLibre de celle d'Odoo avec .venv.erplibre et .venv.odoo18
- Implémentation de l'auto-installation avec TODO.py
- TODO affiche la documentation, télécharge la base de données, aide au formatage du code
- Script de performance pour mesurer les requêtes par seconde
- Support de l'architecture Mainframe 390x
- Déploiement avec Cloudflare et Nginx
- Support de la configuration Apache comme Nginx
- Support du générateur de code RobotLibre
- Support d'ERPLibre DevOps, procédure d'automatisation DevOps
- Application mobile ERPLibre Home, utiliser TODO pour compiler, déployer et personnaliser
- Support de la grille Selenium depuis selenium_lib.py
- Ajout des addons OnlyOffice, Cetmix, OCA automation, OCA shopfloor
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Déploiement de VM ERPLibre en QEMU/KVM depuis des images cloud (Ubuntu, Debian, Fedora, AlmaLinux, Rocky Linux, openSUSE Tumbleweed, Arch) en amd64, arm64 et s390x, avec un menu pour lister, tester, redimensionner, supprimer et nettoyer
- VM graphiques : un choix serveur / bureau proposant GNOME ou Cinnamon (le bureau de Linux Mint), avec accès distant par xrdp — TigerVNC sur Arch
2026-08-10 03:10:50 -04:00
- Interfaces Textual : tableau de bord d'installation, formulaire de
déploiement de VM, écran de reprise de migration ; Textual s'installe à la
demande
- Télémétrie de navigation pour TODO, en arbre, en kanban ou en liste
- Outils de migration pour les vues copy-on-write du site web : prévoir,
photographier, comparer, neutraliser et réinitialiser
- Boîte à outils d'analyse en lecture seule d'une base Odoo
- Configuration SSH avec ProxyJump récursif, redirection de port et
enregistrement des hôtes QEMU dans virt-manager
- Serveur de notifications NTFY auto-hébergé
- Politique d'IA générative, adoptant celle de l'OCA
- Agents et commandes Claude Code
- Serveur git local pour partager du code entre machines
- Tests unitaires pour la configuration, la refactorisation et les composants
non couverts, avec un plan de test bilingue
- Lecture et envoi de courriel depuis le CLI TODO, en IMAP et SMTP
- L'analyse de base lit un zip de sauvegarde tel quel, sans le restaurer
- Menu de gestion RTK
- Menu d'outils d'assistance IA, avec la commande de commit Claude Code
- Menu de déploiement : cloner ERPLibre sur un hôte distant, configurer sshfs,
et des cibles make pour le déploiement SSH
- Commandes de sauvegarde et d'effacement de base, et un nommage plus clair à
la restauration
- Correctif git, dépôt distant git et configuration vim depuis le menu
- Vérification de sécurité de l'environnement Python
- Odoo 18 lit les fichiers STL (OpenCAD)
- Mobile : whisper.cpp et sentencepiece au manifeste, un script de test mobile,
et le contrat d'API de synchronisation Odoo
- Entrée de FAQ sur wkhtmltopdf pour les distributions récentes
- brin_advisor et brin_cluster : recommander et appliquer le bon index
PostgreSQL pour un modèle Odoo
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Réglages par VM dans le formulaire de déploiement : vCPU, RAM, disque, type, branche ERPLibre, version d'Odoo et fuseau horaire, un verrou qui soustrait une VM au profil global, le renommage, et plusieurs exemplaires d'une entrée
- Fournisseur d'interpréteur Python choisi par EL_PYTHON_PROVIDER — mise pose un CPython précompilé, pyenv en compile un — et retenu par déploiement
- uv pose les paquets Python, pip en repli, par EL_PIP_PROVIDER
- openSUSE Leap 16.0 et Fedora 43 au catalogue de VM
- Magasin d'applications d'une VM graphique : .deb seul, outillage Flatpak, ou snap
- Tunnel vers le bureau distant : la commande SSH est composée depuis ~/.ssh/config, avec la console de l'hyperviseur comme troisième voie
- Le tableau de bord d'installation agit sur une VM sans la quitter : mise à jour par parties, redémarrage d'Odoo, suppression ; colonne d'architecture et colonnes ajustables
- Migration : revenir à une étape depuis l'écran de reprise ou depuis une invite, et agir sur les copies COW dès leur annonce
- L'analyse des copies de site compare chaque copie à la vue qu'elle masque
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Un test vérifie que ce qu'importe l'outillage est bien déclaré
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- Migration Odoo automatisée : l'outil mène toute l'exécution — réparer, rejouer, un déroulement automatique qui prend le défaut au bout de cinq secondes, et un compte à rebours qui nomme la réponse qu'il va prendre
- Écran d'état de migration : « t » montre où en est une exécution, avec les commandes en couleur, la durée écoulée, le journal du serveur lu pour vous, et un fichier de journal par étape sur disque
- Qualité de migration : ce qu'une exécution a gagné et perdu étape par étape, les fichiers manquants nommés, les refontes propres à Odoo distinguées des vraies pertes, et les changements déclarés par OpenUpgrade superposés aux réels
- Réparations de migration : le SCSS personnalisé que le palier suivant casse, prévu puis corrigé ; les thèmes désinstallés avant le premier palier ; la visibilité DMS rétablie ; les vues dont le type stocké contredit leur parent ; et les balises <tree> qu'Odoo 18 a renommées en <list>
- Tests de fumée après une migration : chaque URL publique demandée, /my et chaque application ouverte sous l'utilisateur de test de neutralisation, les vues derrière une URL en échec nommées, et le nettoyage de base OCA passé d'abord
- Vérification du filestore : si les fichiers joints sont bien arrivés, si l'enregistrement existe encore, et les nettoyages proposés sur place
- Analyse : les modules qui manquent à une base par rapport au paquet par défaut, avec une offre d'installer ceux qui sont prêts, et les fichiers joints réellement irrécupérables
- Debian sur s390x par debian-installer, aucune image cloud n'étant publiée pour cette architecture
- Une VM de développement mobile : PyCharm, Android Studio, extensions GNOME, un émulateur Android et un tunnel adb pour scrcpy, l'application mobile étant compilée et testée dedans
- Forgejo, une forge git installable depuis le menu de déploiement
- Matériel réglé par VM : le GPU de l'hôte, le mode CPU, les écrans et le réseau
- virt-viewer ouvre l'écran d'une VM depuis le menu
- Le tableau de bord d'installation affiche la RAM de l'hôte, la RAM utilisée et l'uptime d'une VM, et depuis combien de temps un journal est muet
- Une VM accueille sa connexion SSH avec les commandes propres à sa distribution
- Proxmox VE comme cible de déploiement : déployer une VM sur un hôte Proxmox distant depuis un écran qui récapitule dans le terminal avant de créer, crée le pont manquant, suit la VM et change son état, montre sa colonne Odoo et le lien web, et la supprime depuis l'hôte. Toute VM distante vient désormais avec son guide de connexion, qui manquait depuis le début
- Des réparations pour ce qu'un palier Odoo laisse derrière : les copies de site qui ne savent plus se rendre — prédites AVANT le palier plutôt que découvertes en 500 après — les index qu'Odoo 17 crée en double, et les réglages qu'aucun événement ne remet
- Des analyses qui lisent une base plutôt que de la compter : qui dépend de qui, à l'écran ; ce qui est installé, en cours et appliqué ; l'état d'une instance lu pour l'usage qu'on en fait ; et l'auscultation d'une base qui n'est pas ici
- L'anonymisation d'une copie sans IA : une copie de production sert à reproduire un défaut, les identifiants restent donc cohérents entre les tables une fois les noms remplacés
- Les statistiques de chaque VM : écriture, RAM, disque
- Le choix de la base au démarrage, sans jamais bloquer sur ce choix
- Le redémarrage fait partie de l'installation de Proxmox VE : install_proxmox.sh pose le noyau puis s'arrête, à raison, car lancé par ssh un reboot couperait sa session et ferait passer l'installation pour un échec. Le redémarrage revient à l'enveloppe de lancement, qui tourne sur NOTRE machine et survit à celle de la VM — installation, reboot, attente que « uname -r » porte le noyau Proxmox, puis vérification. Le ✅ ne s'écrit qu'après, et veut donc dire « hyperviseur utilisable »
<!-- [en] -->
## Changed
<!-- [fr] -->
## Modifié
<!-- [en] -->
- todo.py split into nine files, one per subject, with a shared base per form. It carried 9 500 lines more than a file should and every subject went through it; the deployment forms repeated the same field-and-validation machinery, so a fix in one never reached the others. No behaviour changes
- Branch, profile and type are chosen per VM. They were global, which meant switching everything to deploy a single machine differently
- One shared base describes the guest system, where each form used to describe it again
<!-- [fr] -->
- todo.py éclaté en neuf fichiers, un par sujet, avec un socle commun par formulaire. Il portait 9 500 lignes de plus qu'un fichier ne devrait et tous les sujets y passaient ; les formulaires de déploiement répétaient la même mécanique de champs et de validation, si bien qu'une correction dans l'un ne gagnait jamais les autres. Aucun changement de comportement
- La branche, le profil et le type se choisissent par VM. Ils étaient globaux, ce qui obligeait à tout basculer pour déployer une seule machine autrement
- Un socle commun décrit le système invité, là où chaque formulaire le redécrivait
[FIX] mobile: the bundle check refused a real build The checker knew only the pack layout. A real build ships one tar.gz per repository, so it raised "<slug> : index.json absent" and, being guarded by `|| exit 1`, stopped compile_and_run.sh before cap sync — no APK. Broken since 2026-08-20 for anyone on the current mobile main: the parent half of that work landed, the mobile half producing packs never did. It now accepts both layouts, so whichever half lands next, it holds. Two things got better on the way. The byte-for-byte comparison against the source — the only check that proves fidelity rather than coherence — was reporting zero comparisons, because no entry matched the shape it looked for; it now compares twenty. And presence is no longer sampled: streaming all 139 archives costs 6 s and accounts for every one of the 124 350 promised files, where a sample of twenty could not see a ghost it did not draw. The test guarding the ZIP limit demanded a `chunk` field on every file — the pack layout, not the limit. It counts entries now: 278 against 65 535. Its real-bundle class had been taught to skip on this very symptom rather than fail; it runs again. --- FR --- Le vérificateur ne connaissait que la disposition en packs. Une compilation réelle livre un tar.gz par dépôt : il levait « <slug> : index.json absent » et, gardé par `|| exit 1`, arrêtait compile_and_run.sh avant cap sync — pas d'APK. Cassé depuis le 2026-08-20 pour quiconque est sur le main mobile actuel : la moitié parente de ce travail a atterri, la moitié mobile qui produit les packs jamais. Il accepte désormais les deux dispositions : quelle que soit la moitié qui atterrit ensuite, il tient. Deux choses se sont améliorées en chemin. La comparaison octet pour octet contre la source — la seule qui prouve la fidélité et non la cohérence — rapportait zéro comparaison, faute d'entrée à la forme attendue ; elle en compare vingt. Et la présence n'est plus échantillonnée : traverser les 139 archives coûte 6 s et rend compte de chacun des 124 350 fichiers promis, là où vingt tirages ne pouvaient pas voir un fantôme non tiré. Le test qui gardait la limite du ZIP exigeait un champ `chunk` sur chaque fichier — la disposition, pas la limite. Il compte les entrées désormais : 278 pour 65 535. Sa classe sur le vrai bundle avait appris à s'ignorer sur ce symptôme même plutôt qu'à échouer ; elle tourne à nouveau. Assisted-by: Claude Opus 5
2026-08-24 05:50:04 -04:00
<!-- [en] -->
## Fixed
<!-- [fr] -->
## Corrigé
<!-- [en] -->
- The mobile bundle check accepted only the pack layout, when a real build ships one tar.gz per repository. It failed on `<slug> : index.json absent` and stopped `compile_and_run.sh` before the APK — since 2026-08-20, for anyone on the current mobile main. It now accepts both layouts, and proves the presence of EVERY promised file rather than a sample of twenty: streaming all 139 archives costs 6 s, and 124 350 files are accounted for
- The bundle test guarded the ZIP entry limit by demanding a `chunk` field on every file, which is the pack layout rather than the limit itself. It now counts the entries the APK will carry — 278 against a ceiling of 65 535 — so either layout passes and a return to file-per-source still fails
- The 13-to-18 migration rested on assumptions: a percent-encoded page anchor the parser could not read, web_responsive that does not survive the bump to 18, a failed OpenUpgrade that passed for done, a rebuilt clone that kept the old one's preparation, and one faulty module taking the whole uninstall batch down
- Proxmox aimed at the wrong machine: the install went to the host instead of the VM, the disk it reported was the host's, and four screens spoke of a local machine while driving a remote one. The jump host is now the only route to a VM — aiming directly worked only while the VM had a routable address. Six further defects came from an audit rather than from use
- One name per `~/.ssh/config` entry, and the old one leaves with the convention that replaced it
- Monitoring no longer bins a VM before being sure, and deleting from a reopened monitor checks the VM's identity first
- sshfs announced a mount that had not happened
- Odoo 15 declares xlsxwriter, which report_xlsx has always needed
- The db_restore master-password probe validated nothing
- An analysis looked for the price list's external identifier rather than the list itself, and reported fields that had never held data
- The NAT bridge was written before knowing whether NAT exists. Six lines of iptables and "return code 1" came after the stanza had already gone into /etc/network/interfaces, and nothing in that noise said a reboot was needed: the host was running Debian's cloud kernel, stripped of netfilter. Our own install_proxmox.sh produces that state, so a freshly installed nested Proxmox is ALWAYS in it — the guard now sits where the consequence is, not at host confirmation
[FIX] mobile: the bundle check refused a real build The checker knew only the pack layout. A real build ships one tar.gz per repository, so it raised "<slug> : index.json absent" and, being guarded by `|| exit 1`, stopped compile_and_run.sh before cap sync — no APK. Broken since 2026-08-20 for anyone on the current mobile main: the parent half of that work landed, the mobile half producing packs never did. It now accepts both layouts, so whichever half lands next, it holds. Two things got better on the way. The byte-for-byte comparison against the source — the only check that proves fidelity rather than coherence — was reporting zero comparisons, because no entry matched the shape it looked for; it now compares twenty. And presence is no longer sampled: streaming all 139 archives costs 6 s and accounts for every one of the 124 350 promised files, where a sample of twenty could not see a ghost it did not draw. The test guarding the ZIP limit demanded a `chunk` field on every file — the pack layout, not the limit. It counts entries now: 278 against 65 535. Its real-bundle class had been taught to skip on this very symptom rather than fail; it runs again. --- FR --- Le vérificateur ne connaissait que la disposition en packs. Une compilation réelle livre un tar.gz par dépôt : il levait « <slug> : index.json absent » et, gardé par `|| exit 1`, arrêtait compile_and_run.sh avant cap sync — pas d'APK. Cassé depuis le 2026-08-20 pour quiconque est sur le main mobile actuel : la moitié parente de ce travail a atterri, la moitié mobile qui produit les packs jamais. Il accepte désormais les deux dispositions : quelle que soit la moitié qui atterrit ensuite, il tient. Deux choses se sont améliorées en chemin. La comparaison octet pour octet contre la source — la seule qui prouve la fidélité et non la cohérence — rapportait zéro comparaison, faute d'entrée à la forme attendue ; elle en compare vingt. Et la présence n'est plus échantillonnée : traverser les 139 archives coûte 6 s et rend compte de chacun des 124 350 fichiers promis, là où vingt tirages ne pouvaient pas voir un fantôme non tiré. Le test qui gardait la limite du ZIP exigeait un champ `chunk` sur chaque fichier — la disposition, pas la limite. Il compte les entrées désormais : 278 pour 65 535. Sa classe sur le vrai bundle avait appris à s'ignorer sur ce symptôme même plutôt qu'à échouer ; elle tourne à nouveau. Assisted-by: Claude Opus 5
2026-08-24 05:50:04 -04:00
<!-- [fr] -->
- Le vérificateur du transfert mobile n'acceptait que la disposition en packs, quand une compilation réelle livre un tar.gz par dépôt. Il échouait sur `<slug> : index.json absent` et arrêtait `compile_and_run.sh` avant l'APK — depuis le 2026-08-20, pour quiconque est sur le main mobile actuel. Il accepte désormais les deux dispositions, et prouve la présence de CHAQUE fichier promis plutôt qu'un échantillon de vingt : traverser les 139 archives coûte 6 s, et 124 350 fichiers sont comptés
- Le test du bundle gardait la limite d'entrées du ZIP en exigeant un champ `chunk` sur chaque fichier, c'est-à-dire la disposition en packs plutôt que la limite elle-même. Il compte maintenant les entrées que portera l'APK — 278 pour un plafond de 65 535 — si bien que les deux dispositions passent et qu'un retour au fichier-par-source échoue toujours
- La migration des paliers 13 à 18 tenait sur des suppositions : une ancre de page encodée en pourcent que l'analyseur ne lisait pas, web_responsive qui ne survit pas au passage en 18, un OpenUpgrade en échec qui passait pour fait, un clone rebâti qui gardait la préparation de l'ancien, et un module fautif qui emportait tout le lot de désinstallation
- Proxmox visait la mauvaise machine : l'installation partait sur l'hôte plutôt que sur la VM, le disque annoncé était celui de l'hôte, et quatre écrans parlaient d'une machine locale alors qu'ils pilotaient une machine distante. Le rebond est désormais le seul chemin vers une VM — viser directement ne marchait que tant que la VM avait une adresse routable. Six autres défauts sont venus d'un audit, pas de l'usage
- Un seul nom par entrée `~/.ssh/config`, et l'ancienne s'en va avec la convention qui l'a remplacée
- Le suivi ne met plus une VM à la poubelle avant d'en être sûr, et effacer depuis un suivi rouvert vérifie d'abord l'identité de la VM
- sshfs annonçait un montage qui n'avait pas eu lieu
- Odoo 15 déclare xlsxwriter, dont report_xlsx a toujours eu besoin
- La sonde du mot de passe maître de db_restore ne validait rien
- Une analyse cherchait l'identifiant externe de la liste de prix plutôt que la liste, et signalait des champs qui n'avaient jamais porté de donnée
- Le pont NAT s'écrivait avant de savoir si le NAT existe. Six lignes d'iptables et « code de retour 1 » arrivaient après que la strophe soit déjà posée dans /etc/network/interfaces, et rien dans ce bruit ne disait qu'il fallait redémarrer : l'hôte tournait le noyau cloud de Debian, dépouillé de netfilter. C'est notre propre install_proxmox.sh qui produit cet état, donc une Proxmox imbriquée fraîchement installée y est TOUJOURS — le garde va désormais là où la conséquence est, et non à la confirmation de l'hôte
[UPD] support: drop Ubuntu 20.04/22.04, add AlmaLinux and Rocky Ubuntu 20.04 and 22.04 leave EVERY architecture, not just s390x. pikepdf needs qpdf 12.2, whose build requires C++20, while focal ships GCC 9 and publishes no g++-10 for s390x at all. Python 3.8, node 10, cargo 0.67 and OpenSSL 1.1.1 each had a workaround; the pile of them did not. 18.04 follows, already off the lists. The refusal lands before any apt, this script also serving existing machines. AlmaLinux 9 and 10, Rocky 9 and 10 join the catalog on all four architectures: the twelve "latest" URLs were opened, with no index to parse unlike Fedora. They would have booted unreachable though -- the cloud-config forced "groups: users, sudo", but the RHEL family has no sudo group, only wheel, and an unknown group makes useradd fail, hence no password and no key. The very trap already known for Debian, repeated elsewhere. Host side, EPEL and CRB are enabled: without them most -devel packages are missing, silently. The server / graphical choice gains Cinnamon, the Linux Mint desktop, from the distribution's own repositories. Mint's repository is set aside: plain HTTP, and i386/amd64 only, which would rule out arm64 and s390x. Along the way, dnf now installs an ENVIRONMENT rather than a group -- "gnome-desktop" brings gdm and gnome-shell but not base-x, hence no X server. --- FR --- Ubuntu 20.04 et 22.04 partent de TOUTES les architectures, pas seulement de s390x. pikepdf réclame qpdf 12.2, dont la compilation exige C++20, quand focal livre GCC 9 et ne publie même pas de g++-10 pour s390x. Python 3.8, node 10, cargo 0.67 et OpenSSL 1.1.1 avaient chacun leur contournement ; leur accumulation, non. 18.04 suit, déjà hors des listes. Le refus tombe avant tout apt, ce script servant aussi les machines existantes. AlmaLinux 9 et 10, Rocky 9 et 10 entrent au catalogue, sur les quatre architectures : les douze URL « latest » ont été ouvertes, aucun index à analyser contrairement à Fedora. Elles auraient pourtant démarré inaccessibles — le cloud-config imposait « groups: users, sudo », or la famille RHEL n'a pas de groupe sudo mais wheel, et un groupe inconnu fait échouer useradd, donc ni mot de passe ni clé. C'est le piège déjà connu pour Debian, reproduit ailleurs. Côté hôte, EPEL et CRB sont activés : sans eux la plupart des -devel manquent, en silence. Le choix serveur / graphique gagne Cinnamon, le bureau de Linux Mint, depuis les dépôts de la distribution. Le dépôt de Mint lui-même est écarté : il est en HTTP nu et ne publie que i386 et amd64, ce qui exclurait arm64 et s390x. Au passage, dnf installe désormais un ENVIRONNEMENT et non un groupe — « gnome-desktop » apporte gdm et gnome-shell mais pas base-x, donc pas de serveur X. Assisted-by: Claude Opus 5
2026-08-11 18:46:11 -04:00
<!-- [en] -->
## Removed
<!-- [fr] -->
## Retiré
<!-- [en] -->
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Ubuntu 20.04 and 22.04 support, on every architecture: pikepdf needs qpdf 12.2, whose build requires C++20, while focal ships GCC 9 and publishes no `g++-10` for s390x
[UPD] support: drop Ubuntu 20.04/22.04, add AlmaLinux and Rocky Ubuntu 20.04 and 22.04 leave EVERY architecture, not just s390x. pikepdf needs qpdf 12.2, whose build requires C++20, while focal ships GCC 9 and publishes no g++-10 for s390x at all. Python 3.8, node 10, cargo 0.67 and OpenSSL 1.1.1 each had a workaround; the pile of them did not. 18.04 follows, already off the lists. The refusal lands before any apt, this script also serving existing machines. AlmaLinux 9 and 10, Rocky 9 and 10 join the catalog on all four architectures: the twelve "latest" URLs were opened, with no index to parse unlike Fedora. They would have booted unreachable though -- the cloud-config forced "groups: users, sudo", but the RHEL family has no sudo group, only wheel, and an unknown group makes useradd fail, hence no password and no key. The very trap already known for Debian, repeated elsewhere. Host side, EPEL and CRB are enabled: without them most -devel packages are missing, silently. The server / graphical choice gains Cinnamon, the Linux Mint desktop, from the distribution's own repositories. Mint's repository is set aside: plain HTTP, and i386/amd64 only, which would rule out arm64 and s390x. Along the way, dnf now installs an ENVIRONMENT rather than a group -- "gnome-desktop" brings gdm and gnome-shell but not base-x, hence no X server. --- FR --- Ubuntu 20.04 et 22.04 partent de TOUTES les architectures, pas seulement de s390x. pikepdf réclame qpdf 12.2, dont la compilation exige C++20, quand focal livre GCC 9 et ne publie même pas de g++-10 pour s390x. Python 3.8, node 10, cargo 0.67 et OpenSSL 1.1.1 avaient chacun leur contournement ; leur accumulation, non. 18.04 suit, déjà hors des listes. Le refus tombe avant tout apt, ce script servant aussi les machines existantes. AlmaLinux 9 et 10, Rocky 9 et 10 entrent au catalogue, sur les quatre architectures : les douze URL « latest » ont été ouvertes, aucun index à analyser contrairement à Fedora. Elles auraient pourtant démarré inaccessibles — le cloud-config imposait « groups: users, sudo », or la famille RHEL n'a pas de groupe sudo mais wheel, et un groupe inconnu fait échouer useradd, donc ni mot de passe ni clé. C'est le piège déjà connu pour Debian, reproduit ailleurs. Côté hôte, EPEL et CRB sont activés : sans eux la plupart des -devel manquent, en silence. Le choix serveur / graphique gagne Cinnamon, le bureau de Linux Mint, depuis les dépôts de la distribution. Le dépôt de Mint lui-même est écarté : il est en HTTP nu et ne publie que i386 et amd64, ce qui exclurait arm64 et s390x. Au passage, dnf installe désormais un ENVIRONNEMENT et non un groupe — « gnome-desktop » apporte gdm et gnome-shell mais pas base-x, donc pas de serveur X. Assisted-by: Claude Opus 5
2026-08-11 18:46:11 -04:00
<!-- [fr] -->
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Le support d'Ubuntu 20.04 et 22.04, sur toutes les architectures : pikepdf réclame qpdf 12.2, dont la compilation exige C++20, quand focal livre GCC 9 et ne publie pas de `g++-10` pour s390x
[UPD] support: drop Ubuntu 20.04/22.04, add AlmaLinux and Rocky Ubuntu 20.04 and 22.04 leave EVERY architecture, not just s390x. pikepdf needs qpdf 12.2, whose build requires C++20, while focal ships GCC 9 and publishes no g++-10 for s390x at all. Python 3.8, node 10, cargo 0.67 and OpenSSL 1.1.1 each had a workaround; the pile of them did not. 18.04 follows, already off the lists. The refusal lands before any apt, this script also serving existing machines. AlmaLinux 9 and 10, Rocky 9 and 10 join the catalog on all four architectures: the twelve "latest" URLs were opened, with no index to parse unlike Fedora. They would have booted unreachable though -- the cloud-config forced "groups: users, sudo", but the RHEL family has no sudo group, only wheel, and an unknown group makes useradd fail, hence no password and no key. The very trap already known for Debian, repeated elsewhere. Host side, EPEL and CRB are enabled: without them most -devel packages are missing, silently. The server / graphical choice gains Cinnamon, the Linux Mint desktop, from the distribution's own repositories. Mint's repository is set aside: plain HTTP, and i386/amd64 only, which would rule out arm64 and s390x. Along the way, dnf now installs an ENVIRONMENT rather than a group -- "gnome-desktop" brings gdm and gnome-shell but not base-x, hence no X server. --- FR --- Ubuntu 20.04 et 22.04 partent de TOUTES les architectures, pas seulement de s390x. pikepdf réclame qpdf 12.2, dont la compilation exige C++20, quand focal livre GCC 9 et ne publie même pas de g++-10 pour s390x. Python 3.8, node 10, cargo 0.67 et OpenSSL 1.1.1 avaient chacun leur contournement ; leur accumulation, non. 18.04 suit, déjà hors des listes. Le refus tombe avant tout apt, ce script servant aussi les machines existantes. AlmaLinux 9 et 10, Rocky 9 et 10 entrent au catalogue, sur les quatre architectures : les douze URL « latest » ont été ouvertes, aucun index à analyser contrairement à Fedora. Elles auraient pourtant démarré inaccessibles — le cloud-config imposait « groups: users, sudo », or la famille RHEL n'a pas de groupe sudo mais wheel, et un groupe inconnu fait échouer useradd, donc ni mot de passe ni clé. C'est le piège déjà connu pour Debian, reproduit ailleurs. Côté hôte, EPEL et CRB sont activés : sans eux la plupart des -devel manquent, en silence. Le choix serveur / graphique gagne Cinnamon, le bureau de Linux Mint, depuis les dépôts de la distribution. Le dépôt de Mint lui-même est écarté : il est en HTTP nu et ne publie que i386 et amd64, ce qui exclurait arm64 et s390x. Au passage, dnf installe désormais un ENVIRONNEMENT et non un groupe — « gnome-desktop » apporte gdm et gnome-shell mais pas base-x, donc pas de serveur X. Assisted-by: Claude Opus 5
2026-08-11 18:46:11 -04:00
<!-- [en] -->
## Changed
<!-- [fr] -->
## Modifié
<!-- [en] -->
- Docker support postgresql 18
- Format script search diff file into each repository
- Support neutralize database from Odoo
2026-08-10 03:10:50 -04:00
- Installation supports Fedora, Debian, Ubuntu and Arch Linux
- Repository sync and poetry install run in parallel, up to 50 % faster on a
slow connection
- CybroOdoo extra modules become opt-in, tracked per Odoo version
- Node.js 22, required by Capacitor 8 for the mobile application
- Poetry and repo are quiet by default; EL_VERBOSE restores the output
- TODO menus grouped into sections with icons, and English text used as the
i18n key
- Documentation is bilingual, generated from the .base.md sources
- A VM inherits the timezone of the host that creates it
- First boot no longer waits on snapd, locale generation or the guest agent
- apt picks the fastest reachable mirror before the official archive
- Selenium: download through a network hub, SVG to PNG, error detection,
multiple clicks and updated drivers
- Odoo can run on a custom database; queue_job setup and SSH forwarding
options in the menu
- Killing a process by port asks before acting, with an interactive menu
- LinuxMint 22.3 supported
- Odoo 18 dependencies: flanker, orjson, python-magic, tldextract, PyYAML
- Copyright year updated to 2026
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Canadian pacman mirrors placed first on Arch, the official geographic mirror measuring four times slower from Montréal
- A Poetry dependency can be declined per architecture: factur-x is pinned to 3.x on s390x, where saxonche publishes no wheel, and PyMuPDF is set aside there
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- Enter targets the highest supported Odoo version, the default being computed from the menu
- A make target runs the unit tests, with the mobile dependency declared
<!-- [fr] -->
- Support Docker postgresql 18
- Script de formatage recherche les fichiers diff dans chaque dépôt
- Support de la neutralisation de base de données depuis Odoo
2026-08-10 03:10:50 -04:00
- L'installation prend en charge Fedora, Debian, Ubuntu et Arch Linux
- La synchronisation des dépôts et l'installation poetry tournent en
parallèle, jusqu'à 50 % plus rapide sur une connexion lente
- Les modules extra CybroOdoo deviennent optionnels, suivis par version d'Odoo
- Node.js 22, exigé par Capacitor 8 pour l'application mobile
- Poetry et repo sont silencieux par défaut ; EL_VERBOSE rétablit la sortie
- Menus TODO regroupés en sections avec icônes, et texte anglais utilisé comme
clé i18n
- Documentation bilingue, générée depuis les sources .base.md
- Une VM hérite du fuseau horaire de l'hôte qui la crée
- Le premier démarrage n'attend plus snapd, la génération de locales ni l'agent
- apt prend le miroir joignable le plus rapide avant le dépôt officiel
- Selenium : téléchargement via un hub réseau, SVG vers PNG, détection
d'erreurs, clics multiples et pilotes à jour
- Odoo peut tourner sur une base personnalisée ; configuration de queue_job et
options de redirection SSH dans le menu
- Tuer un processus par son port demande confirmation, avec un menu interactif
- LinuxMint 22.3 pris en charge
- Dépendances Odoo 18 : flanker, orjson, python-magic, tldextract, PyYAML
- Année de copyright portée à 2026
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- Miroirs pacman canadiens placés en tête sur Arch, le miroir « géographique » officiel mesurant quatre fois plus lent depuis Montréal
- Une dépendance Poetry peut être déclinée par architecture : factur-x est épinglé en 3.x sur s390x, où saxonche ne publie pas de roue, et PyMuPDF y est écarté
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- Entrée cible la version d'Odoo la plus élevée supportée, le défaut étant calculé depuis le menu
- Une cible make lance les tests unitaires, avec la dépendance mobile déclarée
2026-08-10 03:10:50 -04:00
<!-- [en] -->
## Fixed
<!-- [fr] -->
## Corrigé
<!-- [en] -->
- A failed installation is no longer reported as a success: the exit code is
propagated through the whole chain
- --with_extra now applies to an already-installed environment
- The addons path no longer points at a repository the Odoo 18 manifest never
clones
- repo init receives a branch name, so a fresh install no longer fails
- The install monitor follows a VM whose DHCP lease changes
- Installation on Debian 13, Fedora and Ubuntu 26.04: apt lock, wkhtmltopdf,
SELinux and the missing C compiler
- Documentation accents and the parallel markdown generation
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- The s390x build chain, on Debian as on EL9, EL10, Fedora and openSUSE: missing compilers and headers, Rust for cryptography and bcrypt, qpdf for pikepdf, libclang for pymupdf, package names that change across releases, and a batch that failed on one unknown name without ever naming it
- A graphical desktop install froze for thirty minutes on a snap package that could not reach the store
- The compiler was killed for lack of memory while building CPython on a small s390x guest
- The README listed neither Fedora, openSUSE, Linux Mint nor Debian 13, all of them supported
- The COW migration tools and the database upgrade speak the system language
- The analysis and migration tools are executable
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- The forgejo installer no longer echoes the administrator password it has just set
- The Selenium login re-sent the configured default instead of the credentials it was given, when it retried after dismissing a modal
- db_restore asks the master password again instead of dying on a typo
- pyproj needs the proj binary, not only its headers, and PROJ is built where the distribution lags behind
- run.sh is launched through bash, against systemd's 203/EXEC failures
- pykcs11 compiles with SWIG 4.3 and above
- os-release replaces lsb_release, and an IP collision is easier to see
2026-08-10 03:10:50 -04:00
<!-- [fr] -->
- Une installation en échec n'est plus rapportée comme réussie : le code de
sortie remonte toute la chaîne
- --with_extra s'applique désormais à un environnement déjà installé
- Le chemin d'addons ne pointe plus vers un dépôt que le manifeste Odoo 18 ne
clone jamais
- repo init reçoit un nom de branche, une installation neuve n'échoue plus
- Le suivi d'installation suit une VM dont le bail DHCP change
- Installation sur Debian 13, Fedora et Ubuntu 26.04 : verrou apt, wkhtmltopdf,
SELinux et le compilateur C manquant
- Accents de la documentation et génération markdown en parallèle
[UPD] changelog: the deployment and installation cycle The Unreleased section already covered the QEMU deployment, the graphical VMs and the COW migration tools, but stopped at what existed a month ago. It says nothing of the per-VM settings, of the mise and uv providers, or of the s390x build chain -- and a reader deciding whether to upgrade has only this file to go on. Fourteen entries, spread over Added, Changed and Fixed. Nothing is repeated: the platforms and tools already listed stay where they are, and only what the entry does not already say is added. The migration work follows on its own, at the end of the branch. Entries are written on one line. Nothing wraps markdown here -- no max_line_length in .editorconfig, prettier never runs on .md -- and a sentence cut at column 80 reads worse in a diff and in a terminal. The three entries this cycle had already folded are flattened with them. Written in CHANGELOG.base.md, the only source; the two generated files come from it. mmg was unavailable here, so the generation was reproduced by a filter checked byte-for-byte against the committed output before being trusted. --- FR --- La section Unreleased couvrait déjà le déploiement QEMU, les VM graphiques et les outils de migration COW, mais s'arrêtait à l'état d'il y a un mois. Elle ne dit rien des réglages par VM, des fournisseurs mise et uv, ni de la chaîne de compilation s390x — et qui décide de mettre à jour n'a que ce fichier pour se prononcer. Quatorze entrées, réparties sur Ajouté, Modifié et Corrigé. Rien n'est redit : les plateformes et outils déjà listés restent en place, et seul ce que l'entrée ne dit pas encore est ajouté. Le travail de migration suit à part, en fin de branche. Les entrées tiennent sur une ligne. Rien n'impose de plier le markdown ici — pas de max_line_length dans .editorconfig, prettier ne tourne jamais sur du .md — et une phrase coupée à la colonne 80 se lit moins bien, en diff comme au terminal. Les trois entrées déjà pliées de ce cycle sont mises à plat avec elles. Écrit dans CHANGELOG.base.md, seule source ; les deux fichiers générés en découlent. mmg étant indisponible ici, la génération a été reproduite par un filtre vérifié à l'octet près contre la sortie déjà versionnée avant d'être employé. Assisted-by: Claude Opus 5
2026-08-17 00:10:08 -04:00
- La chaîne de compilation s390x, sur Debian comme sur EL9, EL10, Fedora et openSUSE : compilateurs et en-têtes manquants, Rust pour cryptography et bcrypt, qpdf pour pikepdf, libclang pour pymupdf, des noms de paquets qui changent d'une version à l'autre, et un lot en échec sur un seul nom inconnu sans jamais le nommer
- L'installation d'un bureau graphique figeait trente minutes sur un paquet snap qui ne joignait pas le magasin
- Le compilateur était tué faute de mémoire en bâtissant CPython sur une petite VM s390x
- Le README ne listait ni Fedora, ni openSUSE, ni Linux Mint, ni Debian 13, toutes supportées
- Les outils de migration COW et la mise à niveau de la base parlent la langue du système
- Les outils d'analyse et de migration sont exécutables
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- L'installateur forgejo ne réaffiche plus le mot de passe administrateur qu'il vient de poser
- La connexion Selenium renvoyait le défaut de configuration au lieu des identifiants reçus, lors de la reprise après une modale
- db_restore redemande le mot de passe maître au lieu de mourir sur une faute de frappe
- pyproj exige le binaire proj, pas seulement ses en-têtes, et PROJ est bâti là où la distribution est en retard
- run.sh est lancé par bash, contre les échecs 203/EXEC de systemd
- pykcs11 se compile avec SWIG 4.3 et au-delà
- os-release remplace lsb_release, et une collision d'IP se voit mieux
2026-08-10 03:10:50 -04:00
<!-- [en] -->
## Security
<!-- [fr] -->
## Sécurité
<!-- [en] -->
- Passwords and tokens are redacted before a command is displayed or logged
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- The Odoo master password no longer travels on the command line: MASTER_PWD carries it, and /proc/<pid>/environ is readable only by its owner where /proc/<pid>/cmdline is readable by every user on the machine (needs the matching commit in the odoo fork)
- The KeePass password reaches the Selenium login the same way: the command carries the NAME of an environment variable, never the value
- What a command PRINTS is redacted like the command itself: a tool that reprints its own arguments no longer puts the secret back into the terminal and into the log file
2026-08-10 03:10:50 -04:00
<!-- [fr] -->
[UPD] changelog: the 143 commits this branch actually carries The Unreleased section described the previous cycle. It named the COW tools and the QEMU deployment, then stopped -- and this branch is mostly what came after: an Odoo migration that drives itself, a state screen, a quality report, and the repairs each bump turned out to need. Twenty-one entries, fourteen of them Added. Read from the commits rather than from memory, and grouped by what a reader would look for: the migration run, its state, its quality, its repairs, its smoke tests. The five commits that only touch documentation or tests are left out; the ones that change what the tool does are all there. Nothing already listed is repeated. The COW tools, the analysis toolkit and the deployment form keep the entries they had. --- FR --- La section Unreleased décrivait le cycle précédent. Elle nommait les outils COW et le déploiement QEMU, puis s'arrêtait — or cette branche est surtout ce qui a suivi : une migration Odoo qui se conduit seule, un écran d'état, un rapport de qualité, et les réparations que chaque palier a révélées nécessaires. Vingt et une entrées, dont quatorze sous Ajouté. Lues dans les commits plutôt que de mémoire, et regroupées selon ce qu'un lecteur cherche : l'exécution de la migration, son état, sa qualité, ses réparations, ses tests de fumée. Les cinq commits qui ne touchent que la documentation ou les tests sont écartés ; ceux qui changent ce que fait l'outil y sont tous. Rien de déjà listé n'est redit. Les outils COW, la boîte à outils d'analyse et le formulaire de déploiement gardent leurs entrées. Assisted-by: Claude Opus 5
2026-08-23 01:06:25 -04:00
- Les mots de passe et jetons sont caviardés avant l'affichage ou la journalisation d'une commande
- Le mot de passe maître d'Odoo ne voyage plus sur la ligne de commande : MASTER_PWD le porte, et /proc/<pid>/environ n'est lisible que par son propriétaire là où /proc/<pid>/cmdline l'est par tout utilisateur de la machine (exige le commit correspondant dans le fork odoo)
- Le mot de passe KeePass parvient à la connexion Selenium de la même façon : la commande porte le NOM d'une variable d'environnement, jamais la valeur
- Ce qu'une commande AFFICHE est caviardé comme la commande elle-même : un outil qui réaffiche ses propres arguments ne remet plus le secret dans le terminal ni dans le fichier de journal
<!-- [common] -->
## [1.6.0] - 2025-04-25
<!-- [en] -->
## Added
<!-- [fr] -->
## Ajouté
<!-- [en] -->
- Support multiple Odoo versions (12.0, 14.0, 16.0) in same workspace
- This will help for the migration of modules
- Selenium script for increasing open software client interface and automating some actions.
- Video recording
- Support scrolling and word generating
- FAQ about kill git-daemon
- Supports Arch Linux, Ubuntu 23.10 to 25.04
- ADD repo JayVora-SerpentCS_SerpentCS_Contributions
- ADD repo CybroOdoo_CybroAddons
<!-- [fr] -->
- Support de plusieurs versions Odoo (12.0, 14.0, 16.0) dans le même espace de travail
- Cela aidera pour la migration des modules
- Script Selenium pour augmenter l'interface client logiciel libre et automatiser certaines actions.
- Enregistrement vidéo
- Support du défilement et de la génération de mots
- FAQ sur comment tuer git-daemon
- Support d'Arch Linux, Ubuntu 23.10 à 25.04
- AJOUT du dépôt JayVora-SerpentCS_SerpentCS_Contributions
- AJOUT du dépôt CybroOdoo_CybroAddons
<!-- [en] -->
## Changed
<!-- [fr] -->
## Modifié
<!-- [en] -->
- Refactor image_db regeneration, use configuration JSON to build image
- Guide for moving dev to prod
- Update Docker buster to bullseye
- Improve format script to help code-generator
- Improve PyCharm script
- Support OSX for open-terminal
- Remove docker-compose and replace by docker compose
- Update Poetry 1.3.1 to 1.5.1
- Test can be launched with a json configuration and support log/result individually
- Script to search docker compose into the system
- Script search class model can output into json format and support field information
- Improve Docker minimal installation docs in README for Ubuntu, test with
Debian (https://github.com/ERPLibre/ERPLibre/issues/73)
- Statistic script showing evolution module into ERPLibre supporting Odoo 17 and Odoo 18
- Latest version wkhtmltopdf 0.12.6.1-3
<!-- [fr] -->
- Refactorisation de la régénération image_db, utilisation de la configuration JSON pour construire l'image
- Guide pour le passage de dev à prod
- Mise à jour Docker buster vers bullseye
- Amélioration du script de formatage pour aider le code-generator
- Amélioration du script PyCharm
- Support d'OSX pour open-terminal
- Suppression de docker-compose et remplacement par docker compose
- Mise à jour de Poetry 1.3.1 vers 1.5.1
- Les tests peuvent être lancés avec une configuration JSON et supportent les logs/résultats individuellement
- Script pour rechercher docker compose dans le système
- Le script de recherche de modèle de classe peut produire en format JSON et supporte les informations de champ
- Amélioration de la documentation d'installation Docker minimale dans le README pour Ubuntu, test avec
Debian (https://github.com/ERPLibre/ERPLibre/issues/73)
- Script de statistiques montrant l'évolution des modules dans ERPLibre supportant Odoo 17 et Odoo 18
- Dernière version wkhtmltopdf 0.12.6.1-3
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- NPM installed locally and not globally
- Improve python code writer efficiency
- Config generator supporting space into ERPLibre directory
- Script to update Poetry to support @ URL
- OSX and recent Ubuntu installation
- Cloudflare script integration
<!-- [fr] -->
- NPM installé localement et non globalement
- Amélioration de l'efficacité du générateur de code Python
- Le générateur de configuration supporte les espaces dans le répertoire ERPLibre
- Script de mise à jour de Poetry pour supporter les URL avec @
- Installation OSX et Ubuntu récent
- Intégration du script Cloudflare
<!-- [common] -->
## [1.5.0] - 2023-07-07
<!-- [en] -->
**Migration notes**
Recreating the virtual environment
<!-- [fr] -->
**Notes de migration**
Recréer l'environnement virtuel
<!-- [common] -->
```bash
rm -rf ~/.poetry
rm -rf ~/.pyenv
rm ./get-poetry.py
rm -rf ./.venv
make install
```
<!-- [en] -->
Do a backup of your database and update all modules :
<!-- [fr] -->
Faire une sauvegarde de votre base de données et mettre à jour tous les modules :
<!-- [common] -->
```bash
./run.sh --no-http --stop-after-init -d DATABASE -u all
```
<!-- [en] -->
## Added
<!-- [fr] -->
## Ajouté
<!-- [en] -->
- Support Ubuntu 22.04 with installation script
- Module mail_history and fetchmail_thread_default in base image DB
- Makefile can generate image DB in parallel with `image_db_create_all_parallel`
- Makefile can run all code_generator with `run_parallel_cg` and `run_parallel_cg_template`
- Script to generate Pycharm configuration and exclude directory
- Support docker alpha+beta
- Limit memory execution when install in develop
- Template nginx configuration
- Script code count statistic
- Script show OCA evolution module statistic
- Windows development support, check documentation installation
- New project (code generator to create module) support params configuration
- Module sync_external_model to synchronise Odoo models with module
<!-- [fr] -->
- Support d'Ubuntu 22.04 avec script d'installation
- Module mail_history et fetchmail_thread_default dans l'image DB de base
- Le Makefile peut générer l'image DB en parallèle avec `image_db_create_all_parallel`
- Le Makefile peut exécuter tous les code_generator avec `run_parallel_cg` et `run_parallel_cg_template`
- Script pour générer la configuration PyCharm et exclure les répertoires
- Support docker alpha+beta
- Limitation de la mémoire d'exécution lors de l'installation en développement
- Template de configuration nginx
- Script de statistiques de comptage de code
- Script montrant l'évolution des modules OCA
- Support du développement Windows, consulter la documentation d'installation
- Nouveau projet (code generator pour créer un module) supporte la configuration par paramètres
- Module sync_external_model pour synchroniser les modèles Odoo avec un module
<!-- [en] -->
## Changed
<!-- [fr] -->
## Modifié
<!-- [en] -->
- Odoo 12.0 update from 22-07-2020 to 01-01-2023
- Update pip dependency with security update
- Pillow==9.3.0
- psycopg2==2.9.5
- Werkzeug==0.16.1
- check diff of file pyproject.toml for all information
- Update to Python==3.7.16
- Update poetry==1.3.1
- Update multilingual-markdown==1.0.3
- Update imagedb with all Odoo update
- Repo documentation-user from Odoo change to documentation
- Repo odooaktiv/QuotationRevision is deleted
- Update all repo (91) to end of 2022
- Rename module project_task_subtask_time_range => project_time_budget
- Rename module project_task_time_range => project_time_range
- Refactor script emplacement, create directory in ./script/ per subject
- Use command parallel in Makefile
- Update sphinx version
- Improve script location
<!-- [fr] -->
- Mise à jour Odoo 12.0 du 22-07-2020 au 01-01-2023
- Mise à jour des dépendances pip avec correctif de sécurité
- Pillow==9.3.0
- psycopg2==2.9.5
- Werkzeug==0.16.1
- vérifier le diff du fichier pyproject.toml pour toutes les informations
- Mise à jour vers Python==3.7.16
- Mise à jour poetry==1.3.1
- Mise à jour multilingual-markdown==1.0.3
- Mise à jour imagedb avec toutes les mises à jour Odoo
- Le dépôt documentation-user d'Odoo change pour documentation
- Le dépôt odooaktiv/QuotationRevision est supprimé
- Mise à jour de tous les dépôts (91) à fin 2022
- Renommage du module project_task_subtask_time_range => project_time_budget
- Renommage du module project_task_time_range => project_time_range
- Refactorisation de l'emplacement des scripts, création de répertoires dans ./script/ par sujet
- Utilisation de la commande parallel dans le Makefile
- Mise à jour de la version sphinx
- Amélioration de l'emplacement des scripts
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Debian 11 installation script
- Test result
- OSX installation (not finish to support)
- Poetry update support '~='
<!-- [fr] -->
- Script d'installation Debian 11
- Résultats de tests
- Installation OSX (support non terminé)
- La mise à jour de Poetry supporte '~='
<!-- [en] -->
### Removed
<!-- [fr] -->
### Supprimé
<!-- [en] -->
- Ubuntu 18.04 is broken, need to install manually nodejs and npm
- Module contract_portal and remove signature in portal contract, need an update
- Downgrade module helpdesk_mgmt to remove email team and tracking field
- Module helpdesk_partner
- Module helpdesk_service_call
- Module helpdesk_supplier
- Module helpdesk_mrp
- Module helpdesk_mailing_list
- Module helpdesk_join_team
- Module project_time_management
- Support of vatnumber, too old
- Deprecated python dependency like pycrypto
<!-- [fr] -->
- Ubuntu 18.04 est cassé, besoin d'installer manuellement nodejs et npm
- Module contract_portal et suppression de la signature dans le portail de contrat, nécessite une mise à jour
- Rétrogradation du module helpdesk_mgmt pour supprimer l'équipe email et le champ de suivi
- Module helpdesk_partner
- Module helpdesk_service_call
- Module helpdesk_supplier
- Module helpdesk_mrp
- Module helpdesk_mailing_list
- Module helpdesk_join_team
- Module project_time_management
- Support de vatnumber, trop ancien
- Dépendances Python dépréciées comme pycrypto
<!-- [common] -->
## [1.4.0] - 2022-10-05
<!-- [en] -->
**Migration note**
- Update module `website`,`website_form_builder`.
- For dev, run `poetry cache clear --all pypi`
<!-- [fr] -->
**Note de migration**
- Mettre à jour les modules `website`,`website_form_builder`.
- Pour le développement, exécuter `poetry cache clear --all pypi`
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Script run_parallel_test.sh to execute all tests in parallel for better execution speed
- Documentation to use docker in production
- Add repo:
- Ajepe odoo-addons to support restful
- OmniaGIT Odoo PLM
- MathBenTech family-management
- erplibre-3D-printing-addons
- Add module:
- iohub_connector to support mqtt
- website_snippet_all to install all snippets, extracted from all themes
- website_blog_snippet_all to install website_snippet_all with website_blog and associated snippet
- sinerkia_jitsi_meet to integrate Jitsi
- erplibre_website_snippets_jitsi to integrate Jitsi in snippet, work in progress
- Add module by default:
- auto_backup
- muk_website_branding
- website_snippet_anchor
- website_anchor_smooth_scroll
- crm_team_quebec
- partner_no_vat
- Documentation Odoo dev
- Format command supported addons
- Install theme with Odoo command
- Script to install theme addons
- Image website with default theme
- Image erplibre demo
- Test with coverage
<!-- [fr] -->
- Script run_parallel_test.sh pour exécuter tous les tests en parallèle pour une meilleure vitesse d'exécution
- Documentation pour utiliser Docker en production
- Ajout de dépôts :
- Ajepe odoo-addons pour supporter restful
- OmniaGIT Odoo PLM
- MathBenTech family-management
- erplibre-3D-printing-addons
- Ajout de modules :
- iohub_connector pour supporter mqtt
- website_snippet_all pour installer tous les snippets, extraits de tous les thèmes
- website_blog_snippet_all pour installer website_snippet_all avec website_blog et les snippets associés
- sinerkia_jitsi_meet pour intégrer Jitsi
- erplibre_website_snippets_jitsi pour intégrer Jitsi dans les snippets, travail en cours
- Ajout de modules par défaut :
- auto_backup
- muk_website_branding
- website_snippet_anchor
- website_anchor_smooth_scroll
- crm_team_quebec
- partner_no_vat
- Documentation Odoo dev
- Commande de formatage pour les addons supportés
- Installation de thème avec la commande Odoo
- Script pour installer les addons de thème
- Image du site web avec thème par défaut
- Image démo erplibre
- Tests avec couverture
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Downgrade sphinx to 1.6.7 to support Odoo dev documentation
- Update to poetry==1.1.14
- Update pip dependency with security update
- Pillow==9.0.1
- PyPDF2==1.27.8
- lxml==4.9.1
- Code generator export website with attachments and scss design file with documentation
- Code generator support multiple snippets
- Into repo Numigi_odoo-project-addons rename module project_template to project_template_numigi
- Into repo Numigi_odoo-product-addons rename module product_dimension to product_dimension_numigi
- Into repo Numigi_odoo-partner-addons, re-enable auto-install module
- Into repo muk-it_muk_website, re-enable auto-install module
<!-- [fr] -->
- Rétrogradation de sphinx à 1.6.7 pour supporter la documentation Odoo dev
- Mise à jour vers poetry==1.1.14
- Mise à jour des dépendances pip avec correctif de sécurité
- Pillow==9.0.1
- PyPDF2==1.27.8
- lxml==4.9.1
- Le code generator exporte le site web avec les pièces jointes et le fichier de design scss avec documentation
- Le code generator supporte les snippets multiples
- Dans le dépôt Numigi_odoo-project-addons, renommage du module project_template en project_template_numigi
- Dans le dépôt Numigi_odoo-product-addons, renommage du module product_dimension en product_dimension_numigi
- Dans le dépôt Numigi_odoo-partner-addons, réactivation du module auto-install
- Dans le dépôt muk-it_muk_website, réactivation du module auto-install
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Poetry supports insensitive python dependency
- Code generator new project supports relative path and check duplicated paths
- Muk web theme table header background-color and on hover for Many2many
- Script docker-compose use lowercase name
- website_form_builder HTML support and allow option to align send button
- Odoo cherry-pick 2 commits bus fix
- Minor fix css color into module hr_theme from repo CybroOdoo_OpenHRMS
- Typo in project task when logging time
<!-- [fr] -->
- Poetry supporte les dépendances Python insensibles à la casse
- Le nouveau projet du code generator supporte les chemins relatifs et vérifie les chemins dupliqués
- Couleur d'arrière-plan de l'en-tête de tableau du thème web Muk et survol pour Many2many
- Le script docker-compose utilise des noms en minuscules
- website_form_builder support HTML et option pour aligner le bouton d'envoi
- Cherry-pick Odoo de 2 commits correctif bus
- Correction mineure de couleur CSS dans le module hr_theme du dépôt CybroOdoo_OpenHRMS
- Faute de frappe dans la tâche de projet lors de la saisie du temps
<!-- [en] -->
### Removed
<!-- [fr] -->
### Supprimé
<!-- [en] -->
- Module package erplibre from ERPLibre_erplibre_addons and use instead image creation, check Makefile
<!-- [fr] -->
- Paquet de module erplibre de ERPLibre_erplibre_addons, utiliser à la place la création d'image, voir le Makefile
<!-- [common] -->
## [1.3.0] - 2022-01-25
<!-- [en] -->
**Migration note**
With new version of poetry, a bug occurs in the update. The solution is to delete the directory to let it
recreate. `rm -rf ~/.poetry`
<!-- [fr] -->
**Note de migration**
Avec la nouvelle version de poetry, un bogue survient lors de la mise à jour. La solution est de supprimer le répertoire pour le laisser
se recréer. `rm -rf ~/.poetry`
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Code generator supports view : activity, calendar, diagram, form, graph, kanban, pivot, search, timeline and tree
- Code generator supports portal view field and form creation
- Code generator generates generic snippets for demo_portal
- Code generator generates code_generator with code_generator_code_generator
- Code generator tests mariadb migrator
- Code generator supports javascript interpretation for snippet
- Code generator supports inheritance
- Code generator new project to create the suite of generation code
- Script to test the generation of module `code_generator`
- Make test_full_fast to run all test in parallel
- Module `web_timeline` and `web_diagram_position` in base image.
- Module `odoo-formio` from novacode-nl
- Module `design_themes` from Odoo
- Format python header with isort
<!-- [fr] -->
- Le code generator supporte les vues : activity, calendar, diagram, form, graph, kanban, pivot, search, timeline et tree
- Le code generator supporte la création de champs de vue portail et de formulaires
- Le code generator génère des snippets génériques pour demo_portal
- Le code generator génère code_generator avec code_generator_code_generator
- Le code generator teste le migrateur mariadb
- Le code generator supporte l'interprétation javascript pour les snippets
- Le code generator supporte l'héritage
- Nouveau projet du code generator pour créer la suite de génération de code
- Script pour tester la génération du module `code_generator`
- Make test_full_fast pour exécuter tous les tests en parallèle
- Module `web_timeline` et `web_diagram_position` dans l'image de base.
- Module `odoo-formio` de novacode-nl
- Module `design_themes` d'Odoo
- Formatage de l'en-tête Python avec isort
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Update to Python==3.7.12
- Update to poetry==1.1.12
- Update pip dependency with security update
- Pillow==9.0.0
- lxml==4.7.1
- babel==2.9.1
- pyyaml==6.0
- reportlab==3.6.5
- Web diagram module has all color of the rainbow in option
- Refactor and simplify code of code_generator, better support of code reader
<!-- [fr] -->
- Mise à jour vers Python==3.7.12
- Mise à jour vers poetry==1.1.12
- Mise à jour des dépendances pip avec correctif de sécurité
- Pillow==9.0.0
- lxml==4.7.1
- babel==2.9.1
- pyyaml==6.0
- reportlab==3.6.5
- Le module web diagram a toutes les couleurs de l'arc-en-ciel en option
- Refactorisation et simplification du code du code_generator, meilleur support du lecteur de code
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Downgrade Werkzeug==0.11.15, only this version is supported by Odoo 12.0. This fixes some http request behind a proxy.
<!-- [fr] -->
- Rétrogradation Werkzeug==0.11.15, seule cette version est supportée par Odoo 12.0. Cela corrige certaines requêtes HTTP derrière un proxy.
<!-- [common] -->
## [1.2.1] - 2021-09-28
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- doc/migration.md
<!-- [fr] -->
- doc/migration.md
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Update pip dependency with security update
- Jinja2==2.11.3
- lxml==4.6.3
- cryptography==3.4.8
- psutil==5.6.6
- Pillow==8.3.2
- Werkzeug==0.15.3
- Script separate generate_config.sh from install_locally.sh
- Improve developer documentation
- More Docker script
<!-- [fr] -->
- Mise à jour des dépendances pip avec correctif de sécurité
- Jinja2==2.11.3
- lxml==4.6.3
- cryptography==3.4.8
- psutil==5.6.6
- Pillow==8.3.2
- Werkzeug==0.15.3
- Séparation du script generate_config.sh de install_locally.sh
- Amélioration de la documentation développeur
- Plus de scripts Docker
<!-- [en] -->
#### Code generator
<!-- [fr] -->
#### Code generator
<!-- [en] -->
- Improve db_servers generation code
- Improve wizard generate UI menu
<!-- [fr] -->
- Amélioration du code de génération db_servers
- Amélioration du menu UI de l'assistant de génération
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Mobile view menu item in Web interface from muk_web_theme
<!-- [fr] -->
- Élément de menu vue mobile dans l'interface Web de muk_web_theme
<!-- [common] -->
## [1.2.0] - 2021-07-21
<!-- [en] -->
**Migration note**
Because addons repository has change, config file need to be updated.
- When upgrading to version 1.2.0:
- From docker
- Clone project if only download docker-compose
<!-- [fr] -->
**Note de migration**
Parce que le dépôt d'addons a changé, le fichier de configuration doit être mis à jour.
- Lors de la mise à niveau vers la version 1.2.0 :
- Depuis docker
- Cloner le projet si vous avez seulement téléchargé docker-compose
<!-- [common] -->
- `git init`
- `git remote add origin https://github.com/erplibre/erplibre`
- `git fetch`
- `mv ./docker-compose.yml /tmp/temp_docker-compose.yml`
- `git checkout master`
- `mv /tmp/temp_docker-compose.yml ./docker-compose.yml`
<!-- [en] -->
- Update `./docker-compose.yml` depending of difference with git.
- Run script `make docker_exec_erplibre_gen_config`
- Restart the docker `make docker_restart_daemon`
- From vanilla
- Run script `make install_dev`
- Restart your daemon
- Regenerate master password manually
<!-- [fr] -->
- Mettre à jour `./docker-compose.yml` selon les différences avec git.
- Exécuter le script `make docker_exec_erplibre_gen_config`
- Redémarrer le docker `make docker_restart_daemon`
- Depuis une installation vanilla
- Exécuter le script `make install_dev`
- Redémarrer votre daemon
- Régénérer le mot de passe maître manuellement
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Adapt script to give an execution status
- Multilingual markdown
- Guide to use Cloudflare with DDNS
- Script to check git diff and ignore date
- Repo with ERPLibre image
- Improve git repo usage, filter repo by use case
- ERPLibre theme website of TechnoLibre
- ERPLibre website snippet
- Basic HTML snippets
- Snippet card
- Snippet timelines
- Module contract_digitized_signature with contract_portal
- Module disable auto_backup
- Odoo cli db command to manipulate restoration db
- Odoo cli i18n command to generate i18n pot files
<!-- [fr] -->
- Adaptation du script pour donner un statut d'exécution
- Markdown multilingue
- Guide pour utiliser Cloudflare avec DDNS
- Script pour vérifier le diff git et ignorer la date
- Dépôt avec l'image ERPLibre
- Amélioration de l'utilisation du dépôt git, filtrer les dépôts par cas d'utilisation
- Thème de site web ERPLibre de TechnoLibre
- Snippet de site web ERPLibre
- Snippets HTML de base
- Snippet carte
- Snippets chronologie
- Module contract_digitized_signature avec contract_portal
- Module disable auto_backup
- Commande CLI Odoo db pour manipuler la restauration de base de données
- Commande CLI Odoo i18n pour générer les fichiers pot i18n
<!-- [en] -->
#### Makefile
<!-- [fr] -->
#### Makefile
<!-- [en] -->
- Format code
- Code generator test
- Addons installation
- OS installation
- Restore database
- Docker execution
<!-- [fr] -->
- Formatage du code
- Test du code generator
- Installation des addons
- Installation du système d'exploitation
- Restauration de base de données
- Exécution Docker
<!-- [en] -->
#### Code generator
<!-- [fr] -->
#### Code generator
<!-- [en] -->
- Code generator for Odoo module, depending of ERPLibre
- Support map geospatial
- Support i18n
- Script to transform Python and XML to Python code writer script to regenerate themselves
<!-- [fr] -->
- Code generator pour les modules Odoo, dépendant d'ERPLibre
- Support des cartes géospatiales
- Support i18n
- Script pour transformer Python et XML en script d'écriture de code Python pour se régénérer eux-mêmes
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Update Python dependency with Poetry
- Format all Python code with black
- Module auto_backup with sftp host key
- Module muk_website_branding use ERPLibre branding
- Update docs with vscode support, custom document layout, custom email template and trick to use params to share
variable
<!-- [fr] -->
- Mise à jour des dépendances Python avec Poetry
- Formatage de tout le code Python avec black
- Module auto_backup avec clé d'hôte sftp
- Le module muk_website_branding utilise le branding ERPLibre
- Mise à jour de la documentation avec le support vscode, mise en page de document personnalisée, modèle d'email personnalisé et astuce pour utiliser les paramètres de partage
de variables
<!-- [en] -->
#### Docker
<!-- [fr] -->
#### Docker
<!-- [en] -->
- Use buster python 3.7.7 image to remove pyenv
- Update Postgresql to support Postgis
- Support volume addons /ERPLibre/addons/addons
<!-- [fr] -->
- Utilisation de l'image buster python 3.7.7 pour supprimer pyenv
- Mise à jour de PostgreSQL pour supporter PostGIS
- Support du volume addons /ERPLibre/addons/addons
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Ubuntu installation
- Poetry installation
- Geospatial with postgis can be installed
<!-- [fr] -->
- Installation Ubuntu
- Installation de Poetry
- Le géospatial avec PostGIS peut être installé
<!-- [common] -->
## [1.1.1] - 2020-12-11
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Developer, test, migration and user documentation
- Branding ERPLibre with muk_branding
- Uninstall module from parameter Odoo
- Makefile to generate ERPLibre documentation WIP
- Docker support volume on /etc/odoo
- Docker support update database
<!-- [fr] -->
- Documentation développeur, test, migration et utilisateur
- Branding ERPLibre avec muk_branding
- Désinstallation de module depuis les paramètres Odoo
- Makefile pour générer la documentation ERPLibre (travail en cours)
- Support Docker du volume sur /etc/odoo
- Support Docker de la mise à jour de base de données
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Better documentation on how to use ERPLibre and release
- Support wkhtmltox_0.12.6-1
<!-- [fr] -->
- Meilleure documentation sur l'utilisation d'ERPLibre et les versions
- Support de wkhtmltox_0.12.6-1
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- db_backup to accept public host key on sftp
- Docker dependency
- Freeze poetry version 1.0.10
<!-- [fr] -->
- db_backup pour accepter la clé d'hôte publique sur sftp
- Dépendances Docker
- Gel de la version poetry 1.0.10
<!-- [common] -->
## [1.1.0] - 2020-09-30
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Docker
- Pyenv to manage python version
- Poetry to manage python dependencies
- Script poetry_update to search all dependencies in addons
- Travis CI WIP
- TODO.md
- Guide to update all repositories with community
- Update manifest
- Add missing OCA repos
- Add medical, property management and more
- Add cloud/saas repo
<!-- [fr] -->
- Docker
- Pyenv pour gérer les versions Python
- Poetry pour gérer les dépendances Python
- Script poetry_update pour rechercher toutes les dépendances dans les addons
- Travis CI (travail en cours)
- TODO.md
- Guide pour mettre à jour tous les dépôts avec la communauté
- Mise à jour du manifeste
- Ajout des dépôts OCA manquants
- Ajout de médical, gestion immobilière et plus
- Ajout du dépôt cloud/saas
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Update to Odoo Community 12.0 and all addons
- Rename venv to .venv
- More documentation on how to use ERPLibre
<!-- [fr] -->
- Mise à jour vers Odoo Community 12.0 et tous les addons
- Renommage de venv en .venv
- Plus de documentation sur l'utilisation d'ERPLibre
<!-- [common] -->
## [1.0.1] - 2020-07-14
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Improved documentation with development and production environment
- Improved documentation with git repo
- Move default.xml manifest to root, the default location
- Support default.staged.xml to update prod with dev
- Feature to show diff between manifests or between repo of different manifests
- Update manifest
- Muk theme in erplibre_base
- Add draft account invoice approbation in portal
- New module sale_fix_update_price_unit_when_update_qty
- New module account_invoice_approbation
- New module sale_margin_editor
<!-- [fr] -->
- Amélioration de la documentation avec l'environnement de développement et de production
- Amélioration de la documentation avec le dépôt git
- Déplacement du manifeste default.xml à la racine, l'emplacement par défaut
- Support de default.staged.xml pour mettre à jour la prod avec le dev
- Fonctionnalité pour afficher le diff entre les manifestes ou entre les dépôts de différents manifestes
- Mise à jour du manifeste
- Thème Muk dans erplibre_base
- Ajout du brouillon d'approbation de facture dans le portail
- Nouveau module sale_fix_update_price_unit_when_update_qty
- Nouveau module account_invoice_approbation
- Nouveau module sale_margin_editor
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Production installation with git_repo
<!-- [fr] -->
- Installation de production avec git_repo
<!-- [common] -->
## [1.0.0] - 2020-07-04
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Environment of development, discovery and production with documentation and script.
- Google git-repo to support addons repository instead of using Git submodule.
<!-- [fr] -->
- Environnement de développement, découverte et production avec documentation et scripts.
- Google git-repo pour supporter le dépôt d'addons au lieu d'utiliser les sous-modules Git.
<!-- [en] -->
### Removed
<!-- [fr] -->
### Supprimé
<!-- [en] -->
- Git submodule
<!-- [fr] -->
- Sous-modules Git
<!-- [common] -->
## [0.1.1] - 2020-04-28
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Support helpdesk supplier, helper, employee and services
- Support [SanteLibre.ca](https://santelibre.ca) with MRP, website, hr, ecommerce
- Donation module with thermometer for website
- Script to fork project and all repos in submodule to create ERPLibre
<!-- [fr] -->
- Support du helpdesk fournisseur, assistant, employé et services
- Support de [SanteLibre.ca](https://santelibre.ca) avec MRP, site web, RH, commerce en ligne
- Module de don avec thermomètre pour le site web
- Script pour forker le projet et tous les dépôts en sous-module pour créer ERPLibre
<!-- [common] -->
## [0.1.0] - 2020-04-20
<!-- [en] -->
### Added
<!-- [fr] -->
### Ajouté
<!-- [en] -->
- Move project from https://github.com/mathbentech/InstallScript to ERPLibre.
- Support of Odoo Community 12.0 2019-11-19 94bcbc92e5e5a6fd3de7267e3c01f8c11fb045f4.
<!-- [fr] -->
- Déplacement du projet de https://github.com/mathbentech/InstallScript vers ERPLibre.
- Support d'Odoo Community 12.0 2019-11-19 94bcbc92e5e5a6fd3de7267e3c01f8c11fb045f4.
<!-- [en] -->
### Changed
<!-- [fr] -->
### Modifié
<!-- [en] -->
- Support scrummer, project, sale, website, helpdesk and hr
- Support Nginx and improve installation
<!-- [fr] -->
- Support de scrummer, projet, vente, site web, helpdesk et RH
- Support de Nginx et amélioration de l'installation
<!-- [en] -->
### Fixed
<!-- [fr] -->
### Corrigé
<!-- [en] -->
- Support only python3.6 and python3.7, python3.8 causes error in runtime.
<!-- [fr] -->
- Support uniquement de python3.6 et python3.7, python3.8 cause des erreurs à l'exécution.
<!-- [common] -->
[Unreleased]: https://github.com/ERPLibre/ERPLibre/compare/v1.6.0...HEAD
[1.6.0]: https://github.com/ERPLibre/ERPLibre/compare/v1.5.0...v1.6.0
[1.5.0]: https://github.com/ERPLibre/ERPLibre/compare/v1.4.0...v1.5.0
[1.4.0]: https://github.com/ERPLibre/ERPLibre/compare/v1.3.0...v1.4.0
[1.3.0]: https://github.com/ERPLibre/ERPLibre/compare/v1.2.1...v1.3.0
[1.2.1]: https://github.com/ERPLibre/ERPLibre/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/ERPLibre/ERPLibre/compare/v1.1.1...v1.2.0
[1.1.1]: https://github.com/ERPLibre/ERPLibre/compare/v1.0.1...v1.1.1
[1.1.0]: https://github.com/ERPLibre/ERPLibre/compare/v1.0.1...v1.1.0
[1.0.1]: https://github.com/ERPLibre/ERPLibre/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/ERPLibre/ERPLibre/compare/v0.1.1...v1.0.0
[0.1.1]: https://github.com/ERPLibre/ERPLibre/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/ERPLibre/ERPLibre/releases/tag/v0.1.0