docs: la guia escrita como notas, sin adornos
This commit is contained in:
parent
abae8132a4
commit
5bce7d38ed
3 changed files with 158 additions and 198 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# Frontera con upstream: que se puede tocar y que no
|
||||
|
||||
> Las reglas para el dia a dia estan en [GUIA_DE_DESARROLLO.md](../GUIA_DE_DESARROLLO.md).
|
||||
> Este documento es la medicion que las justifica.
|
||||
Las normas del dia a dia estan en [GUIA_DE_DESARROLLO.md](../GUIA_DE_DESARROLLO.md); esto
|
||||
es la medicion de la que salen.
|
||||
|
||||
Medido el 19/10/2026 sobre el repositorio del dev (code.03c8.net/krakenslab/oasis),
|
||||
de la release 1.0.1 (29/08) a la 1.3.3 (18/10), y comparado con la rama PRUEBAS.
|
||||
|
|
@ -10,17 +10,17 @@ contar con `git log --numstat` por fichero.
|
|||
|
||||
## 1. Como trabaja el dev
|
||||
|
||||
- **Una release casi cada dia**: 39 entre la 1.0.1 y la 1.3.3, en siete semanas.
|
||||
- Una release casi cada dia: 39 entre la 1.0.1 y la 1.3.3, en siete semanas.
|
||||
Cada una es un solo commit ("Oasis release X.Y.Z"), sin historia intermedia: no
|
||||
hay forma de coger un cambio suelto, siempre llega todo junto.
|
||||
- **El backend crece sin parar**: `backend.js` paso de ~9.900 a ~15.400 lineas y se
|
||||
- El backend crece sin parar: `backend.js` paso de ~9.900 a ~15.400 lineas y se
|
||||
toca en 34 de 39 releases. La cadena de middleware (el array `middleware` del final)
|
||||
ha ganado capas en este tiempo: contexto por peticion (`requestScope`), idioma de
|
||||
primera ejecucion, CSP, etc.
|
||||
- **Ya piensa en el movil**: tiene su propio tema `OasisMobile.css`, usa la misma
|
||||
- Ya piensa en el movil: tiene su propio tema `OasisMobile.css`, usa la misma
|
||||
bandera `process.env.OASIS_MOBILE` que la rama y tiene workflows `activists` y
|
||||
`mobile`. Va en nuestra direccion; cuanto mas nos pisemos con el, peor.
|
||||
- **Las clases CSS cambian, pero poco a poco**: de la 1.0.1 a la 1.2.0 aparecen 335
|
||||
- Las clases CSS cambian, pero poco a poco: de la 1.0.1 a la 1.2.0 aparecen 335
|
||||
clases y desaparecen 98; hasta la 1.3.1, +304 / -94; de la 1.3.1 a la 1.3.3, +47 / -8.
|
||||
Unas 100 clases muertas cada tres semanas, sobre ~2.200: un 5 %.
|
||||
|
||||
|
|
@ -64,13 +64,13 @@ cambia el comportamiento de la red, no solo como se ve.
|
|||
debe seguir).
|
||||
- `translations/oasis_*.js`: se reescriben en 31 de 39 releases.
|
||||
- `src/client/assets/styles/style.css` y `mobile.css`: son del dev.
|
||||
- `src/client/assets/themes/*.css` de upstream, **incluido `OasisMobile.css`**.
|
||||
- `src/client/assets/themes/*.css` de upstream, incluido `OasisMobile.css`.
|
||||
|
||||
### Ambar: solo un gancho de una linea, con la bandera de movil
|
||||
|
||||
Las vistas de upstream (`main_views.js`, `tribes_view.js`, `vote_view.js`,
|
||||
`settings_view.js`...). Se reescriben a menudo, asi que lo que la rama necesite ahi va
|
||||
como **una llamada a una funcion nuestra**, envuelta en
|
||||
como una llamada a una funcion nuestra, envuelta en
|
||||
`process.env.OASIS_MOBILE === '1'`, y la logica vive en un fichero propio. Si el dev
|
||||
reescribe la vista, se vuelve a poner una linea, no se reconstruye una funcion.
|
||||
|
||||
|
|
@ -93,7 +93,7 @@ reescribe la vista, se vuelve a poner una linea, no se reconstruye una funcion.
|
|||
|
||||
| Fichero de upstream | Lineas distintas | Riesgo |
|
||||
|---|---|---|
|
||||
| `themes/OasisMobile.css` | 4.873 | **Alto**: es casi otro fichero. El dev lo toca en 21/39 releases y cada vez hay que elegir entre su version y la nuestra. |
|
||||
| `themes/OasisMobile.css` | 4.873 | Alto: es casi otro fichero. El dev lo toca en 21/39 releases y cada vez hay que elegir entre su version y la nuestra. |
|
||||
| `views/main_views.js` | 173 | Alto (31/39) |
|
||||
| `backend/backend.js` | 133 (21 trozos) | Alto (34/39) |
|
||||
| `configs/oasis-config.json` | 135 | Medio: es la config de serie del movil |
|
||||
|
|
@ -101,7 +101,7 @@ reescribe la vista, se vuelve a poner una linea, no se reconstruye una funcion.
|
|||
| `backend/updater.js` | 133 | Bajo (3/39) |
|
||||
| `views/modules_view.js` | 91 | Bajo (5/39) |
|
||||
| `views/parliament_view.js`, `settings_view.js`, `vote_view.js`, `tribes_view.js` | 50-75 cada una | Medio-alto |
|
||||
| `models/workflows_model.js` | 31 | Medio: **redefine el workflow `activists` del dev** |
|
||||
| `models/workflows_model.js` | 31 | Medio: redefine el workflow `activists` del dev |
|
||||
| `server/ssb_config.js`, `SSB_server.js` | 40 | Medio (multicuenta) |
|
||||
|
||||
Las hojas propias y `OasisMobile.css` llevan selectores a clases que ya no pinta nadie:
|
||||
|
|
@ -110,31 +110,31 @@ nada, pero son peso muerto y confunden.
|
|||
|
||||
## 4. Reglas para cada cambio
|
||||
|
||||
1. **Primero CSS.** Si se arregla con una hoja propia, se arregla ahi.
|
||||
2. **Si hace falta HTML distinto**: funcion en un fichero propio + una linea en la vista
|
||||
1. Primero CSS. Si se arregla con una hoja propia, se arregla ahi.
|
||||
2. Si hace falta HTML distinto: funcion en un fichero propio + una linea en la vista
|
||||
de upstream, con la bandera de movil.
|
||||
3. **Si hace falta una ruta o retocar una respuesta**: en el router propio. Nunca una
|
||||
3. Si hace falta una ruta o retocar una respuesta: en el router propio. Nunca una
|
||||
ruta nueva ni un middleware en `backend.js`.
|
||||
4. **Nunca cambiar lo que se publica ni como se cuenta** (modelos de upstream).
|
||||
5. **Textos nuevos** en `i18n_fork.js`, en los 11 idiomas.
|
||||
6. **Nada en linea**: la CSP no deja `style=""` ni `<script>` en la pagina.
|
||||
4. Nunca cambiar lo que se publica ni como se cuenta (modelos de upstream).
|
||||
5. Textos nuevos en `i18n_fork.js`, en los 11 idiomas.
|
||||
6. Nada en linea: la CSP no deja `style=""` ni `<script>` en la pagina.
|
||||
7. Antes de integrar una release, repetir esta medicion y mirar si alguna clase de la
|
||||
que dependemos ha desaparecido.
|
||||
|
||||
## 5. Plan para sanear la rama
|
||||
|
||||
- **Fase A (hecha el 19/10)**: lo del 19/10 que se metio en ficheros del dev sale a
|
||||
- Fase A (hecha el 19/10): lo del 19/10 que se metio en ficheros del dev sale a
|
||||
ficheros propios. Ver la seccion 6.
|
||||
- **Fase B: `OasisMobile.css`.** Devolverle la version del dev y llevar nuestra maqueta
|
||||
- Fase B: `OasisMobile.css`. Devolverle la version del dev y llevar nuestra maqueta
|
||||
a una hoja propia (`styles/mobile_base.css`) que carguen Acampada y el skin
|
||||
OasisMobile de la rama. Es el mayor foco de conflictos.
|
||||
- **Fase C: los 21 trozos antiguos de `backend.js`** (exportar copia de seguridad,
|
||||
- Fase C: los 21 trozos antiguos de `backend.js` (exportar copia de seguridad,
|
||||
avatar de la topbar, `#t=0.1` en los videos, filtro del lanzador...) pasan al router
|
||||
propio como envoltorios.
|
||||
- **Fase D: workflows.** Devolver `activists` al del dev y registrar los nuestros
|
||||
- Fase D: workflows. Devolver `activists` al del dev y registrar los nuestros
|
||||
(`acampada`) desde un fichero propio, empujandolos a los arrays que exporta
|
||||
`workflows_model.js`.
|
||||
- **Fase E: limpieza** de selectores muertos en las hojas propias.
|
||||
- Fase E: limpieza de selectores muertos en las hojas propias.
|
||||
|
||||
## 6. Fase A: lo que se ha movido
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue