Skip to main content

Build Status codecov code-style-black version pypi-downloads-monthly supported-versions wheel commits-since

codebase-memory-deployv

Install codebase-memory-mcp and index Odoo instances by parts inside containers following the Vauxoo layout:

/home/odoo/instance/odoo
/home/odoo/instance/extra_addons/*

This tool only runs inside such a container (or SSH session) as user odoo; it refuses to start when /home/odoo/instance/odoo/odoo-bin is missing. It always indexes the real instance path — never an rsync/copy — so later code references and edits target the right files.

Install

pip install codebase-memory-deployv

Usage

codebase-memory-deployv

That single command:

  1. Installs codebase-memory-mcp in the local environment when it is not available yet.

  2. Resolves a stable project name from ${MAIN_REPO_FULL_PATH}/variables.sh, or from ${MAIN_REPO_PATH}/variables.sh relative to --repo-path (PROJECT=${MAIN_APP}_${VERSION}, e.g. vauxoo_12.0), so each container/customer gets its own graph and every pass reuses the same --name. Both variables are exported by deployv and point at the one repo that owns MAIN_APP/VERSION; only when neither is set does it fall back to globbing extra_addons/*/variables.sh, which is ambiguous when several repos ship one.

  3. Picks the module list, in this order:

    • --modules-file given → the modules listed there (see below).
    • Database reachable through odoo-bin shell → only installed modules from ir.module.module (no test_* addon modules, keeping backend unit tests inside real modules), listed by list_installed_modules.py which is fed to the shell.
    • Neither → every addon module found on disk.
  4. Renders .cbmignore (Odoo core odoo/odoo complete + selected modules, dropping static/lib, static/tests, minified JS, caches and .git) in cumulative batches of 25 modules, running codebase-memory-mcp cli index_repository after each batch so memory-killed one-shot indexing is never a problem.

  5. Validates the graph scope: no test_* addon modules indexed, no missing and no extra module roots compared to the expected module list, and every indexed file carrying one of the configured extensions (SOURCE_GLOBS: .py .xml .js .rst .md .css .scss .csv) — anything else means .cbmignore did not apply. Counts per extension are logged, unexpected ones marked (!):

    extensions_configured=.css,.csv,.js,.md,.py,.rst,.scss,.xml
    extensions_indexed=5 files=12057
    extension .py      files=4949
    extension .xml     files=3276
    extension .json    files=39 (!)
    unexpected_extensions=1 files=39 (not in SOURCE_GLOBS: .json)
    

    Both checks read the graph with query_graph over its File nodes, not with search_code: that one greps the indexed files and hard-caps the scan at 500 matched lines whatever --limit says, which reports the tail of a real instance (Odoo 19 alone ships 533 manifests) as missing.

Options

--repo-path PATH    instance root to index (default: /home/odoo/instance)
--project NAME      graph name; default derives MAIN_APP_VERSION from variables.sh
--batch-size N      modules per cumulative indexing pass; 0 indexes one-shot (default: 25)
--mode MODE         auto (default), installed, or all
--modules-file PATH ir.module.module export listing the modules to index
--skip-install      do not install codebase-memory-mcp when missing
--skip-validate     do not validate graph scope after indexing

Indexing the modules installed in production

A local docker container only installs the modules of the main app, while production usually has more modules installed by hand. Export ir.module.module from production and pass the file, so the graph covers the same code production runs:

codebase-memory-deployv --modules-file modules_installed.csv

The file is an ir.module.module export, either a csv or one module name per line (# comments and blank lines are ignored):

name,state
sale,installed
purchase,uninstalled
  • With a state column (state/status), only the installed rows are used.
  • Without one, the file is assumed to be already filtered to the installed modules.
  • Column headers may be the technical names (name, state) or the exported labels (Technical Name, Status); a headerless file is read as name[,state].
  • Modules listed but missing on disk are reported as not_on_disk and skipped — they simply are not in this container's repos.

Development

tox -e py-multi   # tests in parallel
tox -e lint       # pre-commit checks
tox -e build      # release rehearsal (sdist+wheel, twine check, install smoke test)

CHANGES

v0.1.3

  • [REF] Run lint autofixes
  • [REF] indexer: Consider .sql files for neutralize.sql sources

v0.1.2

  • [IMP] codebase-memory-deployv: auto-upgrade past the pin when a good stable ships
  • [FIX] codebase-memory-deployv: pin codebase-memory-mcp to v0.9.1-rc.1
  • [FIX] codebase-memory-deployv: parse both query_graph CLI output formats
  • [ADD] codebase-memory-deployv: badges in the README

v0.1.1

  • [REF] codebase-memory-deployv: read variables.sh the way pre-commit-vauxoo does
  • [FIX] codebase-memory-deployv: make the test suite pass on Windows
  • [ADD] codebase-memory-deployv: install codebase-memory-mcp and index Odoo instances by parts

Metadata

Release files for codebase-memory-deployv 0.1.3

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

Source distribution (sdist)

Source distribution for codebase-memory-deployv 0.1.3
File Size Uploaded
codebase_memory_deployv-0.1.3.tar.gz 24.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for codebase-memory-deployv 0.1.3
File Interpreter ABI Platform
codebase_memory_deployv-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 40.6 kB

Release files / codebase_memory_deployv-0.1.3.tar.gz

Download URL codebase_memory_deployv-0.1.3.tar.gz
Size 24.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4ec7f16ba688b198a6ce3014110b2ecbd8f42d3660cd7dd7007f7b4b7404bff2
BLAKE2b-256 checksum
How to use checksums
17e2b92a47954d07a6be34769491532aead4385a8bd02322b3a80449c4722d27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / codebase_memory_deployv-0.1.3-py3-none-any.whl

Download URL codebase_memory_deployv-0.1.3-py3-none-any.whl
Size 16.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e121937d445b5ede9766725eaf2883147f2eb4b9044c7a52df2ba1356187e9f9
BLAKE2b-256 checksum
How to use checksums
56bc9f01ad9bd238c2d9ed4660e66cd11572c53a4c63e7f0e5116395ffd1ba07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

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