Skip to content

Cómo Contribuir

¡Bienvenido a Yastubo Backend! Valoramos enormemente las contribuciones que nos ayudan a construir la plataforma líder en seguros para migrantes. Antes de realizar tu primera contribución, es fundamental que comprendas nuestro modelo de desarrollo y estándares arquitectónicos.

  • Flujo de Git Transparente: Uso de ramas por funcionalidad y Pull Requests con revisiones de código obligatorias.
  • Aislamiento de Dominios: Estructura modular estricta que evita el acoplamiento excesivo.
  • Auditoría Nativa: Sistema de trazabilidad obligatorio para cualquier cambio de estado.
  • Calidad Automatizada: Verificación de estándares y tests en el proceso de pre-commit.

Antes de comenzar, asegúrate de tener instalado uv y configurar tu entorno local.

Terminal window
make setup
make hooks # Instala los pre-commit hooks

Seguimos el modelo de feature-branching:

  1. Crea una rama desde develop: git checkout -b feat/mi-funcionalidad.
  2. Realiza tus cambios siguiendo las convenciones de Conventional Commits.
  3. Asegúrate de pasar el Quality Gate local antes de subir: make build.

Si estás creando o modificando un módulo en app/modules/, debes respetar la siguiente estructura jerárquica para mantener la coherencia arquitectónica:

ArchivoResponsabilidad
models.pyDefiniciones de esquemas de base de datos SQLAlchemy.
schemas.pyDefiniciones de validación Pydantic para entrada y salida de datos.
service.pyLógica de negocio pura y orquestación de otros módulos.
router.pyDefinición de endpoints FastAPI y gestión de seguridad.
state_machine.py(Opcional) Lógica de transiciones de estado para entidades complejas.
  • No “Joins” Cruzados: Nunca realices consultas SQL que unan tablas de diferentes módulos.
  • Usa el CLI: Utiliza la Yastubo Dev Machine (make cli) para generar el scaffolding de nuevos módulos.
  • Auditoría Obligatoria: Cualquier cambio que afecte al estado de una entidad (Póliza, Cliente, Plan) debe ser decorado con @audited.
  • Tests en Espejo: Todo nuevo código en app/modules/X/ debe tener su correspondiente suite de tests en tests/modules/X/.

[FLOW: El colaborador crea una “Rama” desde develop. Implementa cambios respetando la “Estructura de Módulos”. Ejecuta “make build” para validación local. Envía un “Pull Request”. Un mantenedor realiza la “Revisión de Código”. El “CI” aprueba el build. Merge en “develop”].