erplibre/CHANGELOG.md
Mathieu Benoit 03d40ee9d0 [UPD] changelog : résumer le non-publié, une ligne par sujet
La section portait 152 puces par langue, souvent d'un paragraphe chacune :
illisible pour qui décide s'il met à jour, et un changelog se lit pour
décider, non pour relire un diff. Elle en porte 39, d'une ligne, regroupées
par sujet pour qu'aucun thème ne disparaisse — les 24 puces sur les VM QEMU
tiennent en cinq lignes, les 14 correctifs d'installation en une. Le détail
part volontairement ; il reste dans les commits. Restent la liste des
distributions, qu'un lecteur y cherche la sienne, et les chiffres qui bornent
en trois mots. Vérifié : parité 17/8/10/2/2 dans les deux langues.

--- EN ---

The section carried 152 entries per language, often a paragraph each:
unreadable for someone deciding whether to upgrade, and a changelog is read
to decide, not to review a diff. It now carries 39, one line each, grouped by
subject so no theme disappears — the 24 entries on QEMU VMs fit in five
lines, the 14 installation fixes in one. The detail goes deliberately; it
stays in the commits. What stays is the distribution list, so a reader can
look for their own, and the figures that bound a fix in three words.
Checked: 17/8/10/2/2 parity in both languages.

Assisted-by: Claude Opus 5
2026-09-04 05:40:13 -04:00

23 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog. This project adheres to Semantic Versioning.

Unreleased

Added

  • Deploy ERPLibre VMs with QEMU/KVM from cloud images: Ubuntu, Debian, Fedora, AlmaLinux, Rocky, openSUSE, Arch, Linux Mint, and Debian on s390x. Hardware, branch and Odoo version are set per machine
  • Proxmox VE as a deployment target, its installation including the reboot it needs
  • A QEMU menu: network status and repair, 3D acceleration, a diagnostic report, file recovery from a VM that no longer boots, virt-viewer and a remote desktop tunnel
  • An install dashboard and Textual forms: deploy, follow, update, restart or delete a VM without leaving the screen
  • A mobile development VM: PyCharm, Android Studio, an Android emulator and an adb tunnel
  • A VPN tool, five free technologies from the menu, the secrets in a KeePassXC vault and a diagnosis that names the failing stage
  • Automated Odoo migration: the tool drives the whole run, goes back to a step, and repairs what a version bump leaves behind
  • Migration review: a verdict per step, smoke tests on every public URL, and a filestore check
  • A read-only analysis toolkit for an Odoo database, a backup zip included, with PostgreSQL index advice
  • Anonymising a production copy without AI, and duplicating a database neutralised for good
  • Development assistants installed inside a VM, and a Git and Shell menu that installs what a checkout needs
  • A writing convention for what stays in git, held by a pre-commit and a commit-msg hook
  • long_test/ — tests that create real machines, nested QEMU and Proxmox included, kept out of the unit runner
  • NTFY, Forgejo, a local git server, e-mail from the CLI, and SSH configuration with recursive ProxyJump
  • The Python interpreter and the package installer are chosen, through EL_PYTHON_PROVIDER and EL_PIP_PROVIDER
  • The OCA generative AI policy, Claude Code agents and commands, and the context an assistant is given, shown from the menu
  • Unit tests with a bilingual test plan, navigation telemetry for TODO, and Odoo 18 reading STL files

Changed

  • todo.py split into nine files, one per subject, with a shared base per form
  • Every menu entry carries an icon, the menus are grouped into sections, and a countdown prompt gives 15 seconds to decide
  • Branch, profile, type and timezone are chosen per VM rather than globally
  • Installation covers Fedora, Debian, Ubuntu, Arch and openSUSE; repository sync and Poetry run in parallel, quiet unless EL_VERBOSE asks
  • Node.js 22 for Capacitor 8, flanker for Odoo 18, CybroOdoo extras opt-in, and a Poetry dependency declinable per architecture
  • A VM boots faster and picks the fastest reachable mirror, Canadian pacman mirrors coming first on Arch
  • Staging names the files, never git add -A
  • Enter targets the highest supported Odoo version, and a VM name drops the latest segment

Fixed

  • The libvirt network no longer counts as its own collision, no longer leaves a host without network at the next boot, and its state is read in English whatever the locale
  • QEMU deployment: sudo says why it needs a password, the libvirt group replaces it where it suffices, no host reboots unasked, and an orphan disk no longer blocks a creation
  • Migration: the database drop, the account.root view Odoo 17 leaves behind, the pricelists a repair invented, and the assumptions the 13-to-18 run rested on
  • Anonymisation respects what a value means, and no longer breaks past the 131 072-byte limit of a single argument
  • Installation on Debian 13, Fedora, Ubuntu 26.04 and s390x: apt locks, missing compilers and headers, too little memory, and what a recent SWIG or PROJ needs
  • Secrets: the KeePassXC vault opens on a server without tkinter, the forgejo installer stops echoing the password it set, and db_restore validates the master one
  • A question is seen before it is answered, and one faulty repository no longer takes a whole batch down
  • Three screens that fell over, a shrink that would have filled the disk, and a monitor that binned a VM before being sure
  • The unit runner globs the whole directory, where it ran 1131 tests of 3703
  • Proxmox no longer aims at the host instead of the VM

Removed

  • Ubuntu 20.04 and 22.04 support, on every architecture
  • The residue check that called a language broken when its active is NULL

Security

  • Passwords and tokens are redacted before a command is displayed, logged or reprinted
  • The Odoo master password and the KeePass one leave the command line, an environment variable carrying them instead

1.7.0 - 2026-03-11

Migration notes

Recreating the virtual environment, use installation guide from tool make.

Added

  • Odoo 12.0 to 18.0 in a single workspace, switched without reinstalling: the manifests, the configuration and the addons paths follow the version named in .odoo-version
  • ERPLibre's Python separated from Odoo's — .venv.erplibre carries the repository's own tools, .venv.odoo<version> the server — so a tool of the repository no longer depends on the interpreter a given Odoo version imposes
  • Auto-installation driven from TODO: the menu lays down the environment it needs, Poetry, the Google Repo manifests and the addons included, rather than printing a command to retype
  • Migration of an Odoo database and its modules from TODO, --neutralize included, with the repair of the mail module that a move from PostgreSQL 17 to 18 leaves behind
  • A hardening script for the installation
  • The ERPLibre Home mobile application: TODO compiles it, deploys it, renames the software and changes its menu image
  • The RobotLibre code generator, with the queue_job channels its configuration needs
  • ERPLibre DevOps, and the automation procedure it describes
  • The Selenium grid from selenium_lib.py: a KeePass vault opened for the run, file downloads, dark mode, video recording and a scenario library
  • A performance script measuring the requests per second a website answers
  • Deployment: Cloudflare DNS, nginx with a non-interactive certbot, Apache templates matching the nginx ones, and a systemd unit whose working directory is configurable
  • The s390x mainframe architecture
  • Addons OnlyOffice, Cetmix, OCA automation, OCA shopfloor, and the design-themes repository
  • Database backup and erase commands, and a clearer restore naming
  • A security check of the Python environment, from the menu
  • TODO shows the documentation, downloads a database and helps with code formatting
  • Killing an Odoo process by the port it holds, from the menu
  • CLAUDE.md and the agent information document, so an assistant reads the repository's conventions instead of guessing them
  • A FAQ entry on wkhtmltopdf for recent distributions

Changed

  • Odoo 18.0 becomes the default version of a checkout
  • Docker moves to PostgreSQL 18, with the matching client
  • The documentation is bilingual, generated by mmg from the .base.md sources: a .md or .fr.md edited directly is lost at the next generation
  • The TODO menus are grouped into sections, and the English text serves as the i18n key rather than a code of its own
  • The formatting script looks for the changed files in every repository, hidden addons included, and skips a repository that is not installed
  • Odoo runs on a custom database, and the menu configures queue_job as well as the SSH forwarding a remote instance needs
  • Killing a process by port asks before acting, through an interactive menu
  • Neutralising a database goes through Odoo's own --neutralize
  • LinuxMint 22.3, Ubuntu 25.10, and macOS without Python 3.7
  • Odoo 18 dependencies: tldextract, PyYAML, pdfminer.six, and cryptography at its latest version
  • A make target runs the unit tests
  • The Makefile is split: its commands live in conf/, and Common.Makefile extends it for a project of one's own

Fixed

  • The documentation accents, and the markdown generation running in parallel
  • git_tool returns nothing instead of raising where .git is absent
  • poetry iscompatible no longer crashes on a version carrying a letter, an alpha or a release candidate
  • pymssql compiles again, and the Odoo 18 requirements leave pyssql out of a production install
  • wkhtmltopdf is no longer offered where it does not exist: no package is published for s390x on Ubuntu 25.10
  • Selenium: the snap Firefox path, a 60-second timeout when reaching for an element, execution in a private window, and a login that waits for Odoo 18
  • The formatting script ignores the files and directories it must not touch
  • db_drop_all runs its shell command, and the backup processing keeps the permissions of what it writes
  • TODO: the first import, the regeneration of .repo/local_manifests, the database open dialog, and a missing Odoo version reported instead of a crash
  • The code generator: creating a project, extracting a class carrying a selection, and reading a model through the Python 3.11 ast module rather than astor
  • Docker: the duplicated Odoo 18 build target, and the compose file pinned to an image that works

1.6.0 - 2025-04-25

Added

  • 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

Changed

  • 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

Fixed

  • 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

1.5.0 - 2023-07-07

Migration notes

Recreating the virtual environment

rm -rf ~/.poetry
rm -rf ~/.pyenv

rm ./get-poetry.py
rm -rf ./.venv

make install

Do a backup of your database and update all modules :

./run.sh --no-http --stop-after-init -d DATABASE -u all

Added

  • 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

Changed

  • 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

Fixed

  • Debian 11 installation script
  • Test result
  • OSX installation (not finish to support)
  • Poetry update support '~='

Removed

  • 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

1.4.0 - 2022-10-05

Migration note

  • Update module website,website_form_builder.
  • For dev, run poetry cache clear --all pypi

Added

  • 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

Changed

  • 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

Fixed

  • 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

Removed

  • Module package erplibre from ERPLibre_erplibre_addons and use instead image creation, check Makefile

1.3.0 - 2022-01-25

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

Added

  • 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

Changed

  • 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

Fixed

  • Downgrade Werkzeug==0.11.15, only this version is supported by Odoo 12.0. This fixes some http request behind a proxy.

1.2.1 - 2021-09-28

Added

  • doc/migration.md

Changed

  • 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

Code generator

  • Improve db_servers generation code
  • Improve wizard generate UI menu

Fixed

  • Mobile view menu item in Web interface from muk_web_theme

1.2.0 - 2021-07-21

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
        • 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
      • 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

Added

  • 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

Makefile

  • Format code
  • Code generator test
  • Addons installation
  • OS installation
  • Restore database
  • Docker execution

Code generator

  • 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

Changed

  • 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

Docker

  • Use buster python 3.7.7 image to remove pyenv
  • Update Postgresql to support Postgis
  • Support volume addons /ERPLibre/addons/addons

Fixed

  • Ubuntu installation
  • Poetry installation
  • Geospatial with postgis can be installed

1.1.1 - 2020-12-11

Added

  • 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

Changed

  • Better documentation on how to use ERPLibre and release
  • Support wkhtmltox_0.12.6-1

Fixed

  • db_backup to accept public host key on sftp
  • Docker dependency
  • Freeze poetry version 1.0.10

1.1.0 - 2020-09-30

Added

  • 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

Changed

  • Update to Odoo Community 12.0 and all addons
  • Rename venv to .venv
  • More documentation on how to use ERPLibre

1.0.1 - 2020-07-14

Added

  • 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

Fixed

  • Production installation with git_repo

1.0.0 - 2020-07-04

Added

  • Environment of development, discovery and production with documentation and script.
  • Google git-repo to support addons repository instead of using Git submodule.

Removed

  • Git submodule

0.1.1 - 2020-04-28

Added

  • Support helpdesk supplier, helper, employee and services
  • Support 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

0.1.0 - 2020-04-20

Added

Changed

  • Support scrummer, project, sale, website, helpdesk and hr
  • Support Nginx and improve installation

Fixed

  • Support only python3.6 and python3.7, python3.8 causes error in runtime.