SmartERP Documentation An Ashewa Technology Solutions Platform

Local Development Environment and Toolchain Setup

Step-by-step instructions for configuring Python 3.12+, PostgreSQL 16, uv/pip, Docker, pre-commit git hooks, and VS Code / Antigravity development tools.

1. Overview & Business Value#

This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Local Development Environment and Toolchain Setup within SmartERP.

Configuring a standardized local development environment ensures reproducible runtime behavior and prevents deployment regressions.

Prerequisites & System Packages#

  • Operating System: macOS (Apple Silicon / Intel) or Linux (Ubuntu 22.04 / 24.04 LTS).
  • Python Runtime: Python 3.12+ with virtual environment tools (venv or uv).
  • Database Engine: PostgreSQL 16 with development libraries (libpq-dev).
  • Node & Playwright: Node.js v20+ for automated browser test harnesses.

{screenshot:local-environment-and-toolchain-overview-dashboard}

2. Prerequisites & Security Access Groups#

  • Required Modules: base, web, smarterp_core
  • Security Groups:
    • Enterprise Developer (Technical ID: base.group_no_one)
    • System Administrator (Technical ID: base.group_system)
  • Master Data Dependencies: Established local development toolchain (Python 3.12+, PostgreSQL 16), cloned repository (smarterp-platform), and valid database configuration.

3. Step-by-Step Configuration & Execution#

Step 1: Navigating to the Module Interface#

  1. Open your terminal or development environment in the repository root (/Users/danielbekele/smarterp-platform).
  2. Activate your dedicated Python virtual environment.
  3. Verify Git branch status: git status.

{screenshot:local-environment-and-toolchain-app-switcher-navigation}

Step 2: Creating and Parameterizing Records#

  1. Execute development commands or scaffolding templates.
  2. Define mandatory manifest parameters:
    • name (Mandatory): Descriptive module title.
    • version (Mandatory): Standard semantic versioning (e.g. 19.0.1.0.0).
    • depends (Mandatory): Explicit list of upstream module dependencies.
    • license (Mandatory): Open source or proprietary enterprise license identifier.
  3. Configure optional parameters: data files, security ACLs, and automated test cases.

{screenshot:local-environment-and-toolchain-record-creation-form}

Step 3: Validating and Processing Transactions#

  • Execution & Testing: Run unit tests via odoo-bin -i <module_name> --test-enable --stop-after-init.
  • Quality Verification: Ensure test suite passes with zero errors and zero unhandled warnings.

{screenshot:local-environment-and-toolchain-transaction-processing-state}

4. Advanced Configuration Points#

  • Automated Actions & Scheduled Tasks (Crons):
    • Developer: Module test runner trigger (base.ir_cron_run_tests)
    • System: Automated cache cleanup (base.ir_cron_cache_cleanup)
  • Custom Print Templates & Reports:
    • Technical Data Dictionary Specification
    • Code Quality & Test Coverage Dossier
  • Multi-Company Rules: Record-level security isolation under Company 1 (Ashewa Technology Solutions S.C.).

5. Comprehensive Troubleshooting Matrix#

Error Symptom / ExceptionProbable Root CauseCorrective Action / Resolution
ImportError: cannot import name from odooOutdated virtualenv or PYTHONPATH misconfiguration.Re-activate virtualenv and verify that Odoo 19 libraries are correctly installed.
ParseError: Element '<tree>' is deprecatedAttempting to use legacy Odoo tree view syntax in Odoo 19.Replace <tree> with <list> in the view XML definition.
ValidationError: External ID not foundManifest data list contains an item before its prerequisite is loaded.Re-order XML filenames in __manifest__.py so security and parent menus load first.
Last updated: 2026-10-30