Contribuciones
Las contribuciones son bienvenidas. El proyecto sigue un pequeño conjunto de convenciones para que cada cambio sea revisable, comprobable y publicable.
Configuración del entorno de desarrollo
Sección titulada «Configuración del entorno de desarrollo»npm cinpm run typechecknpm testFlujo de ramas y releases
Sección titulada «Flujo de ramas y releases»El repositorio utiliza dos ramas de larga duración:
develop— rama de integración; todos los PRs la tienen como destino.main— rama de releases; se actualiza solo mediante semantic-release al publicar.
Los releases se automatizan con semantic-release: los commits deben seguir la
especificación de Conventional Commits.
Cada commit en develop aparece en el changelog y en las notas de release —
escribe mensajes de commit para lectores humanos, no para la herramienta.
Para qué añadir una prueba
Sección titulada «Para qué añadir una prueba»Cualquier cambio de comportamiento en el analizador, el validador o el manejo de archivos debe incluir pruebas respaldadas por fixtures. La estructura de fixtures sigue la estructura de las fuentes:
tests/fixtures/— muestras.archimateen XML plano y en zip;tests/parser/— comportamiento de análisis, valores crudos frente a semánticos, valores por defecto;tests/validator/— cada código de issue que el validador puede emitir;tests/archive/— manejo de zip, incluidos archivos con imágenes incrustadas;examples/— ejemplos de uso ejecutables, cada uno con un harnesstests/examples.test.ts.
Cambios en la API pública
Sección titulada «Cambios en la API pública»src/index.ts y src/archive.ts son todo el contrato público (véase
Principios de diseño). Los cambios en ellos:
- se documentan en JSDoc en el código fuente, ya que la referencia de API de este sitio se genera a partir de él;
- aumentan la versión según las reglas de semantic-release (fix/feat/BREAKING CHANGE);
- nunca llegan en silencio — la descripción del PR debe señalarlos.
Documentación
Sección titulada «Documentación»Las páginas del sitio viven en website/src/content/docs/; el grupo de
referencia de API se genera a partir del JSDoc (npm run gen:api dentro de
website/) en tiempo de build y deploy — no se hace commit de él. Cuando un
PR cambia la API pública, el JSDoc del código fuente es la documentación; las
páginas generadas lo siguen automáticamente.
Antes de abrir un PR
Sección titulada «Antes de abrir un PR»npm run typechecknpm testnpm run test:published # exercises the archive pipeline end-to-endDespués, abre el PR contra develop. Si el cambio es visible para el usuario,
las entradas de las notas de release/changelog se producen automáticamente en
el momento de la publicación — sin edición manual del changelog.