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
create— generate a new config for a target version.compare— show a value comparison table across files, versions or presets.update— update a config in place, preserving existing keys and sections.
The full flag reference is generated from the code — see CLI.md or
odoo-config <command> --help.
Beyond the documented flags, any --<key>=<value> overrides a single
option, e.g. --max-cron-threads=0; keys map to config options with dashes
turned into underscores.
Output formats (--output-format)
- bare — only the keys that were given (preset /
--from/ env / overrides). - explicit — given keys plus all mandatory keys (filled from defaults). Default.
- all — every option valid for the version; optional examples emitted
commented. Reproduces the full
server.conffor that version.
Merge precedence, low to high: preset → --from files → 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.
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.1.0.tar.gz.
File metadata
- Download URL: odoo_config-0.1.0.tar.gz
- Upload date:
- Size: 23.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adffba87810bbb744783bfabb7912356ac3ef56083bd1afe1e7175e1d8857f1e
|
|
| MD5 |
9986e504e6085bbdec191bfbcaac49ca
|
|
| BLAKE2b-256 |
80bc7e79f3e3b227545e56e47b1a96f74e826bd7205dd934794cbda5a3632839
|
Provenance
The following attestation bundles were made for odoo_config-0.1.0.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.1.0.tar.gz -
Subject digest:
adffba87810bbb744783bfabb7912356ac3ef56083bd1afe1e7175e1d8857f1e - Sigstore transparency entry: 1866551578
- Sigstore integration time:
-
Permalink:
trobz/odoo-config@52a1d2b91c2e38db4b09c02471a044a7345bb281 -
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@52a1d2b91c2e38db4b09c02471a044a7345bb281 -
Trigger Event:
push
-
Statement type:
File details
Details for the file odoo_config-0.1.0-py3-none-any.whl.
File metadata
- Download URL: odoo_config-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.7 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 |
06979cd40eae33589c64a7ff22df029e0e3d9e685dc4f9fb06810b39a72e21dd
|
|
| MD5 |
d14d3e9433e88db71e27c18b2299fee9
|
|
| BLAKE2b-256 |
40023c811d560bab0952b6331624e03d45c80659abefd6f9c5f55e3f4c22aa22
|
Provenance
The following attestation bundles were made for odoo_config-0.1.0-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.1.0-py3-none-any.whl -
Subject digest:
06979cd40eae33589c64a7ff22df029e0e3d9e685dc4f9fb06810b39a72e21dd - Sigstore transparency entry: 1866551635
- Sigstore integration time:
-
Permalink:
trobz/odoo-config@52a1d2b91c2e38db4b09c02471a044a7345bb281 -
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@52a1d2b91c2e38db4b09c02471a044a7345bb281 -
Trigger Event:
push
-
Statement type: