Contributing to ERPipe
July 22, 2026 · View on GitHub
Thanks for helping improve open-core MCP access to Odoo.
Prerequisites
- Node.js ≥ 20 (CI uses Node 22; see
.nvmrc) - npm (workspaces)
- Optional: a local Odoo instance for
npm run smoke:live
Setup
git clone https://github.com/erpipe-org/erpipe.git
cd erpipe
npm install
npm run build
npm run typecheck
npm test
Monorepo layout
| Path | Package | Notes |
|---|---|---|
packages/core | @erpipe/core | Tools, transports, field policy — no Workers imports · published |
packages/xmlrpc | @erpipe/odoo-xmlrpc | Fetch-based XML-RPC · published |
packages/worker-selfhost | @erpipe/worker-selfhost | Example Worker (private, not published) |
Build order matters: xmlrpc → core → worker-selfhost. Root npm run build enforces this.
Publishing (maintainers)
npm run build
npm run typecheck
npm test
# publish dependency first
npm publish -w @erpipe/odoo-xmlrpc --access public
npm publish -w @erpipe/core --access public
Bump versions in the workspace package.json files (and lockstep dependency ranges) before each release.
Development
# unit tests (watch)
npm run test:watch
# self-host Worker
npm run dev:selfhost
# pure TS surface (no Python)
npm run parity:ts
# live Odoo smoke (requires env — see SMOKE.md)
ODOO_URL=... ODOO_DB=... ODOO_USERNAME=admin ODOO_PASSWORD=... npm run smoke:live
Pull requests
- Branch from
main - Keep changes focused (one concern per PR when possible)
- Ensure build + typecheck + test pass locally
- Update docs if you change tools, env vars, or public APIs
- Use a clear commit message (Conventional Commits preferred:
feat:,fix:,docs:,chore:)
PR checklist
-
npm run build && npm run typecheck && npm testpass - New tools documented in docs/tools.md if the surface changed
- No secrets (
.env, API keys, customer data) in the diff - Related issue linked (if any)
Code style
- TypeScript strict; match existing patterns in the package you touch
- Prefer small, testable pure functions in
@erpipe/core - Do not import Cloudflare Workers APIs into
@erpipe/coreor@erpipe/odoo-xmlrpc
Security
See SECURITY.md. Do not file public issues for vulnerabilities.
License
By contributing, you agree that your contributions are licensed under the MIT License.