Skip to main content

Marketplace: OCA Modules

The Odoo Community Association (OCA) maintains thousands of open-source Odoo modules. doploy indexes all of them for every Odoo version and lets you add one to a development branch without leaving the dashboard.

How it works

Open a development branch under Deployments and pick the Marketplace tab. You get the OCA catalog for that branch’s Odoo version.
  1. Search or browse. Filter by category, or search by name or description.
  2. Open a module. The side panel shows the README, the maintainers, and what adding it would mean for your repository: other OCA modules it needs, the standard Odoo apps it uses, and any Python packages or system programs it requires.
  3. Add to the branch. doploy copies the module source, and every OCA module it depends on, into the root of your repository as a single commit on that branch. Python packages are appended to requirements.txt. Your usual build starts from the push.
  4. Install into the database. Leave “Install into the database once the build finishes” ticked and doploy runs odoo-bin -i for the module on the new build. Untick it if you only want the code.
Adding a module takes about a minute. The commit message lists every module, its version, its source repository, and its licence.

What lands in your repository

Modules are copied, not linked. Each one becomes a top-level folder next to your own modules, exactly as it exists in the OCA repository at the time of the install, including its README.rst and licence files. A lock file at .doploy/oca.lock.json records where every OCA module came from, the exact upstream revision, and whether you asked for it or it was pulled in as a dependency. The Installed from OCA list on the Marketplace tab reads from this file. Because the code is yours now, you can change it. Later OCA updates do not overwrite your copy.

Dependencies

Before anything is written, doploy resolves the full dependency chain: Installs are refused when the module is not marked installable for your Odoo version, when it is already in the repository, or when the chain would add more than 40 modules.

Python packages and system programs

Modules that declare Python dependencies get them appended to requirements.txt in your repository. doploy installs those packages when it builds the instance image, the same way it does for your own modules. Some modules also expect system programs (wkhtmltopdf variants, pdftk, and so on). doploy cannot install those from the repository. They are listed in the side panel and in the commit message so you know before you add the module.

Licences

Most OCA modules are AGPL-3, some are LGPL-3. Each module’s licence file is copied with it and named in the commit message. AGPL requires that you publish modified copies if you offer the software over a network, so check if that matters to your organisation.

Removing a module

Delete the folder from the repository and push. The lock file entry stays until the next install rewrites it; the Marketplace tab marks it as “folder missing” in the meantime. Uninstall the module in Odoo first if it was installed into the database.

Staging and production

Adding modules is available on development branches only. Get the module working there, then merge to staging and production the way you normally do. Production and staging need a module update after the merge, as with any code change.

Catalog freshness

The catalog is refreshed nightly from GitHub. A module that appeared upstream today shows up tomorrow. Installs always use the upstream revision the catalog was read at, so what you see in the side panel is what lands in your branch.