Manifestoo
A tool to reason about Odoo addons manifests.
Installation
Using pipx (recommended):
pipx install manifestoo
Using pip:
pip install --user manifestoo
Features
Manifestoo is a command line tool that provides the following features:
- listing addons,
- listing direct and transitive dependencies of selected addons,
- listing direct and transitive co-dependencies of selected addons,
- listing core Odoo CE and EE addons,
- listing external dependencies,
- listing missing dependencies,
- displaying the dependency tree,
- checking license compatibility,
- checking development status compatibility.
For a full list of commands an options, run manifestoo --help.
For more information, read the documentation.
Quick start
Let's create a directory (/tmp/myaddons) containing addons a, b and c,
where a depends on b and c, and b and c respectively depend on the
contacts and mail core Odoo modules.
Using bash you can do it like this:
mkdir -p /tmp/myaddons/{a,b,c}
echo '{"name": "A", "version": "14.0.1.0.0", "depends": ["b", "c"], "license": "GPL-3"}' > /tmp/myaddons/a/__manifest__.py
echo '{"name": "B", "version": "14.0.1.0.0", "depends": ["crm"], "license": "Other Proprietary"}' > /tmp/myaddons/b/__manifest__.py
echo '{"name": "C", "version": "14.0.1.0.0", "depends": ["mail"], "license": "LGPL-3"}' > /tmp/myaddons/c/__manifest__.py
The manifestoo list command is useful to list all installable addons in a
directory. This can be useful to install them all at once, for instance.
$ manifestoo --select-addons-dir /tmp/myaddons list
a
b
c
The list-depends command shows the direct dependencies. It is handy to
pre-install a database before running tests.
$ manifestoo -d /tmp/myaddons list-depends --separator=,
crm,mail
The list-codepends command shows the transitive co-dependencies.
It is handy to know which modules are impacted by changes in selected modules.
$ manifestoo --addons-path /tmp/myaddons --select a list-codepends --separator=,
b,c
You can explore the dependency tree of module a like this:
$ manifestoo --addons-path /tmp/myaddons --select a tree
a (14.0.1.0.0)
├── b (14.0.1.0.0)
│ └── contacts (14.0+c)
│ └── mail (14.0+c)
│ ├── base_setup (14.0+c)
│ │ └── web (14.0+c)
│ ├── bus (14.0+c)
│ │ └── web ⬆
│ └── web_tour (14.0+c)
│ └── web ⬆
└── c (14.0.1.0.0)
└── mail ⬆
To check that licenses are compatibles, use the check-licenses command:
$ moo -d /tmp/myaddons check-licenses
a (GPL-3) depends on b (Other Proprietary)
And much more... See the documentation for more information.
Release files for manifestoo 1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| manifestoo-1.1.tar.gz | 24.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| manifestoo-1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.6 kB
Release files / manifestoo-1.1.tar.gz
| Download URL | manifestoo-1.1.tar.gz |
|---|---|
| Size | 24.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5837e4b56f23c61ddb96bd011f6a7acff3e5e95910b8baa20b9f9a9189e1695e
|
|
BLAKE2b-256 checksum How to use checksums |
b21d0937b4eaec56f393c2bfbfed013b7fd78d7e735bb5ef291a0d864f989545
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2025.
Transparency logRelease files / manifestoo-1.1-py3-none-any.whl
| Download URL | manifestoo-1.1-py3-none-any.whl |
|---|---|
| Size | 19.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
27d35641247f4220246273a7554b43306dee668f8b14fefbce37a980ca8b3604
|
|
BLAKE2b-256 checksum How to use checksums |
681a096647b826caad99e2c1ab7d3e7c8ffc78afa893d8fa79324a22f7f2686a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2025.
Transparency log