manifest-required-author (C8101)#

None of the required authors is in the manifest author.

What it does#

Checks that the comma-separated author of every __manifest__.py contains at least one of the required authors. By default that is the Odoo Community Association (OCA), as in pylint-odoo.

odoo-lint can require a different author per group of modules, chosen by the name of the module folder, so one repository can enforce its own authors for its own modules.

Why is this bad?#

The manifest author is shown in the Apps menu and on the Odoo Apps store, and OCA tooling relies on it. Inconsistent authors make it unclear who maintains a module and break automated checks that filter on author.

Configuration#

[tool.odoo-lint.rules.manifest-required-author]
# Used when no mapping matches; a string or a list
authors = ["Odoo Community Association (OCA)"]

[tool.odoo-lint.rules.manifest-required-author.mapping]
"acme_*" = "Acme Corp"
"acme_hr_*" = ["Acme HR", "Acme Corp"]
"acme_special" = "Someone Else"

An exact module name wins; otherwise the longest matching prefix* pattern wins, then authors. With the configuration above:

Module folder

One of these authors is required

acme_sale

Acme Corp

acme_hr_leave

Acme HR, Acme Corp

acme_special

Someone Else

sale_stock_ext

Odoo Community Association (OCA)

Example#

For a module folder acme_sale:

{
    "name": "Acme Sale",
    "author": "Odoo Community Association (OCA)",
}

Use instead:

{
    "name": "Acme Sale",
    "author": "Acme Corp, Odoo Community Association (OCA)",
}

Fix safety#

When the manifest has no author: safe, with author from manifest-defaults, or else the first author of a configured manifest-required-author. An existing author is never changed, not even with --unsafe-fixes: attribution is a decision, not a cleanup. Without a configuration there is no fix.