Skip to main content

gOdoo

Odoo source workspaces, runtime lifecycle, and developer tooling.

From shared Git worktrees to database restores, native migrations, and a running Odoo instance.

Quality Latest release Python 3.11+ License: LGPL v3

Quick start · Commands · Documentation · Contributing


gOdoo is a Python CLI for teams developing and operating Odoo projects. It manages manifest-selected sources, prepares databases with their matching filestores, and runs Odoo against that prepared state.

Git, workspace commands, and editor configuration run on the host. Runtime commands run in the selected Python environment. Your downstream project owns Docker, system packages, runtime users, service ordering, and debugger startup.

What you can do

Area Capabilities
Source workspaces Select Odoo and addon repositories through a manifest; share managed Git worktrees and generate VS Code configuration.
Runtime lifecycle Initialize, reconcile, inspect, and launch Odoo with explicit commands and dependency preflight.
Database & filestore Back up and restore matching pairs, load fixed datasets, overlay upgraded archives, and reuse development reset baselines.
Migrations & hooks Use native Odoo migrations for versioned repairs and phase-based hooks for module requests and environment setup.
Dependencies & builds Plan addon Python requirements from source manifests and install them into an explicit interpreter.
Daily development Run Odoo tests, open shells, execute scripts, and manage a running instance through RPC.

Runtime commands require Odoo 16 or newer. CI checks gOdoo on Python 3.11 and 3.12; the example Odoo 19 stack uses PostgreSQL 18 with pgvector.

Quick start

Run the example development stack

Install Git, uv, Python 3.11 or newer, Make, Docker, and Docker Compose. Then clone the development branch and install the host tools:

git clone https://github.com/OpenJKSoftware/gOdoo.git
cd gOdoo
make setup
cp .env.sample .env

Edit .env before continuing:

  • Set GODOO_SOURCES_ROOT to an absolute directory outside this checkout, accessible to Docker.
  • Set the database credentials and target values for your environment.

Review odoo_manifest.yml to select Odoo and any third-party sources, then run:

make sync       # Synchronize managed source worktrees.
make workspace  # Generate the host editor workspace.
make dev        # Build and start the example Compose stack.

make sync changes managed worktrees and may reset verified worktrees. make workspace generates editor configuration; make dev validates source paths on the host before starting Compose.

The example stack uses Nginx for HTTP and file delivery. See downstream runtime setup for image, networking, restore dataset mounts, and production build configuration.

Use gOdoo in your own project

Install the CLI from the development branch:

uv tool install "git+https://github.com/OpenJKSoftware/gOdoo.git@main"

On Linux, the PostgreSQL Python driver also requires PostgreSQL development headers and a C compiler. Your runtime environment needs the Odoo sources, Python dependencies, PostgreSQL tools, and system packages described in the downstream guide.

Run workspace commands from your project's directory, with its own .env and odoo_manifest.yml. Run runtime commands in the Python environment that contains Odoo; gOdoo uses VIRTUAL_ENV, otherwise the project's .venv. Follow the source workspace guide to configure sources and the editor.

Commands

Command Purpose
godoo workspace Synchronize, validate, inspect storage, and materialize selected sources; generate editor files.
godoo runtime Initialize and launch Odoo, report runtime status, plan dependencies, and open shells.
godoo db Back up, restore, reset, and inspect databases and their filestores.
godoo test Run Odoo tests, load test data, and find changed modules.
godoo rpc Manage modules, configuration parameters, imports, and translations over RPC.
godoo upgrade Forward arguments to Odoo's official upgrade client.
godoo run Run odoo-bin with explicit arguments in the selected runtime environment.

Commands read the project .env. Explicit CLI values → exported environment → project .env is the configuration precedence. Use godoo --help or godoo <command> --help for the full reference.

Prepare on every server start

Initialization prepares the database and matching filestore, checks dependencies, and runs selected module updates and hooks. runtime start performs this work before launching Odoo on the same target. Use it as the app entrypoint so Docker restarts also prepare the runtime; the app depends on a healthy database.

# Run in a configured runtime environment with other Odoo writers stopped.
godoo runtime start --update-changed

--update-changed selects native upgrades from source hashes; unchanged starts skip upgrades. Explicit maintenance runtime init and prepared-only runtime launch remain available. runtime init --if-needed skips all hooks and reconciliation on a ready runtime; runtime start always initializes explicitly. Inspect state without changing it:

godoo runtime status --json

See the lifecycle guide for dataset selection, demo mode, restore progress, reset baselines, and recovery. Use native migrations and hooks for versioned repairs and recurring environment policy.

Documentation

Guide Start here when you need to…
Source workspaces Select shared sources, generate editor configuration, or configure host development.
Runtime lifecycle Initialize, restore, upgrade, reset, or recover a database and filestore.
Lifecycle hooks Request modules, write reconciliation hooks, or integrate native Odoo migrations.
Downstream runtime setup Configure Docker images, Compose services, PostgreSQL, Nginx, and dataset storage.
Repository architecture Find the code and tests responsible for a behavior.

Migrating from earlier versions

The host workspace and explicit runtime commands replace the former Dev Container workflow. Downstream projects now own their Dockerfile and Compose configuration.

Legacy command reference
Previous command or surface Current equivalent
Repository Dev Container startup Downstream-owned Dockerfile and Compose
godoo source get godoo workspace sync, then godoo runtime init
godoo source sync-conf godoo runtime init
godoo deployment-init, ensure-runtime, bootstrap godoo runtime init
godoo reconcile-runtime godoo runtime init --update or --install
godoo launch, shell, shell-script Corresponding godoo runtime command
godoo reset godoo db reset
Generated source Compose or provenance files godoo workspace configure and live inspection

Other godoo source inspection and dependency helpers are retired. Inspect checked-out worktrees directly; runtime preflight checks Python dependencies. Use native Odoo migrations and lifecycle hooks for upgrade work.

Contributing

Bug reports and focused pull requests are welcome. Open an issue with the gOdoo revision, Odoo version, command, and relevant diagnostics so the behavior can be reproduced.

For development, follow the source checkout steps above. Install the pinned text formatter with npm ci, then open godoo.code-workspace so the repository's editor settings apply. See repository architecture for code ownership and test layout.

Run the host quality checks and repository tests:

make lint
make test

Real Odoo/PostgreSQL integration tests use a prepared runtime environment and the separate make test-odoo-integration target. See runtime lifecycle and downstream setup before running them.

License & acknowledgements

gOdoo is licensed under the GNU Lesser General Public License v3.0.

Made possible by WEMPE Elektronic GmbH.

Metadata

Release files for gOdoo-cli 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gOdoo-cli 1.0.6
File Size Uploaded Provenance Actions
godoo_cli-1.0.6.tar.gz 372.8 kB Without provenance Details for godoo_cli-1.0.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for gOdoo-cli 1.0.6
File Interpreter ABI Platform Actions
godoo_cli-1.0.6-py3-none-any.whl Python 3 none any Details for godoo_cli-1.0.6-py3-none-any.whl

Total release size: 525.1 kB

Release files / godoo_cli-1.0.6.tar.gz

Download URL godoo_cli-1.0.6.tar.gz
Size 372.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7d5c69667cb8fa5727b63bc164fd0ce6a1bd3854c4f1cdaff09ce3c6975ccc4c
BLAKE2b-256 checksum
How to use checksums
3968cab3eb36f134678b9c47b3cc7bb90fc377110a40b7f89d0c0166e922eae0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.2 {"ci":true,"cpu":"x86_64","distro":{"id":"resolute","libc":{"lib":"glibc","version":"2.43"},"name":"Ubuntu","version":"26.04"},"implementation":{"name":"CPython","version":"3.12.3"},"installer":{"name":"hatch","version":"1.18.2"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.12.3","system":{"name":"Linux","release":"7.0.0-1017-azure"}} HTTPX2/2.16.0

Release files / godoo_cli-1.0.6-py3-none-any.whl

Download URL godoo_cli-1.0.6-py3-none-any.whl
Size 152.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
449b49e3da15d037501a171ac75cbd8f3ea8cde6706175ad714b7c6b9a7cfdcd
BLAKE2b-256 checksum
How to use checksums
6a175c0de6dee119d9bbd50715a226f3f87bbc276d1cf5ee5a731826a6d333c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Hatch/1.18.2 {"ci":true,"cpu":"x86_64","distro":{"id":"resolute","libc":{"lib":"glibc","version":"2.43"},"name":"Ubuntu","version":"26.04"},"implementation":{"name":"CPython","version":"3.12.3"},"installer":{"name":"hatch","version":"1.18.2"},"openssl_version":"OpenSSL 3.0.13 30 Jan 2024","python":"3.12.3","system":{"name":"Linux","release":"7.0.0-1017-azure"}} HTTPX2/2.16.0

Security for gOdoo-cli 1.0.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page