A recent change has been approved in the OCA edi-framework repository (PR #192), bringing a significant improvement in the way dependencies are managed within the Odoo EDI ecosystem.
The problem until now
Before this change, the edi_oca module had direct dependencies on both queue_job and component. In practice, this caused several issues:
- Unnecessary overhead: even in projects where neither the job queue system (queue_job) nor the component framework was required, these modules still had to be installed.
- Greater complexity: forcing a broader dependency stack increased the risk of conflicts and made upgrades more difficult.
- Less flexibility: all projects required a complex base just to function.
The proposed solution
The PR introduces a clear separation between core functionality and optional behaviors:
- edi_core_oca → Provides the framework core, without heavy external dependencies.
- edi_component_oca → Adds isolated integration with the component system.
- edi_queue_oca → Adds queue_job support, encapsulated in its own module.
This way, the framework becomes a modular base, allowing each project to decide which additional pieces it really needs.
Relevant technical details
- Hooks have been defined to ensure a smooth transition and allow additional modules to plug in without breaking compatibility.
- The xml_ids have been regenerated to keep consistency with internal references and facilitate migrations.
- The resulting structure is already designed to fit the upcoming transition to Odoo 19, while remaining fully compatible with Odoo 18.
Benefits
- True modularity: each EDI installation only loads what is strictly necessary.
- Forward compatibility: simplifies adaptation to new Odoo versions.
- Maintainability: fewer mandatory dependencies mean fewer potential conflicts.
- Flexibility for integrators: not all EDI projects require job queues or the component system, and now it is possible to choose.
Conclusion
This change may look small in terms of code, but its impact in day-to-day use is considerable: it improves the architecture of the OCA EDI framework, makes it lighter and more adaptable, and prepares the ground for future evolutions.
A step forward towards a cleaner, more modular, and more sustainable ecosystem in Odoo.