katyukha/Odood

Odood Releases v0.7.0-dev.4 and v0.7.0-dev.5 Enhance Odoo Project Management and Assembly Workflow

Odood

The Odood project, a tool designed to simplify development, deployment, and maintenance of Odoo addons and servers, has issued two consecutive pre-release versions. These updates introduce a global configuration option, new assembly commands for versioning and changelog management, support for Odoo 20.0, and various improvements to Docker images and Python compatibility.

What is Odood?

Odood is an open-source command-line tool aimed at developers and system administrators working with Odoo, an open-source ERP and CRM platform. It focuses on simplifying the development and maintenance of Odoo addons as well as the deployment and upkeep of Odoo servers. By providing commands for managing projects, virtual environments, assemblies, and translations, Odood streamlines workflows that can otherwise be complex in Odoo environments.

Key Features Introduced in v0.7.0-dev.4 and v0.7.0-dev.5

Released in quick succession, these two pre-release versions build on each other with overlapping feature sets and fixes. Both releases introduce several new commands and options aimed at improving project configuration, assembly versioning, and compatibility with newer Odoo versions.

Global Configuration Option

A new global -c or --config option allows users to run commands against a specified project configuration file (odood.yml) or its directory rather than relying on automatic discovery from the current working directory. This option must precede the command name and is not compatible with command shortcuts like odood start.

Script Management

The odood script list command was added to list runnable scripts by name, grouped by their location in either the repository's .odood-scripts/ directory or the project's scripts/ directory. It marks shadowed scripts and supports JSON output for easier integration with other tools.

Assembly Versioning and Release Management

Several commands enhance the assembly workflow:

  • odood assembly release automates assigning the next version, generating release artifacts, committing changes, and tagging the release. It requires a clean working tree.
  • odood assembly status displays the current assembly version.
  • odood assembly sync --changelog-preview writes pending changes into the CHANGELOG.md under an ## Unreleased section, which the next release replaces. A dry-run option prints the changelog preview.

Assembly versions are now tracked via git tags, and the VERSION file is optional. The first release bumps from the VERSION file if no tags exist. This change also introduces a breaking change by removing the odood assembly sync --changelog command in favor of odood assembly release, requiring full git history and tags in continuous integration environments.

Odoo Version and Python Compatibility

Support for Odoo 20.0 has been added, compatible with system Python versions 3.12 through 3.14. For Odoo 19, system Python 3.13 is accepted, but Python 3.14 is avoided due to addon ecosystem issues, with Odood installing a suitable Python version instead.

Docker and Deployment Updates

Docker images used by Odood are now based on Ubuntu 26.04 instead of 24.04. The PostgreSQL client in the Docker image is sourced correctly from the PGDG repository, which was previously not enabled. The system user creation during deployment on Ubuntu 26.04 now uses groupadd and useradd commands as adduser is not available.

Other Improvements and Fixes

  • The problematic libsass==0.22.0 package, which fails to build on Python 3.14+ arm64 architectures including Docker images, has been replaced with version 0.23.0.
  • The .dockerignore file generated no longer excludes odood-assembly.yml, which is necessary for the Dockerfile; existing assemblies must manually remove the exclusion.
  • Translation regeneration commands have been updated to align with Odoo's handling of .po files and to use the server export options removed in Odoo 19.
  • Database initialization commands now respect language and demo data loading options for Odoo 19 and later.
  • Script hooks for testing now locate scripts in the repository's .odood-scripts/ directory rather than only in migration mode.
  • Addon manifest parsing errors are now reported explicitly with the filename, improving error visibility.
  • The internal Python library used for parsing addon manifests no longer requires the development package libpython3.X-dev.
  • The library API has been enhanced with new constructor options for git environment variables and changes to git pull behavior, including a shift to returning result objects instead of throwing exceptions.

Impact and Usage

These releases continue Odood's mission to streamline Odoo development and deployment by improving version control integration, assembly management, and compatibility with newer Odoo and Python versions. The introduction of a global configuration option and enhanced assembly commands will likely benefit users managing multiple projects or complex release workflows.

The breaking changes around assembly syncing and git operations suggest that users should update their continuous integration setups to fetch full git histories and handle new command behaviors.

Overall, these updates reflect ongoing maintenance and modernization of Odood to keep pace with evolving Odoo versions and developer needs.

Sources

Sources