A tool to reason about Odoo addons manifests
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file manifestoo-1.0.tar.gz
.
File metadata
- Download URL: manifestoo-1.0.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88ff5057202f28c4e8f06b9c7a25d600b996290f722d7daac65d12ec84fe90c0 |
|
MD5 | c756125f5fa6b277fc9e51c4290964b6 |
|
BLAKE2b-256 | 654d970985f2bca9b08757ba947db15bb1a9fdb5477cdbbfde1253c8218219fe |
File details
Details for the file manifestoo-1.0-py3-none-any.whl
.
File metadata
- Download URL: manifestoo-1.0-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8264b9968d1ffd434aa2deb6d427bfa4ffa963a81cde33f2edc32340cc171d2a |
|
MD5 | c1132f499da2841264dce42f7a0ff054 |
|
BLAKE2b-256 | e47f136151c5bca777dd5cd06ed03a3bc0bb89ecabc3491c58758a01b716b554 |