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 provides the following features:

  • listing addons,
  • listing direct and transitive dependencies of selected addons,
  • listing the names of core Odoo CE and EE addons,
  • listing external dependencies,
  • displaying the dependency tree,
  • checking license compatibility,
  • checking development status compatibility.

For a full list of commands an options, run manifestoo --help.

The complete CLI documentation is available in docs/cli.md.

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-depend command shows the direct dependencies. It is handy to pre-install a database before running tests.

$ manifestoo -d /tmp/myaddons --separator=, list-depends
crm,mail

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-0.1.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

manifestoo-0.1-py3-none-any.whl (37.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: manifestoo-0.1.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.25.1

File hashes

Hashes for manifestoo-0.1.tar.gz
Algorithm Hash digest
SHA256 5355135da417e17f02cce7caed4014313780ff5681973055958199b1991936d3
MD5 aaa76ab25a8b1012b105e7ad31c99883
BLAKE2b-256 b1f872d88f724714e13683ea854db542482f15d62dad4df37d5e246bae5b19af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifestoo-0.1-py3-none-any.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.25.1

File hashes

Hashes for manifestoo-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2e7d5d3b49e0e731b5f50188cb0d0b431039124f0768c73996a5ab483e6a5c0b
MD5 d55d77f3a0fc36e6c9900196a9a17f58
BLAKE2b-256 ed00196e10f363c510461130e31890471ec58ac4280617306f0e8372d477f9bc

See more details on using hashes here.

Supported by

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