Changelog
Release 0.6.4 (2026-07-09)
Added
- New command
odood repo ensure-changelogthat checks changed addons carry a changelog entry for their version bump. Intended as a CI gate feeding the release changelog pipeline. - New options
--server-user-uidand--server-user-gidforodood deploy, to create the Odoo system user with a fixed UID/GID. Intended for container builds that need a deterministic UID matching the runtimesecurityContext. - New commands
odood assembly add-addonandodood assembly add-sourceto edit the assembly spec without hand-editingodood-assembly.yml. - New
odood testoptions--script-after-installand--script-after-migrationto run.py/.sqlscripts during a test run (e.g. seed data before a migration test). - New command
odood addons where <name>to locate an addon and report whether it is available odood addons list --tablenow accepts computed-ffields in addition to manifest fields:source(odoo-core/custom-repo/downloads),repo(owning repository), andlinked(whether linked intocustom_addons).odood addons list --jsonoutputs the addon catalog as JSON honoring the same filters.- New command
odood repo listlisting the project’s git repositories
Changed
-
Git URLs are now credential-stripped by default when displayed, logged, or serialized.
-
odood script pyandodood script sqlnow accept a script name (not only a path), resolved against<repo>/.odood-scripts/,<project>/scripts/, or an absolute path. -
Docker images now build the Odoo system user with a fixed UID/GID 999. This allows images to run under Kubernetes/Helm with a non-root
securityContext. 999 is the top of the system range.⚠️ Migration required for existing docker-compose /
docker runsetups with a persistent/opt/odoo/data(or/opt/odoo/backups) volume.The persisted filestore is still owned by the old UID, so the new process (UID 999) gets permission denied on the filestore and sessions. Before upgrading, re-own the volume(s) to
999:999while the stack is stopped:docker compose down docker run --rm -v <odoo-data-volume>:/data alpine chown -R 999:999 /data # repeat for the backups volume if you mount one docker compose pull && docker compose up -dFor bind mounts, run
sudo chown -R 999:999 <host-data-dir>instead. Fresh deployments and the PostgreSQL database are not affected.
Fixed
odood test --migrationnow correctly handles new addon dependencies during migration tests. For example, in case, when we added new addon in repo and make one of existing addons depend on it.- Checking whether a non-existent path is a git repository no longer crashes with a process error — it now correctly reports “not a repository”.
- Unparseable git URLs now raise a proper “Cannot parse git url” error instead of crashing with a low-level array error.
Release 0.6.3 (2026-06-08)
Added
- Support for
--test-tagoption forodood testcommand - Experimental
odood repo releasecommand, that could automatically tag repo and generate changelogs. - Experimental
odood repo hotfixcommand, that could be used to manage hotfixes of repositories. - Experimental
odood assembly upgrade-sourcescommand, that allows to bump pinned releases on repository. - Experimental
odood test --migration-last-releaseoption, that allows to test repo migration against latest release. - Added option
odood db backup --nicethat allows to lower cpu priority of backup task
Changed
- Switched to DarkCommand CLI lib:
- better autocomplete (file paths when needed)
- better automatic documentation (CLI Ref)
- Updated default pre-commit configs.
You can apply it to your repo with
odood pre-commit init -f, but review introduced changes before committing, because this command overwrites pre-commit configs.
Fixed
- Run
msguniqbeforemsgmergewhen regenerating translations, because AI too frequently generates duplicate translations andmsgmergefails - Use
data_dirfromodoo.conffor backup/restore to ensure backups are correct whendata_dirchanged to non-standard location. Before fix, it was required to modify data dir on both places:odood.ymlandodoo.conf
Release 0.6.2 (2026-05-09)
Added
- Added new documentation on assembly spec
- Updated assembly documentation with more examples
Fixed
- Correct handling of
no-searchparam on assembly spec.
Release 0.6.1 (2026-04-20)
Added
- Batch Python requirements installation: when linking addons (via
odood addons link,odood assembly link, orodood venv reinstall), all Python requirements are now gathered and installed in a singlepip installcall instead of one call per addon. This improves performance and lets pip resolve the full dependency tree at once.- New flag
--individual-requirementsforodood addons linkandodood assembly linkto fall back to per-addon installation (old behavior). - New flag
--with-odoo-requirementsforodood addons linkandodood assembly linkto include Odoo’s ownrequirements.txtin the batch install.
- New flag
- Assembly requirements lock file support: if
requirements.lock.txtexists in the assembly root,odood assembly linkinstalls only from that file and skips per-addon requirement scanning. This gives assembly maintainers full control over the Python dependency tree for reproducible deployments.- New flag
--generate-lockforodood assembly syncto generate the lock file after syncing (runspip freezeto produce pinned versions). - New flag
--with-odoo-requirementsforodood assembly syncto include Odoo’s requirements when generating the lock file.
- New flag
- New flag
--odoo-helper-compatforodood pre-commit initthat generates a pre-commit config compatible with odoo-helper-scripts’ default linting style (check-only — no auto-formatting). Useful for migrating projects from odoo-helper.- Added bandit security scanner hook to the default pre-commit config.
- Added
odoolintcatchall check to the default pylintrc
- Added support for commit pinning on the assembly spec
- Added
--log-to-stderrflag toodood init(mirrorsodood deploy): initialises the project without a log file so all Odoo output goes to stderr/stdout. Recommended for container deployments. - Odoo stderr is now forwarded to the caller during addon install/update and database initialisation when no logfile is configured.
- Added ability to restore backup into empty but existing database. Useful in container environments.
Changed
- Tests now use os-provided available tcp ports to run Odoo, thus it is possible to run few different tests with different databaes in parallel
odood venv reinstallnow installs all addon Python requirements in a single batched pip call instead of one per addon.- Switched to
darkarchivelib to handle archives. Thus, backups do not require temporary files anymore, and could be done in more space-eficient way.
Release 0.6.0 (2026-03-11)
Added
- Added
odood server healthcheckcommand. One step to make Odood container-friendly. - Added
odood server wait-pgcommand - Added
odood server run --wait-pgoption - Added
odood db is-initializedcommand to check if database is already initialized. - Added
odood db ensure-initializedcommand to initialize database if it is not initialized yet. - Added new options to
odood addons install--missing-only- install only addons that are not installed in specified db from the list.--ignore-unfinished-updates- do not fail on unfinished updates
- Added new options to
odood addons update--installed-only- install only addons that are not installed in specified db from the list.--ignore-unfinished-updates- do not fail on unfinished updates
- Added
--tls12-compatflag toodood deployto allow TLS 1.2 in addition to TLS 1.3 for backward compatibility with older clients. - Added
--use-system-ca-bundleflag toodood deployto setREQUESTS_CA_BUNDLEto the system CA certificate store. Auto-detects the CA bundle path across Debian/Ubuntu, RHEL/CentOS/Fedora, and openSUSE.
Changed
- Changed template for
nginxconfiguration fordeploycommand:- Added security headers
- Database manager (
/web/database) is blocked by default - Bugfixes related to nginx config generation
- Nginx SSL configuration now defaults to TLS 1.3 only with hardened cipher
suites (FIPS 140-2/3 compliant, no CBC/RC4/3DES). Use
--tls12-compatto enable TLS 1.2 with ECDHE forward secrecy ciphers. - Command
odood db listrewritten in D (no more python / lodoo call) - Commands
odood addons installandodood addons updatenow will fail if there are unfinished addon updates before running command or after. This way these commands ensures clean state of db before and after operation. - Default dockerimage’s command now waits when pg is ready before running Odoo (
odood server run --wait-pginsteand ofodood server run) - “No access rules” warnings are no longer treated as test errors. Models
that intentionally have no ACLs (e.g. sudo()-only technical models) will
no longer cause
odood testto fail.
Fixed
- Odood now will handle
db_sslmodeparameter correctly inside it’s internal database interactions
Release 0.5.5 (2026-02-25)
Added
- New command
odood venv lodoothat exposes LOdoo bundled to current project.
Fixed
- Fixed bad dependency on
cbor==5.4.2. Patch the requirements.txt during Odoo installation.
Release 0.5.4 (2026-02-06)
Added
- Assemblies:
- added support for
known-addonskey in spec - added support for assembly layout config (standard and flat)
- added support for downloading addons from Odoo Apps
- Clone/update git sources in parallel
- Added assemply spec validation before sync operation
- Added new option
--dockerfilethat allows to automatically generate Dockerfile for assembly on sync. Thus we have the way to build standard images for assemblies.
- added support for
- Added ability to pull all repositories via command
odood repo pull-all. This could be helpfull during development to pull all repos on instance. - Added command
odood pre-commit updatethat could be used to update pre-commit dependencies (in pre-commit config). Just an alias for standardpre-commit autoupdatethat is run inside correct repo dir and within correct venv. - Added option
--workerstodeploycommand
Changed
- Clean up pip cache after deploy, when docker image is built.
- Assembly, if
VERSION,Dockerfileor.dockerignorechanged, that commit of changes allowed.
Release 0.5.3 (2026-01-08)
Added
- Build docker images for ARM64 architecture
- New option to
assembly upgradecommand:--start- automatically start server if upgrade is successful and server was not running before upgrade.
- Added new option
odood assembly --assembly-paththat could be used to specify different assembly path for assembly commands. Mostly, this option could be useful for CI
Changed
- Now, when assembly contains
requirements.txtfile, it will be processed automatically before assembly link operation.
Release 0.5.2 (2025-12-23)
Added
- Added option
--starttoaddons install/update/uninstallcommand to automatically start server if it was stopped. - Added automatic generation of changelogs on
assembly syncif option--changelogspecified. If enabled, then Odood will automatically generate VERSION file for assembly repo. It could be used later to track versions of assemblies.
Changed
- Database populatation now works only for Odoo version 14-17, because starting from Odoo 18 population means duplication instead of generation.
- After backup of database completed, log message about backup completed and duration of operation.
Fixed
- Fixed bug with false-positives in when running migration tests on new addons.
Release 0.5.1 (2025-11-02)
Added
- Experimental support for Odoo 19
- Experimental support for deployment with let’s encrypt certs.
Release 0.5.0 (2025-09-12)
Added
- New options to
odood deploycommand:local-nginx-sslto enable SSL configuration for local nginxlocal-nginx-ssl-keychoose path to ssl key for the serverlocal-nginx-ssl-certchoose paht to ssl certificate for the server
- Git sources in assembly spec now supports shortucts
githubandocathat allows to simplify configuration of git sources - During assembly sync, Odood can automatically apply acccess credentials from env variables:
- For named sources
ODOOD_ASSEMBLY_repo_name_CRED - Added support for access groups (
access-groupfor sources inodood-assembly.yml), this way it is possible to use same token for multiple repos. The name isODOOD_ASSEMBLY_access_group_CRED - The format of
ODOOD_ASSEMBLY_<group/repo>_CREDvariable isusername:password
- For named sources
- During assembly upgrade, check for unfinished install/upgrade and print waring if there are any unfinished install/upgrade/uninstall
- Added new option
assembly-repoforodood deploycommand, that allows to automatically configure deployed instance to use specified assembly.
Release 0.4.4 (2025-08-03)
Added
- Automatic check for missing dependencies of assembly addons on assembly sync.
- Ability to use existing assembly for project via
odood assembly usecommand. This could be useful in CI to automate assembly sync process. - Added new options to specify commit params for
odood assembly synccommand. - Added experimental
odood repo do-forward-portcommand
Changed
odood lognow will automatically show the end of logfile
Release 0.4.3 (2025-07-05)
Added
- Addd new command
odood repo migrate-addonsthat uses under the hood OCA’s utility odoo-module-migrator to migrate source code of modules to project’s serie from older odoo series.
Fixes
- Fix installation of odoo on Ubuntu 22.04 because of non-recent setuptools and recent update of zope.event.
Release 0.4.2 (2025-06-21)
Fixes
- Fix handling of check if nginx is installed on Ubuntu 22.04
Release 0.4.1 (2025-06-20)
Added
- New command
odood repo check-versionsthat could be used to check if module versions updated. - New option
--langtoodood translate regeneratecommand. With this option, translation file will be detected automatically. - New option
--repeattoodood db populatecommand, that allow to repeat database population N times. - Added new command
odood assembly upgrade, that could be used to upgrade assembly in single command, that includes:- optionally, take backup before any other step
- pull latest changes
- relink assembly addons
- update all assembly addons for all databases available on managed instance
Release 0.4.0 (2025-05-29)
Added
- New command
odood db populatethat allows to populate database with test data - New options to
odood testcommand (--populate-modeland--populate-size) that could be used to populate database with test data before running tests. Especially, this could be useful for migration tests - New command
odood assemblythat could be used to manage Odoo instance in assembly style, when all addons used on instance are placed in single repo. - Added new flag
--assemblytoodood addons list/update/install/uninstallcommands
Changed
- Command
odood odoo recompute- changed parameters:- use options instead of arguments
- allow to run for multiple databases (or for all databases)
- Command
odood db list-installed-addonsrenamed toodood addons find-installed. - Command
odood addons find-installedgot new options:--non-system- output only non-system addons (that are not included in official Odoo community)--format- what format to use for output: list, assembly-spec
Release 0.3.1 (2025-04-23)
Added
- Support and release for arm64 architecture
- Added new command
repo bump-versionsto automatically bump versions of modules - Added new options for
odood deploycommand:--local-nginxthat allows to automatically configure local nginx (requires nginx installed)--enable-fail2banthat allows to automatically configure fail2ban for Odoo (required fail2ban installed)
Removed
- Dropped support for Ubuntu: 20.04 (compile release for Ubuntu 22.04+)
- Dropped support for Debian: Bullseye (compile release for Debian bookworm+)
Release 0.3.0 (2025-03-14)
Added
- New command
odood translations regeneratethat allows to regenerate translations for modules. Could be useful to automatically or semiautomatically generate.poand.potfiles for modules. Also, this command available as shortcutodood tr regenerate. - New flag
--no-install-addonsadded toodood test. It could be used to speed up running tests on localc machine on same db.
Changed
- Breaking Changed approach to docker images. No more custom entry point. Just single option (on application level), that allows to update Odoo configuration from environment variables. Default command uses this option. but custom commands will need to use this option. Currently, this requires explicit specification of this command on Odood runs. This may be changed in future.
- Breaking Do not use separate config file for tests on deployments (Odoo installations installed via
odood deploycommand)
Release 0.2.2 (2025-03-10)
Added
- Experimental support for PyEnv integration.
Changed
- Replace dpq with Peque
odood script pycommand: now output of script will be redirected on stdout. Thus no more need to wait while script completed to get intermediate output of script.
Release 0.2.1 (2025-01-23)
Changed
- Added new command
entrypointthat is available only in version for docker images, that is used as entrypoint for docker container and that is responsible for applying configuration from environment variables to Odoo configuration file before any further action. - Added new command
odood odoo recomputethat allows to recompute computed fields for specified model in specified database.
Release 0.2.0 (2024-12-12)
Added
- New experimental command
odood deploythat could be used to deploy production-ready Odoo instance. - Added experimental support for Odoo 18
- Added new command
odood repo fix-seriesthat allows to set series for all modules in repo to project’s serie. - Added automatic builds of docker images with pre-installed Odoo.
Changed
- Pre-commit related commands moved to
pre-commitsubcommand. Thus, following commands now available to work with pre-commit:odood pre-commit initodood pre-commit set-upodood pre-commit run
- Change command
odood server run. Command usesexecvto run Odoo, thus, Odoo process will replace Odood process. Thus, option--detachis not available here. If you want to start Odoo in background, thenodood server startcommand exists. Instead, this command (odood server run) is designed to run Odoo with provided args in same way as you run Odoo binary directly. For example, following commandodood server run -- -d my_database --install=crm --stop-after-init, that will installcrmmodule, will be translated toodoo -d my_database --install=crm --stop-after-init, that will be ran inside virtualenv of current Odood project.- Added new option
--ignore-runningthat allows to ignore server running. - Removed option
--detachas it does not have sense. Useodood server startinstead.
- Added new option
- Changed generation of default test db name.
Before it was:
odood<serie>-odood-testNow it will be:<db_user>-odood-test
Release 0.1.0 (2024-08-15)
Added
- New command
odood venv pipthat allows to run pip from current venv. - New command
odood venv npmthat allows to run npm from current venv. - New command
odood venv pythonthat allows to run python from current venv. - New command
odood venv ipythonthat allows to run ipython from current venv. - Added new option
--ualto commandodood repo addthat allows to automatically update list of addons when repository was added. - New command
odood venv runthat allows to run any command from current venv. - New command
odood repo run-pre-committo run pre-commit for the repo.
Changed
- Database restoration reimplemented in D, thus now it restores db dump and filestore in parallel.
Release 0.0.15 (2023-10-30)
Added
- Added ability skip addons specified in file during install/update/upgrade.
- Added new options to
odood testcommand:--filethat could be used to pass the path to file to read addons to test from--skip-fileread names of addons to skip from file
Changed
- Installation of dependencies from manifest is now optional. It is frequent case, when authors of module place incorrect dependencies in manifest, thus installation of addon may fail.
Fixes
- Fix error when running
addons install/update/uninstallwith non-existing logfile. This was caused by attempt to determine starting point of logfile to search for errors happened during operation. Now this case is handled correctly.
Release 0.0.14 (2023-10-04)
Added
- Added new options
--skipand--skip-retoodood testcommand, that allow to not run tests for specified addons. Useful in cases, when there is need to skip some addons found via options--dirand--dir-r - Added new options
--skipand--skip-retoodood addons install/update/uninstallcommands. Useful in cases, when there is need to skip some addons found via options--dirand--dir-r - Added new option
--skip-errorstoodood addons install/update/uninstallcommands, that allows to not fail when installing addons in database, thus allowing to install addons to other databases, and fail in the end. - Added new option
--install-typetoodood initandodood venv reinstall-odoocommands, thus, now it is possible to install Odoo as git repo or as unpacked archive depending on this option
Changed
- Load Python dynamically, thus make Odood more portable.
- Finally, make Odood portable. Now we have universal deb package, that could be installed on most debian-based repos newer then ubuntu:20.04
- Commands
odood addons install/update/uninstallnow will report Odoo errors raised during addons installation.
Release 0.0.13 (2023-09-08)
Added
- Command
odood addons generate-py-requirementsthat allows to generate requirements txt files for specified modules. - Added new option
--tdbtoodood db createcommand, that allows to use automatically generated default name for tests database. - Added new command
odood db list-installed-addons. This command could be used to print to stdout or file list of addons installed on specific databases.
Release 0.0.12 (2023-08-14)
Added
- Command
odood odoo shellthat allows to open odoo shell for specified db. - Added release for
debian:bullseye
Changed
- Implement backup of database on D level. This way it provides better error handling.
- Added ability to cache downloads if
ODOOD_CACHE_DIRenvironment variable is set.
Release 0.0.11 (2023-07-27)
Added
- New option
--simplified-logadded toodood testcommand. Thus it is possible to display meaningful log info (log level, logger, message).
Changed
- Command
odood venv reinstall-odoonow backups old odoo by default. But it is possible to disable backup with option--no-backup - Now it is allowed to specify only name of backup to restore database from. In this case, Odood will try to find corresponding backup in standard backups directory of project.
Fixed
- Correctly handle
--additional-addonspassed for tests in case when migration test enabled: update that addons before running tests.
Release 0.0.10 (2023-07-08)
Added
- New option
--alltoodood db backupcommand, that allows to backup all databases within single command. - New command
infothat will display info about project, optionally in JSON fromat. - New option
--filetoodood addons installandodood addons updatecommands. This option allows to get list of addons to install / update from provided file. This way, it is possible to avoid specifying list of addons manually. - New option
--install-filetoodood db createcommand, that will automatically install modules from specified files. - New option
--coverage-ignore-errorstoodood testcommand, that allows to ignore coverage errors, that a frequent case during migration tests (because files available on start may disapear during migration). - New option
--recreatetodb restorecommand, thus it is possible to automatically drop database before restoration if needed. - Added flag
--backuptovenv update-odoocommand. - Added new command
odood venv reinstall-odoo, that could be used to reinstall odoo to different version in same venv. This could be used for migrations to avoid the need to setup new machine for migrated instance.
Changed
- Command
odood db backup: when--destoption supplied and it is existing directory, then database will be backed up in this directory with automatically generated name of backup. - Automatically supply
--ignore-errorstocoveragewhen running migration tests
Release 0.0.9 (2023-06-01)
Added
- New option
--ualtoodood addons installandodood addons updatecomands - New option
--additional-addontoodood testcommand - New options for
odood addons listcommand:--with-priceand--without-priceforodood addons listcommand--color=priceto highlight addons that have or have no prices--tableto output list of addons as table
- New command
odood venv install-py-packagesthat could be used to easily install python packages in Odood virtualenv environment - New option
--warning-reporttoodood testcommand: if this option provided, then Odood will print uniq list of warnings in the end of test run
Release 0.0.8 (2023-05-05)
Added
- Add new option –color=installable to addons list command
- Added command
odood ci fix-version-conflictto resolve version conflicts in module manifests
Changed
odood testcommand: show error report by default, but add option to disable it.- Clone repos recursively optionally. Before this change,
command
odood repo addwas clonning repositories recursively (parseodoo_requirements.txtfile in clonned repo and clone dependencies mentioned there). After this change, recursive add repo is optional, end could be enable by optionodood repo add --recursive ... odoo testwith option--iswwill additionally ignore following warning:unknown parameter 'tracking'