addons-cm/.gitea/issue-bot.md
GitHub Copilot d9d9e8be2d
[ADD] ci: Forgejo Actions CI and Claude bots ported from ecocentral
Same system as ecocentral-18 (see its docs/CI-CD.md):

- ci.yml: lint (pre-commit), test (tools/ci/run_tests.py, OCA-style
  two-phase install) and review (PR bot, after lint and test).
- issue-bot.yml: the issue bot answers issues or opens a PR on bot/issue-N.
- pr-bot.yml: review when WIP is removed or the i18n label is added.
- .gitea/issue-bot.md: context for the bots; this repo is shared by
  several clients.

The bot scripts are copies of ecocentral's. Only the defaults differ (repo,
token and state files, i18n languages es,eu,ca,gl) along with the [I18N]
commit message and the references to the runner's sources.txt.

The jobs run on a second forgejo-runner registration (CriptoMart org) on
ecocentral's runner machine, sharing its image, mounts and cache. The
runner files (Dockerfile, update.sh, sources.txt) live in ecocentral.
Specific to this repo:

- ODOO_SRC_SKIP: the runner's /odoo-src/18.0 holds a clone of addons-cm,
  so test skips it and checks the PR checkout instead.
- BOT_BASE_BRANCH "18.0": the repo's default branch is 16.0.
- test PostgreSQL on port 54330: ecocentral's runs on 54329 and a test job
  from each repo can run at the same time.

The lint job fails until the repo is cleaned up with
pre-commit run --all-files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 14:34:58 +02:00

2.3 KiB

Este repo no es de un único cliente: son los addons de Odoo 18 Community que Criptomart comparte entre varias instancias (Elika Bilbo y otros grupos y cooperativas de consumo, y Ecocentral, que lo usa como dependencia). Hay addons de precios y productos, compra colectiva para grupos de consumo (website_sale_aplicoop), socias y cuotas, TPV (CashDro), logística y contabilidad.

  • Un cambio aquí llega a todas las instancias que instalan ese addon. Cuida la compatibilidad: nada de suponer la configuración, los datos ni el idioma de un cliente concreto, y nada que rompa los datos que ya existen (sube la versión del manifest y añade un script de migración cuando haga falta). Si lo que se pide solo tiene sentido para un cliente, propón hacerlo configurable o en un addon aparte, y dilo.
  • La rama 18.0 es la de trabajo. 16.0 y 17.0 son de versiones anteriores de Odoo: si una incidencia se refiere a ellas, dilo en lugar de resolverla aquí. Si se refiere a un addon propio de un cliente (por ejemplo los eco_* de ecocentral), también.
  • Las fuentes de Odoo y OCA traen un clon de este mismo repo (addons-cm) de la última actualización semanal: el código que vale es el del árbol de trabajo, no ese clon.
  • Convenciones de código: .github/copilot-instructions.md. Lo principal: la lógica de negocio va en product.product (en product.template, campos related); nada de lógica en QWeb ni en JavaScript, se prepara en Python; sin _() en la definición de los campos; no se modifican los addons de OCA ni el core, se heredan desde un addon propio.
  • Idioma de los textos: el código, los comentarios y los textos que ve el usuario (campos, vistas, mensajes) se escriben en inglés, y sus traducciones van en i18n/<idioma>.po. Castellano (es.po) y euskera (eu.po) son obligatorios; hay addons con ca.po y gl.po. Los .po se editan con polib, nunca con msgmerge, que los corrompe.
  • Las personas que abren incidencias escriben en castellano o en euskera, y usan Odoo en castellano o en euskera: nombra los menús y campos como salen en pantalla en su idioma.
  • Commits con el estilo [FIX] website_sale_aplicoop: show the full product name on the cards (etiquetas [ADD] [FIX] [IMP] [REF] [REM] [I18N] [DOC]), en inglés; título y descripción del PR también en inglés.