diff --git a/GUIA_DE_DESARROLLO.md b/GUIA_DE_DESARROLLO.md new file mode 100644 index 0000000..c1fb8b1 --- /dev/null +++ b/GUIA_DE_DESARROLLO.md @@ -0,0 +1,218 @@ +# Guía de desarrollo de OASIS_MOBILE + +**Léela antes de tocar nada.** Esta rama vive encima de Oasis, que desarrolla +epsylon (el dev) y que saca una versión casi cada día. Todo lo que añadimos tiene +que sobrevivir a la siguiente versión sin reescribirlo. Esta guía dice qué se puede +tocar, qué no y cómo hacer cada tipo de cambio. + +Las cifras y el razonamiento están en +[docs/FRONTERA_UPSTREAM.md](docs/FRONTERA_UPSTREAM.md). Aquí solo van las reglas. + +--- + +## 1. La regla de oro + +> **Oasis lo cambia el dev. Nosotros cambiamos cómo se ve en el móvil.** +> +> Lo que la rama añade va en **ficheros nuestros**. En un fichero del dev, como mucho, +> **una línea que llama a un fichero nuestro**, y solo en el móvil. + +¿Por qué? Entre la 1.0.1 y la 1.3.3 (siete semanas) el dev publicó 39 versiones, cada +una en un único commit. `backend.js` cambió en 34 de ellas, `main_views.js` en 31, +las traducciones en 31. Cada línea nuestra en esos ficheros es un conflicto casi +seguro en la próxima integración. Y si tocamos cómo se publica o se cuenta algo en la +red, nuestro móvil deja de entenderse con los demás nodos. + +--- + +## 2. El semáforo + +### ROJO: no se toca + +| Qué | Dónde | Por qué | +|---|---|---| +| El backend del dev | `src/backend/backend.js` | Cambia en 34/39 versiones. Rutas, middleware, todo. | +| La cadena de middleware | el array `middleware` al final de `backend.js` | Crece en cada versión (contexto por petición, idioma, CSP...). | +| Los modelos del dev | `src/models/*` salvo los nuestros (ver verde) | Definen qué se publica en el log SSB y cómo se cuenta. Cambiarlos rompe la red. | +| El arranque de SSB | `src/server/*` (`SSB_server.js`, `ssb_config.js`, `package.json`) | Dependencias y conexión con la red. | +| La política de seguridad | `src/backend/request_guards.js` | La CSP: sin `style=""` ni `