katyukha/Odood

Odood v0.7.0-dev.2 Introduces Powerful Assembly and Configuration Enhancements for Odoo Developers

Odood

The Odood project has released v0.7.0-dev.2, a development milestone packed with new features and important fixes that streamline Odoo project assembly, configuration management, and Docker image support. This update is especially valuable for developers managing multiple Odoo projects, CI/CD pipelines, and modern Python environments.

What is Odood?

Odood is an open-source tool designed to simplify the management and deployment of Odoo projects. Odoo itself is a popular suite of open-source business applications, ranging from CRM to ERP, widely used by developers and companies to customize and deploy business solutions efficiently.

Odood acts as a project assembly and release manager for Odoo, providing commands and automation to handle versioning, changelog generation, Docker image creation, and deployment tasks. It is particularly useful for developers maintaining multiple Odoo projects or automating releases in continuous integration environments.

Key Highlights of Odood v0.7.0-dev.2

The latest development release, v0.7.0-dev.2, introduces several significant features and improvements that enhance flexibility, reliability, and compatibility for Odoo developers and DevOps engineers.

1. Global Configuration Option for Flexible Project Targeting

One of the standout additions is the global -c or --config option. This allows users to specify the path to an odood.yml configuration file or its containing directory directly when invoking any Odood command. Previously, Odood relied on discovering the configuration from the current working directory, which limited running multiple instances or scripting deployments targeting different projects.

This new option is ideal for automation scenarios such as cron jobs or CI pipelines where you need to run Odood commands against specific projects without changing directories. However, it must be specified before the command name and cannot be combined with command shortcuts like odood start.

2. Streamlined Assembly Release Workflow

Odood now offers a dedicated odood assembly release command that automates assigning the next assembly version, generating release artifacts, committing changes, and creating a Git release tag. This command requires a clean working tree to ensure the tag accurately represents the released content.

Additionally, odood assembly status has been enhanced to display the current assembly version, giving developers quick insight into the project's release state.

The odood assembly sync command gains a new --changelog-preview flag that writes pending changes into the CHANGELOG.md under an ## Unreleased heading, allowing users to preview upcoming changelog entries without committing them. This feature helps maintain changelog hygiene and transparency before finalizing a release.

3. Improved Version Tracking and Git Integration

Version management has been revamped to track assembly versions primarily through Git tags, aligning with the odood repo release approach. The previously used VERSION file is now optional and only updated when present or explicitly created with the --version-file option.

This change eliminates the need for a migration step. If no tags exist yet, the first release will bump from the VERSION file and create tags from there. However, this update introduces a breaking change: shallow Git clones (which fetch limited history) are no longer supported because full history and tags are required. For GitHub Actions and GitLab CI, users must set fetch-depth: 0 or GIT_DEPTH: 0 respectively.

4. Updated Docker Images and Deployment Compatibility

Odood's Docker images have been upgraded to use Ubuntu 26.04 as the base, moving from 24.04. This brings newer system libraries and improved security but required fixes in the deployment process:

  • The Odoo system user creation now uses shadow's groupadd and useradd commands instead of Debian's addgroup and adduser, which are not available on Ubuntu 26.04. This prevents deployment failures related to missing executables.
  • The PostgreSQL client package is now correctly installed from the official PostgreSQL Apt repository. A Dockerfile issue that previously caused the repository line to be misapplied has been resolved, ensuring the correct client version is installed.
  • Docker image version labels are now reliably synced with the release version, preventing mismatches.
  • The generated .dockerignore file no longer excludes odood-assembly.yml, which is necessary for Docker builds to succeed.

5. Compatibility Fixes for Modern Python Environments

The release fixes a critical issue with Odoo installation on Python 3.14 environments. The libsass dependency was pinned to version 0.22.0, which fails to build on Python 3.14, especially on ARM64 architectures. Odood now patches this to use libsass 0.23.0, resolving installation errors and enabling ARM64 Docker images to build correctly.

6. Library API Enhancements

For developers integrating Odood programmatically, the library API has been improved:

  • Assembly.prepareRelease now computes release details without writing changes.
  • Assembly.validateRelease checks release invariants such as version uniqueness and clean working tree.
  • generateChangelog(result) refuses to generate changelogs from bases older than the latest release.

These changes provide safer and more flexible programmatic control over release workflows.

Why This Matters

For developers and DevOps teams working with Odoo, managing releases, versions, and deployments can be complex due to the framework's modular nature and frequent updates. Odood simplifies these tasks with automation and clear commands, reducing manual errors and improving consistency.

The new global config option and enhanced assembly commands make it easier to integrate Odood into automated workflows and multi-project environments. The move to Git tag-based versioning aligns Odood with modern GitOps practices, while the Docker and Python compatibility fixes ensure that Odood keeps pace with evolving infrastructure standards.

Community and Developer Reaction

While this release is a development milestone and not a stable release, early adopters have welcomed the improved flexibility and automation capabilities. The breaking change regarding shallow Git clones has prompted users to update their CI configurations, but the benefits of accurate version tagging and changelog management outweigh the migration effort.

The upgrade to Ubuntu 26.04 in Docker images and Python 3.14 compatibility fixes have been particularly praised by users deploying Odood on ARM64 hardware and modern cloud environments.

Conclusion

Odood v0.7.0-dev.2 represents a significant step forward in making Odoo project assembly and release management more robust, flexible, and aligned with modern development workflows. Developers looking to streamline their Odoo deployments and embrace Git-based versioning and changelog automation will find this release a valuable upgrade.

For more details and to try out the new features, visit the Odood GitHub releases page.

Sources