Configuration#
odx reads the [tool.odx] table of the project’s pyproject.toml. Only
odoo_version is required; every other key has a default. Unknown keys are
errors, so a typo never goes unnoticed; Stability says what
a release may change.
Durations are written as a number and a unit: "90s", "15m", "12h",
"7d". Paths are relative to the project root.
The settings of the person rather than the project (forge tokens, mirrors, local clones, the cache location) live in the user configuration.
[tool.odx]#
Key |
Type |
Description |
|---|---|---|
|
string |
Odoo series of the project, e.g. |
|
list of strings |
Languages the project is translated into besides English, as Odoo codes ( |
|
string |
Neutral project identifier for the verdict repository. Default: the first twelve hex digits of the SHA-256 of the project’s |
|
integer |
Maximum concurrent fetches and merge jobs. Default: the number of CPUs. |
|
path |
Cache directory, relative to the project root. Default: the shared cache directory of the user configuration, else |
|
|
How merges are applied on top of the base. Default: |
|
|
When to use mergiraf for conflict resolution. Default: |
|
|
Default conflict policy for merges. Default: |
|
|
Default force-push guard-rail policy. Default: |
|
path |
Lockfile path, relative to the project root. Default: |
[tool.odx.mirror]#
The private vault repository.
Key |
Type |
Description |
|---|---|---|
|
string |
Push URL of the vault repository; must be private. |
|
string |
Prefix of content-addressed refs. Default: |
|
|
Whether locked commits are kept under refs or tags. Default: |
|
boolean |
Push locked commits on |
|
boolean |
Create the vault repository through the forge API. Default: off. |
|
boolean |
Allow a public vault repository. Default: off. |
[tool.odx.http]#
How odx talks to forges over HTTP.
Key |
Type |
Description |
|---|---|---|
|
integer |
In-flight requests and fetches per host. Default: 6. |
[tool.odx.cache]#
Cache staleness and prefetching.
Key |
Type |
Description |
|---|---|---|
|
boolean |
Let |
[tool.odx.cache.ttl]#
How long cached data is used before it is refreshed.
Key |
Type |
Description |
|---|---|---|
|
duration |
How long fetched git refs are used before fetching again. Default: |
|
duration |
How long a kept dashboard (pull request states) is shown before it is rebuilt. Default: |
[tool.odx.dashboard]#
What odx dashboard shows.
Key |
Type |
Description |
|---|---|---|
|
list of |
The sections |
|
list of pair of strings |
Environment pairs compared in the drift section. Default: every promotion edge between environments that are not disposable. |
[tool.odx.groups]#
Dependency group name → vendor directory.
Key |
Type |
Description |
|---|---|---|
|
string |
Group used by |
|
list of paths |
Committed project addon directories. Default: |
|
table of paths |
Group name → directory. |
[[tool.odx.repositories]]#
A repository aggregated from its base and merges.
Key |
Type |
Description |
|---|---|---|
|
string |
Short name, unique in the project. Default: |
|
string |
Upstream URL. |
|
path |
Working tree directory. Default: |
|
string |
Base branch. Default: |
|
string |
Aggregated branch, as exported to |
|
|
Forge kind when it cannot be derived from the URL. Default: derived from the URL. |
|
list of strings |
Addon globs to link (the doodba |
[[tool.odx.repositories.merges]]#
One merge source: exactly one of pr, sha or branch.
Key |
Type |
Description |
|---|---|---|
|
integer |
Pull request number. |
|
string |
Commit SHA. |
|
string |
Branch name. |
|
string |
Remote URL of |
|
|
Conflict policy for this merge. Default: |
|
|
Guard-rail policy for this merge. Default: |
|
boolean |
Report when the pull request is merged upstream. Default: on. |
[tool.odx.packages.<name>]#
A package pinned to a git source.
Key |
Type |
Description |
|---|---|---|
|
string |
Repository as |
|
string |
Repository URL. Default: |
|
integer |
Pull request number. |
|
string |
Branch. |
|
string |
Tag. |
|
string |
Commit. |
|
string |
Subdirectory of the addon in the repository. Default: the repository root. |
|
string |
Dependency group. Default: |
[tool.odx.vendor]#
How addons are vendored into the project.
Key |
Type |
Description |
|---|---|---|
|
boolean |
Bump the last manifest version segment on content changes. Default: on. |
|
list of strings |
Files removed from vendored addons. Default: |
|
path |
Vendor manifest path. Default: |
[tool.odx.lock]#
Lockfile options.
[tool.odx.lock.auto_update]#
Automatic re-lock of index packages.
Key |
Type |
Description |
|---|---|---|
|
|
Which version changes are applied automatically. Default: |
|
list of strings |
Distribution globs allowed. Default: |
|
list of strings |
Distribution globs denied. Default: none. |
|
boolean |
Compare wheel contents before applying. Default: on. |
|
list of strings |
Paths allowed to change when |
[tool.odx.upgrade]#
Upgrade analysis (odx migrate plan).
Key |
Type |
Description |
|---|---|---|
|
string |
Target Odoo series. Default: none (pass |
[tool.odx.index]#
The addon index that maps addons to repositories.
Key |
Type |
Description |
|---|---|---|
|
duration |
How long the cached addon index is used. Default: |
|
list of strings |
Organizations whose forge listings are indexed, as names on GitHub or URLs. Default: none. |
|
list of |
Sources, in trust order. Default: all. |
|
table of table of strings |
Addon → series → |
|
table of table of strings |
Series → old name → new name. Default: none. |
[tool.odx.port]#
Porting commits between series.
Key |
Type |
Description |
|---|---|---|
|
list of strings |
Default source series. Default: the series just below and just above the target. |
|
integer |
Commits touching more addons are repo-wide. Default: 5. |
|
list of strings |
Commit subjects that are never proposed, as case-insensitive regular expressions. Default: |
|
list of strings |
Author e-mails of bots whose commits |
|
list of strings |
Text in a subject that marks a bot commit to squash. Default: the OCA bots’ commits. |
[tool.odx.suggest]#
Upstream suggestions.
Key |
Type |
Description |
|---|---|---|
|
list of strings |
The series |
[tool.odx.features.<name>]#
A named set of addons promoted together.
Key |
Type |
Description |
|---|---|---|
|
list of strings |
Addons that make up the feature. |
|
string |
Functional description. Default: none. |
[tool.odx.layout]#
Where the project keeps its files.
Key |
Type |
Description |
|---|---|---|
|
list of paths |
Committed project addon directories. Default: the project root. |
|
path |
Parent of repository working trees. Default: |
|
table of paths |
Alias of |
|
path |
Platform requirements file. Default: |
|
path |
Vendor manifest. Default: |
[tool.odx.platform]#
The deployment platform.
Key |
Type |
Description |
|---|---|---|
|
|
Platform profile. Default: |
|
string |
Provided-package set name or constraints file. Default: |
|
list of strings |
Extra provided requirements. Default: none. |
|
list of strings |
Packages removed from the provided set. Default: none. |
|
string |
Package index name for publishing. Default: |
[tool.odx.platform.custom]#
Hooks of the custom platform profile.
Key |
Type |
Description |
|---|---|---|
|
string |
Command that prepares the deployment. Default: none. |
|
string |
Command that verifies the deployment. Default: none. |
[tool.odx.environments]#
Environments and how changes are promoted between them.
Key |
Type |
Description |
|---|---|---|
|
|
Layout preset. Default: |
|
string |
Default series of the environments. Default: |
|
list of strings |
Files that differ per environment. Default: none. |
|
list of pair of strings |
Allowed promotion edges. Default: the preset’s. |
[tool.odx.environments.env.<name>]#
One environment.
Key |
Type |
Description |
|---|---|---|
|
string |
Branch name or pattern with |
|
|
Environment role. Default: the preset’s, else implied by a name |
|
string |
Series of this environment. Default: |
|
string |
Separate repository of this environment. Default: none (the project repository). |
|
boolean |
Excluded as a promotion target unless named explicitly. Default: on for the |
|
string |
URL of the environment’s Odoo instance. Default: none. |
|
string |
Database of the environment. Default: none. |
|
string |
Connection file of the environment, relative to the project, for tools that read and write its database (a Fluvo |
[tool.odx.promote]#
Defaults of odx promote.
Key |
Type |
Description |
|---|---|---|
|
boolean |
Allow copying an older pin over a newer one. Default: off. |
|
boolean |
Cherry-pick project addon commits unless |
|
boolean |
Promote the Odoo core revision together with the pins. Default: on. |
|
table of list of strings |
Extra synonyms for |
[tool.odx.bot]#
The automation bot (odx bot).
Key |
Type |
Description |
|---|---|---|
|
string |
Environment that receives bot pull requests. Default: the branch checked out. |
|
boolean |
Maintain the dashboard issue. Default: on. |
|
integer |
Maximum pull requests per run. Default: 10. |
|
list of strings |
Extra labels on every bot pull request, besides odx’s own. Default: none. |
|
duration |
Expiry of mutes made from the dashboard. Default: |
|
list of |
Kinds opened without a checkbox. Default: all. |
|
string |
Label that triggers a promotion pull request. Default: |
|
boolean |
Vault every observed tracked head. Default: off. |
|
boolean |
Run on a public project repository. Default: off. |
|
list of strings |
Forge users mentioned when a wanted addon’s migration starts or lands. Default: none. |
[tool.odx.dev]#
Local development (odx dev).
Key |
Type |
Description |
|---|---|---|
|
path |
Virtual environment directory. Default: |
|
path |
File listing the addons path. Default: |
|
path |
Odoo configuration file whose |
|
boolean |
Use editable installs. Default: on. |
|
path |
Directory for develop-mode clones. Default: |
[tool.odx.lint]#
Defaults of odx lint.
Key |
Type |
Description |
|---|---|---|
|
list of paths |
Paths linted by default. Default: the project addon directories. |
|
boolean |
Only lint changed addons. Default: off. |
[tool.odx.sniff]#
The migration script sniffer.
Key |
Type |
Description |
|---|---|---|
|
boolean |
Fail when merges introduce migration scripts. Default: off. |
[tool.odx.check_deps]#
Defaults of odx check-deps.
Key |
Type |
Description |
|---|---|---|
|
list of strings |
Addons the platform provides beyond Odoo’s community addons (for example enterprise addons), counted as available. Default: none. |
[tool.odx.glue]#
Glue addons (odx glue).
Key |
Type |
Description |
|---|---|---|
|
table of strings |
Glue addons the project does not want, each with why. Default: none. |
[[tool.odx.wanted]]#
An addon the project may need later. odx wanted says per series whether it is there, whether someone is migrating it, or neither.
Key |
Type |
Description |
|---|---|---|
|
string |
The addon’s technical name. |
|
list of strings |
Series to watch it on. Default: |
|
string |
Its repository, as |
|
string |
Why it is wanted. Default: none. |