Skip to content

ADR-D58: cada entidad citada lleva un descriptor breve y otro largo - #1174

Merged
github-actions[bot] merged 1 commit into
developfrom
docs/d58-cada-entidad-se-nombra
Nov 10, 2026
Merged

github-actions[bot] merged 1 commit into
developfrom
docs/d58-cada-entidad-se-nombra

Conversation

@frapercan

Copy link
Copy Markdown
Owner

Por que

Lo pide el autor el 2026-11-10, despues de corregirme dos veces por nombrarle las cosas con prefijos hexadecimales. No es una cuestion de estilo: para una ventana de evaluacion la plataforma no tiene otra cosa que ofrecer. evaluation_set lleva los dos conjuntos de anotaciones, el job, las estadisticas, el uri y la huella de la verdad, el papel de la ventana, tres snapshots, el perfil de verdad, la regla de terminos y la revision. Todo eso son propiedades; ninguna es un nombre. Y ADR-D56 ya cerro que el par de versiones no sirve, porque 62 de 69 pares cargan mas de una ventana.

El hueco, medido sobre el esquema entero

De las 20 entidades que se citan en una frase, solo 5 llevan los dos descriptores (embedding_config, query_set, model_weights, scoring_config, experiment_run).

les falta cuantas cuales
los dos 10 evaluation_set (87 filas), annotation_set (75), ontology_snapshot (66), prediction_set (26), evaluation_result (21), information_accretion_set (18), evaluation_frame (8), swissprot_release (3), reference_reproduction (1), interpro_go_mapping (0)
el largo 4 dataset, reranker_model, exploration, external_reference
el breve 1 job, con 778 filas

Las cinco decisiones

  1. El alcance es lo que se cita, no lo que se cuenta. protein_go_annotation son 663.408.837 filas y go_prediction 33.423.682: un descriptor por fila ahi es texto que nadie leera, y peor, invita a una etiqueta por fila que contradiga la del conjunto.
  2. El breve es un nombre, o sea unico por tabla y estable una vez escrito. Una etiqueta que cambia no es un nombre: dos frases sobre la misma fila parecerian frases sobre dos filas.
  3. El largo nombra todos los campos que varian entre hermanas. Las tres ventanas largas son el ejemplo trabajado porque son el caso que provoco el registro: dos cierran sobre los terminos del pivote con 39.885 y 63.734 delta, y la tercera toma los vivos en los dos extremos con 40.531 y verdad proyectada. "La ventana larga de validacion" seria verdad de tres poblaciones distintas.
  4. Los dos se escriben en el flush que crea la fila, por la operacion que la midio, y el relleno de lo ya existente deriva de columnas que ya estan o se niega. Donde no se pueda derivar, la fila se queda en NULL y la operacion lo informa: para un nombre, "no puedo decirlo" es mejor que uno equivocado.
  5. Un guardia, con la forma de check_sets.py, que ya camina los metadatos del ORM con cuatro criterios por conjunto. Este anade el quinto sobre una lista mas ancha, en modo informe, y --strict bloquea cuando entre la ultima migracion. La lista vive en el guardia, asi que una entidad citada nueva es un fallo hasta que se declare ahi.

Lo que NO decide, y es del autor

  • Si go_term lleva la definicion del OBO como descriptor largo: son 3.118.456 filas de dato real, no de texto inventado, y el coste es suyo.
  • En que idioma van los nombres que se leen en los dos sitios, dado que el codigo va en ingles y la conversacion en castellano.
  • Si el frontend pasa a mostrar el breve en lugar del uuid donde hoy muestra una fila.

El defecto que encontre al registrarlo

Las filas D54, D55 y D56 del indice tenian 2 celdas en una tabla de 4 columnas, asi que docutils no renderizaba la tabla entera del registro de decisiones: row 53 does not contain the same number of items as row 1 (2 vs 4). CI no lo veia porque .github/workflows/docs.yml corre make html sin -W. Cada fila recupera su Estado y su Fase leidos de su propio ADR. Comprobado con docutils antes y despues: de un error de tabla a ninguno.

Comprobado

check_no_em_dashes (143 ficheros), check_doc_refs, check_autodoc_coverage (59 patrones), check_sets, el lint de tokens vN sobre docs y README.md, y el parseo del indice y del ADR nuevo con docutils. Solo documentacion: ni esquema ni codigo en este PR.

El autor lo pide el 2026-11-10, despues de corregirme dos veces por
nombrarle las cosas con prefijos hexadecimales. No es estilo: es que para
una ventana la plataforma no tiene otra cosa que ofrecer.

Medido sobre el esquema entero: de las 20 entidades que se citan en una
frase, solo 5 llevan los dos descriptores. Diez no llevan ninguno, y son
justo las que mas aparecen: evaluation_set con 87 filas, annotation_set
con 75, ontology_snapshot con 66, prediction_set con 26. Cuatro llevan
el breve y no el largo, y job es la unica al contrario.

El registro fija cinco decisiones: el alcance es lo que se cita y no lo
que se cuenta (protein_go_annotation son 663 millones de filas); el
breve es un nombre, o sea unico y estable, derivado por la operacion que
crea la fila; el largo nombra todos los campos que varian entre
hermanas, con las tres ventanas largas de ejemplo porque son el caso que
lo provoco; ambos se escriben en el mismo flush que crea la fila y el
relleno de lo ya existente DERIVA o se niega; y un guardia, con la forma
de check_sets.py, porque una regla que depende de acordarse produce el
hueco siguiente.

Deja sin decidir tres cosas que son del autor: si go_term lleva la
definicion del OBO como descriptor largo (3.118.456 filas de dato real),
en que idioma van los nombres que se leen en los dos sitios, y si el
frontend pasa a mostrar el breve en lugar del uuid.

Y arregla un defecto que encontre al registrar D58: las filas D54, D55 y
D56 del indice tenian 2 celdas en una tabla de 4 columnas, asi que
docutils no renderizaba la tabla ENTERA del registro de decisiones
("row 53 does not contain the same number of items as row 1"). CI no lo
veia porque el gate de docs corre make html sin -W. Cada fila recupera
su Estado y su Fase leidos de su propio ADR.
@github-actions
github-actions Bot enabled auto-merge (squash) November 10, 2026 00:20
@github-actions
github-actions Bot merged commit 9f09e2c into develop Nov 10, 2026
15 checks passed
@codecov

codecov Bot commented Nov 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.93%. Comparing base (d8bc801) to head (c8b9209).
⚠️ Report is 273 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #1174      +/-   ##
===========================================
+ Coverage    87.85%   87.93%   +0.07%     
===========================================
  Files          306      406     +100     
  Lines        23414    31667    +8253     
===========================================
+ Hits         20570    27845    +7275     
- Misses        2844     3822     +978     

see 170 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

github-actions Bot pushed a commit that referenced this pull request Nov 10, 2026
…1175)

## Lo que pidio el autor

Que cuando alguien quiera usar la plataforma se le avise, **se le
sugiera conectar un nodo de computo** y **se le lleve a una guia**, sin
tener que cambiar el html.

## La guia es documentacion, no una pagina nueva

El Sphinx de esta instancia **ya se sirve en `/sphinx/`** (comprobado:
`https://protea.ngrok.app/sphinx/` responde 200), asi que la guia viaja
con el despliegue y no hay marcado que escribir ni que mantener despues.

`docs/source/operate/join-a-compute-node.rst` dice, para alguien de
fuera:

- para que sirve un nodo y **cuales son las dos etapas**, con la
diferencia que importa: la del modelo de lenguaje quiere tarjeta, y la
del vecino mas cercano **se queda en CPU por decision**, porque el
`auto` elegia la tarjeta en silencio y es el unico camino que fallaba
ahi;
- que necesita la maquina, incluido que los pesos bajan del hub en el
primer uso;
- **por que la revision declarada es el contrato y no una rama**, con
las dos negativas del guardia y la razon: un consumidor equivocado en
silencio es peor que ningun consumidor, y eso ya costo un barrido de
doce brazos;
- las cuatro cosas que un nodo no debe hacer nunca: ejecutar una
operacion directamente, declarar un conjunto a mano, llevarse el vecino
mas cercano a la tarjeta, y guardar estado.

**No publica endpoints ni credenciales.** Dice como pedirlos, y que la
credencial no llega por esta pagina ni por un chat.

## El aviso es una sugerencia, no una advertencia

El que quitamos esta tarde en #1173 solo decia que una secuencia nueva
seria mas lenta, que es informacion con la que el visitante no puede
hacer nada. Este dice **que hacer** y enlaza la guia.

La condicion es la misma, `gpu_present === false`, y conviene ser claro
sobre lo que mide: es `torch.cuda.is_available()` **en la maquina que
sirve la API**, que aqui no tiene tarjeta. Es verdad siempre en esta
instalacion y lo seguira siendo hasta que alguien conecte un nodo, asi
que el aviso esta permanentemente encendido **y eso es correcto ahora**:
describe el estado real de la instancia y propone el remedio.

El texto entero vive en `messages/*.json`, en los cinco idiomas, con una
etiqueta `<guia>` que el componente convierte en enlace por el patron
`t.rich` que ya usa `UsagePolicyModal`. **Cambiar lo que dice no toca el
componente.**

## Comprobado

- `npm test`: 41 ficheros, 419 tests, incluidos `messagesParity` y
`messagesAskedForExist`, que son los que caerian si la clave faltara en
un idioma o la llamada no tuviera clave.
- `tsc --noEmit`: el mismo unico error que ya traia `develop`
(`tests/useUrlParam.test.tsx`, `beforeEach`), ajeno a este cambio.
- **Sphinx construido entero** en un entorno aparte, sin tocar el venv
de la plataforma: `build succeeded`, la pagina nueva sale con 36 KB y
sus dos referencias (`/runbooks/deployment` y `/reference/workers`)
resueltas, y ni un aviso sobre ella ni sobre el indice de ADRs que
arreglamos en #1174.

## Un dato que sale de aqui y conviene no perder

El Sphinx que la instancia **sirve hoy** es del **7 de octubre**. La
guia no sera visible hasta que se reconstruya, y con ella entraria un
mes de documentacion que el sitio publico no muestra. Eso va en el
despliegue, no en este PR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant