Problem
A deploy never loads data changes in a tenant's dependency addons. Launchplane's post-deploy passes the artifact's install list as ODOO_UPDATE_MODULES (for OPW, opw_custom and friends). run_odoo_data_workflows.py update_addons upgrades exactly that list. Odoo's -u upgrades a module and its dependents, not its dependencies. So a new cron, view, record or field default in an addon such as shopify_sync, which opw_custom depends on, is not loaded until the next restore or bootstrap. The Python code is live, but its data is not.
ODOO_UPDATE_MODULES=AUTO already expands installed local modules to their local dependency closure (update_addons, lines ~2044–2083). The explicit-list branch does not.
Evidence
- 2026-09-30 opw/testing deploy of artifact
artifact-opw-b31e0d5a218e899f (run): post-deploy passed. opw_custom shows write_date 03:34, the deploy time, but shopify_sync still shows 2026-09-29 14:25, the last restore.
- The
ir_cron_shopify_check_product_payloads record added by odoo-tenant-opw#170 in shopify_sync/data/shopify_cron.xml does not exist on opw/testing after the deploy.
Finish line
- An explicit
ODOO_UPDATE_MODULES list is upgraded together with its installed local dependency closure, the same closure AUTO uses, so dependency addons' data loads on every deploy.
- A test covers an explicit list whose dependency is a local addon.
Notes
- Scope stays local: only modules found in the local addon directories are added, never Odoo core or enterprise addons.
- Tenants pick this up through their devkit pin, so it reaches opw/testing on the next artifact publish after the pin moves.
Problem
A deploy never loads data changes in a tenant's dependency addons. Launchplane's post-deploy passes the artifact's install list as
ODOO_UPDATE_MODULES(for OPW,opw_customand friends).run_odoo_data_workflows.pyupdate_addonsupgrades exactly that list. Odoo's-uupgrades a module and its dependents, not its dependencies. So a new cron, view, record or field default in an addon such asshopify_sync, whichopw_customdepends on, is not loaded until the next restore or bootstrap. The Python code is live, but its data is not.ODOO_UPDATE_MODULES=AUTOalready expands installed local modules to their local dependency closure (update_addons, lines ~2044–2083). The explicit-list branch does not.Evidence
artifact-opw-b31e0d5a218e899f(run): post-deploy passed.opw_customshowswrite_date03:34, the deploy time, butshopify_syncstill shows 2026-09-29 14:25, the last restore.ir_cron_shopify_check_product_payloadsrecord added by odoo-tenant-opw#170 inshopify_sync/data/shopify_cron.xmldoes not exist on opw/testing after the deploy.Finish line
ODOO_UPDATE_MODULESlist is upgraded together with its installed local dependency closure, the same closure AUTO uses, so dependency addons' data loads on every deploy.Notes