Generate, compare and update Odoo config files per version.
Project description
odoo-config
A small CLI that generates an Odoo config file, adapted for the target Odoo
version. Replaces the hand-maintained server.conf template in remoteoi and is
meant to be called as a configuration step by
deploy.py, with per-instance values coming
from deploy.yml.
Local development
Standard template tooling (uv + make):
make install # uv sync + pre-commit install
make check # lock check + pre-commit + ty
make test # pytest
Other tasks: regenerate the CLI reference with
uv run typer odoo_config.main utils docs --name odoo-config --output CLI.md,
and the schema with uv run python scripts/build_schema.py (see Schema below).
Commands
See CLI.md — generated from the code, the source of truth — or
odoo-config <command> --help for every command and flag (including the
--output-format values).
Two behaviours the flag list can't express:
- Ad-hoc overrides: beyond the documented flags, any
--<key>=<value>overrides a single option, e.g.--max-cron-threads=0(dashes → underscores). - Merge precedence, low to high: preset →
--fromfiles → environment →--*overrides.
Schema
The schema is two files, merged at runtime by schema.load_schema():
-
odoo_config/options.toml— the odoo standard: option set, defaults, version availability (min/max_version) and per-version default drift (by_version), mined from Odoo'stools/config.pyacross 13.0–19.0. It is generated (a vendored snapshot, like a lockfile) — do not edit by hand. Regenerate it only when the supported odoo version set changes:uv run python scripts/build_schema.py --odoo /path/to/odoo # or set ODOO_PATH
The odoo root is a parameter, but its layout is fixed: one numeric version directory per version, each holding
odoo/tools/config.py. Limit the set with--versions 17.0,18.0,19.0. -
odoo_config/overlay.toml— the trobz layer: customized defaults, comments, sections (ir.config_parameter,queue_job), presets, and non-core extras (sentry_*, legacy networking, etc.). Edit this freely; changes take effect immediately, no regeneration needed.Dotted keys in presets (e.g.
ir.config_parameteroptions likeribbon.name) must be quoted in TOML so the dot is treated as part of the name, not a sub-table separator:"ribbon.name" = ""— notribbon.name = "".
Overlay values win. A pinned overlay default forces that value on every
version (the mined by_version is dropped); to keep per-version trobz values,
add a [options.<key>.by_version] table in the overlay.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file odoo_config-0.2.1.tar.gz.
File metadata
- Download URL: odoo_config-0.2.1.tar.gz
- Upload date:
- Size: 27.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f44b338d803b96b0b4d8a51e9e8e7cf12347e599ba2952fc17105584452573f7
|
|
| MD5 |
5dd0660622d0d75ffb1f7707dfd54d7f
|
|
| BLAKE2b-256 |
31a37fe3584c1201fdc5a92d70aa6818bf3a5f67fb5605f1bd42478b5cb1b145
|
Provenance
The following attestation bundles were made for odoo_config-0.2.1.tar.gz:
Publisher:
release.yaml on trobz/odoo-config
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odoo_config-0.2.1.tar.gz -
Subject digest:
f44b338d803b96b0b4d8a51e9e8e7cf12347e599ba2952fc17105584452573f7 - Sigstore transparency entry: 1951268165
- Sigstore integration time:
-
Permalink:
trobz/odoo-config@9dbc8f4a5c730b0706a8b60497dc9637a539c2ae -
Branch / Tag:
refs/heads/main - Owner: https://github.com/trobz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@9dbc8f4a5c730b0706a8b60497dc9637a539c2ae -
Trigger Event:
push
-
Statement type:
File details
Details for the file odoo_config-0.2.1-py3-none-any.whl.
File metadata
- Download URL: odoo_config-0.2.1-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f654e6d9f943f9d6380c0088c8099e039826e4c0daaca6707f14939b8ee483a1
|
|
| MD5 |
66a31d5fec0f4c1e4a2146abe61ef5a9
|
|
| BLAKE2b-256 |
db3c499e0e24992ee465c56b59078398b3a04877cc9eb19685398499bc78fd04
|
Provenance
The following attestation bundles were made for odoo_config-0.2.1-py3-none-any.whl:
Publisher:
release.yaml on trobz/odoo-config
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
odoo_config-0.2.1-py3-none-any.whl -
Subject digest:
f654e6d9f943f9d6380c0088c8099e039826e4c0daaca6707f14939b8ee483a1 - Sigstore transparency entry: 1951268370
- Sigstore integration time:
-
Permalink:
trobz/odoo-config@9dbc8f4a5c730b0706a8b60497dc9637a539c2ae -
Branch / Tag:
refs/heads/main - Owner: https://github.com/trobz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@9dbc8f4a5c730b0706a8b60497dc9637a539c2ae -
Trigger Event:
push
-
Statement type: