Skip to content

Repository files navigation

roekish-addons

Open-source reference Odoo modules from Roekish — the team building the French reference for Odoo implementation.

We give away most of what we do. This repository is real, installable code: the custom modules, the conventions we hold ourselves to, and the CI that proves each module installs and upgrades cleanly against Odoo 18 Community. Read it, run it, copy it.

Target platform: Odoo 18.0, PostgreSQL 16. All modules are LGPL-3.

Modules

Module Summary
roe_l10n_fr_invoice_mentions Adds the legally required French payment mentions (Code de commerce L441-9/L441-10, D441-5) to customer invoices: payment terms, late-payment penalty rate, the €40 fixed recovery indemnity and the early-payment discount, computed and printed on the invoice PDF.
roe_base_setup A minimal, installable skeleton module demonstrating our file layout and conventions. Copy it as the starting point for a new custom addon.

Each module has its own README.md with what it does and how to install it.

Quick start (dev stack)

You need Docker (with the Compose plugin) and make.

git clone https://github.com/roekish-org/roekish-addons.git
cd roekish-addons
make up                      # start Odoo 18 + PostgreSQL 16
# open http://localhost:8069 and create a database at /web/database/manager

Then install a module into a fresh database (here with French localization):

docker compose run --rm odoo odoo -d mydb \
    -i base,l10n_fr,roe_l10n_fr_invoice_mentions \
    --load-language=fr_FR --without-demo=all --stop-after-init
make restart

make help lists every convenience target (up, down, logs, lint, ci-smoke, scaffold, …).

Adding a custom addon

All custom modules live under addons/, which is bind-mounted into the Odoo container at /mnt/extra-addons (already on the addons_path). To start a new, convention-compliant module:

make scaffold NAME=roe_my_module
# or: python3 scripts/scaffold_addon.py roe_my_module

The generated module is minimal but complete and installable (one example model + view + access rule + test, clearly marked for you to replace). Third-party / OCA modules are not committed here — vendor them in a separate directory and add it to addons_path.

Tests & CI

CI runs two gates on every push and pull request (see .github/workflows/ci.yml):

  1. Lintruff check + ruff format --check on addons and scripts.
  2. Smoke — installs (and runs the tests of) every module under addons/ against the Dockerised Odoo 18 stack; the build fails if any module does not install/upgrade or any test fails.

Run the exact same checks locally:

make lint        # ruff check + format check
make ci-smoke    # install + test every module against the Docker stack

Conventions

The engineering standards every module here follows are documented in docs/CONVENTIONS.md. The scaffolder (scripts/scaffold_addon.py) is the executable form of that document.

Contributing

Issues and pull requests are welcome — see CONTRIBUTING.md.

License

LGPL-3.0-or-later. See LICENSE. Each module also declares "license": "LGPL-3" in its manifest, and every source file carries an SPDX-style copyright header.

About

Open-source reference Odoo 18 modules from Roekish — French localization (legal invoice mentions), a conventions skeleton, dev stack, scaffolder and CI. LGPL-3.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages