Development and documentation maintenance
The repository targets Odoo 18 Community. pyproject.toml owns local static-check
settings; pytest.ini declares local pytest options and markers. Shared runners
supply their test/coverage configuration. requirements.txt and
oca_dependencies.txt list repository dependencies. Use the configured workspace interpreter and shared
PMIVerse runners. Do not install dependencies merely to render documentation.
Scoped checks
From the repository root, run an affected addon's tests with a task-specific, collision-checked disposable database prefix:
/srv/pmiverse/_pmiconfig/scripts/test/run_pytest_repo.sh \
--addons "$PWD/pmis_account_financial_report" \
--db-prefix test_report_task_ --parallel 1 -- -q --maxfail=1
Use only task-owned synthetic targets. A prefix alone does not prove ownership;
never substitute an existing application database. Add other affected addon
paths to --addons when the behavior spans modules. Runner logs, JUnit, and
coverage artifacts belong in the runner's timestamped output directory, not in
README feature claims. Historical published badges are not fresh acceptance.
For non-writing static checks of one addon:
/srv/pmiverse/_pmiconfig/scripts/test/run_lint_addon.sh \
--addon "$PWD/pmis_account_financial_report" --check
Inspect the actual diagnostics as well as exit status. Use the configured direct Ruff rules and IDE inspections where applicable. XML-only addons have no Python implementation statements to measure; check their loaded architecture/output rather than forcing a Python coverage percentage.
Documentation sources
Maintain README and docs/ prose directly. The marked published badge block in
the root README belongs to the existing badge publisher; do not regenerate it
as part of a documentation-only change. All module manuals and support guides
use docs/, not a parallel doc/ tree.
For each change, follow the loaded implementation, manifest data, views/actions,
security, and relevant tests. Update both English user_manual.md and Slovenian
user_manual_si.md together. Translate every rule, prerequisite, warning, example,
step, and result; do not replace a section with a shorter summary or change its
transaction amounts. UI-label glossaries and explicitly identified English
fallback screenshots are language aids, not different business procedures.
Capture screenshots from the current Odoo interface using fictional records and the documented permissions. Activate the requested language first. Keep the same scenario in both languages; do not fabricate labels or financial results. Refresh images when layouts or illustrated decisions change. Remove obsolete image references so the reader does not learn an outdated workflow.
Check local file targets, heading anchors, image readability, and RST rendering without fetching external assets. Review translated paragraphs semantically; equal heading/image counts alone do not establish translation fidelity.