Skip to main content

A tool to reason about Odoo addons manifests

Project description

Manifestoo

Github-CI Coverage Status PyPI

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manifestoo-1.1.tar.gz (24.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manifestoo-1.1-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file manifestoo-1.1.tar.gz.

File metadata

  • Download URL: manifestoo-1.1.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for manifestoo-1.1.tar.gz
Algorithm Hash digest
SHA256 5837e4b56f23c61ddb96bd011f6a7acff3e5e95910b8baa20b9f9a9189e1695e
MD5 d687c1fb1407c4406441e1b6327f70d7
BLAKE2b-256 b21d0937b4eaec56f393c2bfbfed013b7fd78d7e735bb5ef291a0d864f989545

See more details on using hashes here.

Provenance

The following attestation bundles were made for manifestoo-1.1.tar.gz:

Publisher: release.yml on acsone/manifestoo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manifestoo-1.1-py3-none-any.whl.

File metadata

  • Download URL: manifestoo-1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for manifestoo-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 27d35641247f4220246273a7554b43306dee668f8b14fefbce37a980ca8b3604
MD5 f94c86feedad6aa10348ff26dfecdc09
BLAKE2b-256 681a096647b826caad99e2c1ab7d3e7c8ffc78afa893d8fa79324a22f7f2686a

See more details on using hashes here.

Provenance

The following attestation bundles were made for manifestoo-1.1-py3-none-any.whl:

Publisher: release.yml on acsone/manifestoo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page