diff --git a/GUIA_DE_DESARROLLO.md b/GUIA_DE_DESARROLLO.md index c1fb8b1..6b77c42 100644 --- a/GUIA_DE_DESARROLLO.md +++ b/GUIA_DE_DESARROLLO.md @@ -1,218 +1,180 @@ -# Guía de desarrollo de OASIS_MOBILE +# Guía de desarrollo -**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. +Notas para quien vaya a meter mano en la rama del móvil. Leedlas antes de empezar, +que nos ahorramos disgustos. -Las cifras y el razonamiento están en -[docs/FRONTERA_UPSTREAM.md](docs/FRONTERA_UPSTREAM.md). Aquí solo van las reglas. +Esta rama va encima de Oasis, que es de epsylon. Él saca versión casi cada día +(39 entre la 1.0.1 y la 1.3.3, en siete semanas) y cada versión llega en un solo +commit. Si metemos cosas en sus ficheros, en cada integración hay que volver a +pelearse con ellas. Por eso la idea es sencilla: lo de Oasis lo cambia él; nosotros +cambiamos cómo se ve y se usa en el móvil, y lo hacemos en ficheros nuestros. ---- +Los números y de dónde salen están en `docs/FRONTERA_UPSTREAM.md`. -## 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. +## Lo que no se toca -¿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. +- `src/backend/backend.js`. Cambia en 34 de cada 39 versiones. Ni rutas nuevas, ni + middleware, ni envolver funciones suyas como `checkMod`. +- La cadena de middleware del final de `backend.js`. Crece en cada versión. +- Los modelos de `src/models/`, salvo los nuestros (`karvan_model.js`, + `fork_workflows.js`). Ahí se decide qué se publica en la red y cómo se cuenta. + Si lo cambiamos, nuestro móvil cuenta distinto que el escritorio de al lado. Un + ejemplo real: quien crea una votación no puede votar en ella. No nos gusta, pero + es una regla del modelo, así que se explica en pantalla y punto. +- `src/server/` (arranque de SSB, `ssb_config.js`, `package.json`). +- `src/backend/request_guards.js`, que lleva la CSP. Nada de `style=""` ni de + `