Skip to content

chore(release): promover develop a release (Sprint 4) - #6

Merged
santiagohb2830 merged 12 commits into
releasefrom
develop
Oct 20, 2026
Merged

santiagohb2830 merged 12 commits into
releasefrom
develop

Conversation

@santiagohb2830

Copy link
Copy Markdown
Contributor

Qué hace

Promueve a release (QA) todo lo fusionado en develop durante el Sprint 4. Es parte de la promoción conjunta de los 6 repos (Core, Gateway, Rules, Dispatch, Flutter y Landing): el Gateway de develop cierra las rutas internas de Core (SCRUM-1073) y espera los endpoints de Core develop, así que se fusionan juntos.

  • develop: 9f7ab3c
  • release antes: f8582aa
  • Commits que entran: 12
  • Historias: SCRUM-1070, SCRUM-1123, SCRUM-1225, SCRUM-1226, SCRUM-1227, SCRUM-1265

Conflictos

Ninguno: release es ancestro de develop, el PR es directo desde develop.

Verificación

CI y Quality Gate de develop en verde en 9f7ab3c. Checks obligatorios del PR: «Pruebas y cobertura» y «Sonar Quality Gate».

Se fusiona con merge commit (sin squash). El push a release publica la imagen :staging en GHCR; el despliegue en la VM de QA es manual.

Warriorr89 and others added 12 commits October 7, 2026 19:28
- Pruebas de humo con JUnit 5: arranque del contexto de Spring y
  endpoint de salud (/health y /api/v1/rules/health).
- JaCoCo 0.8.12 genera target/site/jacoco/jacoco.xml, la ruta que lee
  SonarQube por defecto.
- Workflow CI: mvn verify en cada PR y push a main; publica el reporte
  de cobertura como artefacto.
- README documenta como ejecutar pruebas y cobertura.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
…res uniformes y rutas del Gateway

- CorrelationIdFilter: X-Correlation-ID al MDC (patron de logs ya lo leia) y
  a la respuesta; "none" si falta, igual que Core.
- GlobalExceptionHandler + ApiError: forma {error, code, correlationId}
  comun con Core para 400/404/405/415/500.
- HealthController separado; RulesController responde con y sin el prefijo
  /api/v1/rules porque el Gateway lo recorta antes de reenviar (antes
  /api/v1/rules/evaluate-rate llegaba como /evaluate-rate y daba 404).
- Quita @crossorigin("*"): CORS es responsabilidad unica del Gateway.
- CI tambien en push a develop.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…les Service

POST /api/v1/rules/categories/evaluate (tambien sin prefijo, por el Gateway)
con el contrato declarado por Core en US-03.1.1-M2.2: { allowed,
ruleSetVersion, violations[] } + normalized.

- CategoryRuleEvaluator: funcion pura con las reglas de
  crear_categoria_servicio() (migracion 003): nombre normalizado 3-60 con
  letra (MANI-CAT-422N), flujo operativo permitido (MANI-CAT-422F); UPDATE
  parcial; OPERATE exige categoria activa (MANI-CAT-422C).
- Tenant solo desde X-Tenant-Id (claim del Gateway/Core); tenantId del
  cuerpo distinto => 403 TENANT_MISMATCH. CREATE/UPDATE exigen rol ADMIN.
- CategoryRulesProperties: parametros en mani.rules.category.* con override
  por tenant y version trazable; configuracion incoherente falla el arranque.
- El 409 por nombre duplicado sigue en el indice unico (requiere estado).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ra/Quality Gate

- CategoryRuleEvaluatorTest: limites 2/3/60/61, conteo por caracteres como
  char_length (emoji), letras Unicode, normalizacion, flujos, acumulacion
  de violaciones, UPDATE parcial, OPERATE, reglas configurables, determinismo.
- CategoryRulesPropertiesTest: binding real con override por tenant (UUID),
  version trazable y configuracion incoherente que impide el arranque.
- CategoryRulesControllerTest: contrato HTTP completo, prefijo del Gateway,
  roles ADMIN/admin_tenant vs ALLY, TENANT_REQUIRED/TENANT_MISMATCH,
  400/401/403/415; UnexpectedErrorTest: 500 uniforme sin filtrar detalle.
- jacoco:check en verify (lineas >= 85 %, ramas >= 80 %); hoy 93.6 % / 87.8 %.
- CI: SonarCloud con sonar.qualitygate.wait=true cuando existe SONAR_TOKEN;
  publica reportes de Surefire.

85 pruebas, mvn verify en verde.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…-java

[SCRUM-1123] Esqueleto de pruebas unitarias del servicio Java (JUnit 5 + JaCoCo)
…ia-rules-java

[SCRUM-1070] US-03.1.1-M6: reglas de categoría en el Rules Service Java
[SCRUM-1123] Sincroniza develop con main (PR #1 entró a main)
…e reglas

Agrega quality-gate.yml en dos jobs: pruebas, cobertura JaCoCo y compilado en
ubuntu-latest; scanner en el runner self-hosted de la VM de Calidad con espera
del Quality Gate (proyectos mani-java y mani-java-pr). Los PRs desde forks
fallan el check en vez de omitirlo.

La configuracion de Sonar pasa del pom.xml (SonarCloud) a
sonar-project.properties, y ci.yml deja de intentar el analisis de SonarCloud.
…onarqube

[SCRUM-1265] Quality Gate de SonarQube self-hosted para el servicio de reglas
El analisis de mani-java avisaba 'Missing sonar.java.test.libraries'. El job
de pruebas copia tambien las dependencias de alcance test a
target/test-dependency, se publican en el artefacto y el properties las declara
en sonar.java.test.libraries.
[SCRUM-1265] Agrega las dependencias de prueba al análisis de SonarQube
@santiagohb2830
santiagohb2830 merged commit e90f32b into release Oct 20, 2026
7 checks passed
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.

3 participants