Skip to content

Commit 4b543bf

Browse files
[UPD] Copilot instructions
1 parent b3de385 commit 4b543bf

1 file changed

Lines changed: 16 additions & 18 deletions

File tree

.github/copilot-instructions.md

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,11 @@
4343
* **Regla de versión (obligatoria):**
4444
Siempre que el diff incluya **modificaciones en**:
4545

46-
* definición de campos o modelos (`models/*.py`),
47-
* vistas o datos XML (`views/*.xml`, `data/*.xml`, `report/*.xml`),
46+
* definición de campos o modelos (`models/*.py`, `wizards/*.py`),
47+
* vistas o datos XML (`views/*.xml`, `data/*.xml`, `report/*.xml`, `wizards/*.xml`),
4848
* seguridad (`security/*.csv`, `security/*.xml`),
4949
**y el `__manifest__.py` no incrementa `version`, sugerir el bump de versión** (por ejemplo, `1.0.0 → 1.0.1`).
50-
* Cambios funcionales mínimos → **patch** (`x.y.Z`).
51-
* Cambios de esquema o de compatibilidad → **minor** (`x.Y.0`).
52-
* Cambios disruptivos (breaking changes) → **major** (`X.0.0`).
50+
* Solo hacerlo una vez por revisión, aunque haya múltiples archivos afectados.
5351

5452
---
5553

@@ -75,11 +73,12 @@
7573

7674
## Detección de cambios estructurales (esquema / datos)
7775

78-
Cuando el diff sugiera **cambios de estructura de datos**, **siempre proponer** un **script de migración** en la carpeta `scripts/`, usando pre/post/end según corresponda (ver mapeo más abajo) **y recordar el bump de versión**.
76+
Cuando el diff sugiera **cambios de estructura de datos**, **siempre proponer** un **script de migración** en la carpeta `migrations/`, usando pre/post/end según corresponda (ver mapeo más abajo) **y recordar el bump de versión**.
7977
Ejemplos de cambios estructurales:
8078

79+
* Carpeta dentro de `migrations/` debe ser la versión correspondiente en el manifest (e.g. `migrations/18.0.5.0/`).
8180
* Renombrar campos o modelos.
82-
* Cambiar tipos de campo (e.g. `Char → Many2one`, `Selection → Many2one`, `Float → Monetary`).
81+
* Cambiar tipos de campo (e.g. `Char → Many2one`, `Selection → Many2one`, etc.).
8382
* Quitar campos para reestructurar información en otros (split/merge).
8483
* Agregar campos `compute` **almacenados** (`store=True`) que requieren backfill.
8584
* Cambiar dominios/valores de `selection` (añadir/eliminar/renombrar keys).
@@ -153,13 +152,13 @@ Ejemplos de cambios estructurales:
153152
154153
---
155154

156-
## Convenciones de scripts en `scripts/`
155+
## Convenciones de scripts en `migrations/`
157156

158-
* Ubicación: `scripts/`
157+
* Ubicación: `migrations/`
159158
* Nombres sugeridos:
160159

161-
* `pre_<version>_<breve-descripcion>.py`
162-
* `post_<version>_<breve-descripcion>.py`
160+
* `pre_<breve-descripcion>.py`
161+
* `post_<breve-descripcion>.py`
163162
* Requisitos:
164163

165164
* Idempotentes (seguros si se ejecutan más de una vez).
@@ -171,7 +170,7 @@ Ejemplos de cambios estructurales:
171170
**Esqueleto mínimo (ejemplo):**
172171

173172
```python
174-
# scripts/pre_19.0_rename_partner_ref.py
173+
# migrations/18.0.4.0/pre_rename_partner_ref.py
175174
from odoo import api, SUPERUSER_ID
176175

177176
def migrate(cr, registry):
@@ -186,7 +185,7 @@ def migrate(cr, registry):
186185
```
187186

188187
```python
189-
# scripts/post_19.0_backfill_stored_amount_total.py
188+
# migrations/18.0.4.0/post_backfill_stored_amount_total.py
190189
from odoo import api, SUPERUSER_ID
191190

192191
def migrate(cr, registry):
@@ -209,7 +208,7 @@ def migrate(cr, registry):
209208
| Vistas XML | Herencias correctas; campos válidos; adaptación a cambios de versión (p.ej. `<list>` vs `<tree>`) |
210209
| Manifest | **Bump de versión obligatorio** si hay cambios en modelos/vistas/seguridad/datos; archivos referenciados |
211210
| Seguridad | Accesos mínimos necesarios; reglas revisadas |
212-
| Migraciones | **Si hay cambios estructurales, exigir script en `scripts/` (pre/post/end)** y describir qué hace |
211+
| Migraciones | **Si hay cambios estructurales, exigir script en `migrations/` (pre/post/end)** y describir qué hace |
213212
| Rendimiento / ORM | Evitar loops costosos; no SQL innecesario; aprovechar mejoras de v19.0 |
214213
| Ortografía & typos | Errores evidentes corregibles sin modificar idioma ni estilo |
215214

@@ -219,7 +218,7 @@ def migrate(cr, registry):
219218

220219
* **SI** el diff toca cualquiera de: `models/`, `views/`, `data/`, `report/`, `security/`, `wizards/`
221220
**Y** `__manifest__.py` no cambia `version`**Sugerir bump**.
222-
* **SI** hay scripts `scripts/pre_*.py` o `scripts/post_*.py` nuevos → **Sugerir al menos minor bump**.
221+
* **SI** hay scripts `migrations/pre_*.py` o `migrations/post_*.py` nuevos → **Sugerir al menos minor bump**.
223222
* **SI** hay cambios que rompen compatibilidad (renombres, tipos, required sin default) → **Sugerir minor/major** según impacto.
224223

225224
---
@@ -241,9 +240,8 @@ def migrate(cr, registry):
241240

242241
* “El campo `partner_id` no se encuentra referenciado en la vista.”
243242
* “Este método redefine `write()` sin usar `super()`.”
244-
* “En v19.0, `<tree>` ya no se usa; reemplazar por `<list>`.”
245243
* “Tip: hay un error ortográfico en el nombre del parámetro.”
246-
* **Bump + migración:** “Se renombra `old_ref``new_ref`: falta **bump de versión** y **pre-script** en `scripts/` para copiar valores antes del upgrade; añadir **post-script** para recompute del stored.”
244+
* **Bump + migración:** “Se renombra `old_ref``new_ref`: falta **bump de versión** y **pre-script** en `migrations/` para copiar valores antes del upgrade; añadir **post-script** para recompute del stored.”
247245

248246
* Evitar explicaciones largas o reescrituras completas salvo que el cambio sea claro y necesario.
249247

@@ -252,5 +250,5 @@ def migrate(cr, registry):
252250
## Resumen operativo para Copilot
253251

254252
1. **Detecta cambios en modelos/vistas/seguridad/datos → exige bump de `version` en `__manifest__.py`.**
255-
2. **Si hay cambio estructural → propone y describe script(s) de migración en `scripts/` (pre/post/inline),** con enfoque idempotente y en lotes.
253+
2. **Si hay cambio estructural → propone y describe script(s) de migración en `migrations/` (pre/post/end),** con enfoque idempotente y en lotes.
256254
3. Mantén el feedback **concreto, breve y accionable**.

0 commit comments

Comments
 (0)