Saltar a contenido

Pull Requests del Sistema A3

Guía para crear y revisar Pull Requests del ERP interno de A Terceros Inmobiliaria.

Antes de Crear un PR

  1. ✅ Tu código compila sin errores
  2. ✅ Los tests pasan
  3. ✅ Código formateado con black + isort
  4. ✅ No hay secretos en el código
  5. ✅ Documentación actualizada (si aplica)

Crear un Pull Request

1. Naming de Branch

feature/descripcion-corta      # Nueva funcionalidad
bugfix/descripcion-del-bug     # Corrección
refactor/que-se-refactoriza    # Refactorización
docs/que-documentas            # Documentación

2. Template de PR

## Resumen
Descripción breve del cambio (1-2 líneas).

## Cambios
- Agregar modelo X
- Actualizar vista Y
- Corregir bug en Z

## Tipo de Cambio
- [ ] Bug fix
- [ ] Nueva funcionalidad
- [ ] Breaking change
- [ ] Documentación

## Testing
Describe cómo probaste los cambios.

## Screenshots
(Si aplica)

## Checklist
- [ ] Código compila
- [ ] Tests pasan
- [ ] No se rompen flujos SPA
- [ ] Imports ordenados con isort
- [ ] Código formateado con black
- [ ] Documentación actualizada
- [ ] No se suben secretos
- [ ] requirements.txt actualizado (si aplica)
- [ ] Migraciones creadas (si aplica)

## Notas Adicionales
Cualquier información relevante.

3. Título del PR

Ejemplos: - ✅ feat: agregar módulo de reportes avanzados - ✅ fix: corregir cálculo de comisiones en apartados - ✅ docs: actualizar documentación de API - ❌ cambios (muy genérico) - ❌ fix (sin descripción)

Revisión de PRs

Revisores Asignados por Módulo

Cada PR requiere mínimo 1 aprobación de un reviewer autorizado:

Módulo/Área Reviewers Principales
Inventario / Apartados [Dev Senior Ventas]
RH / Checador [Dev Senior RH]
Finanzas / Comprobaciones [Dev Senior Finanzas]
API / Integraciones [Arquitecto de Software]
Frontend / UI [Frontend Lead]
DevOps / Infraestructura [DevOps Lead]
Cambios Arquitectónicos Requiere aprobación de Tech Lead
Cambios en BD Requiere aprobación de DBA/DevOps

Nota: Si tu cambio afecta múltiples módulos, solicita review de los reviewers correspondientes.

SLA de Code Review

Tipo de PR SLA de Review Quién Revisa
Hotfix (P0) 2-4 horas Tech Lead o quien esté disponible
Urgente (P1) 8 horas Reviewer asignado
Normal (P2) 24 horas hábiles Reviewer asignado
Baja prioridad (P3) 48 horas hábiles Cuando haya capacidad

Si tu PR lleva más de 48 horas sin review: Escalar a Tech Lead en #dev-sistema-a3.

Para Revisores

Qué revisar:

  1. Funcionalidad: ¿Hace lo que dice que hace? ¿Cumple requerimientos del ticket?
  2. Código: ¿Sigue estándares de código?
  3. Tests: ¿Tiene tests? ¿Pasan? ¿Cobertura adecuada?
  4. Seguridad: ¿Hay vulnerabilidades? ¿Valida inputs? ¿No expone datos sensibles?
  5. Performance: ¿Hay N+1 queries? ¿Afecta tiempos de respuesta?
  6. Documentación: ¿Está documentado? ¿Docstrings actualizados?
  7. Lógica de Negocio: ¿Es correcta según procesos de A Terceros?

Cómo dar feedback constructivo:

# Evitar
❌ Esto está mal

# Mejor
Línea 45: Podría haber un problema de N+1 queries aquí que afecte
el listado de apartados cuando hay muchos registros.

Sugerencia: Usar `select_related('cliente', 'asesor')` para
optimizar la consulta.

Para Autores de PRs

Responder a comentarios: - Implementa cambios solicitados en commits adicionales - Responde con preguntas si no entiendes el comentario - Marca conversaciones como resueltas cuando aplicas cambios - Mantén comunicación profesional - Si no estás de acuerdo, explica tu razonamiento técnico

Re-solicitar review: Después de hacer cambios solicitados, re-solicita review del mismo reviewer.

Aprobar y Mergear un PR

Requisitos para Merge

  1. ✅ Aprobación: Mínimo 1 aprobación de reviewer autorizado
  2. ✅ Tests pasan: CI/CD debe estar en verde
  3. ✅ Conflictos resueltos: Sin conflictos con la rama master
  4. ✅ Branch actualizado: Rebase con master reciente
  5. ✅ Revisión de seguridad: No hay secretos, no hay vulnerabilidades obvias

Quién Puede Mergear

  • Desarrolladores Senior: Pueden mergear sus propios PRs después de aprobación
  • Desarrolladores Junior/Mid: Tech Lead o Senior Dev mergea
  • Hotfixes: Solo Tech Lead o DevOps
  • Cambios en Producción: Requiere aprobación de Tech Lead + DevOps

Estrategia de Merge

  • Squash and merge: Para features con muchos commits
  • Merge commit: Para mantener historial completo
  • Rebase: Para mantener historial lineal

Deployment Post-Merge

Proceso Automático

Después de mergear a master:

  1. CI/CD ejecuta tests automáticamente (GitHub Actions)
  2. Deploy automático a Staging si tests pasan
  3. QA en Staging: Equipo de QA prueba funcionalidad
  4. Deploy a Producción: Manual, ejecutado por DevOps

Horarios de Deploy a Producción

Horarios Permitidos: - Lunes a Jueves: 10:00 AM - 4:00 PM (hora local) - Viernes: Solo hotfixes críticos (P0) - Fines de semana: Solo en emergencias con autorización

Evitar: - Deploys antes de fines de semana largos - Deploys después de las 4:00 PM - Deploys de features grandes los viernes

Responsable de Deploys: [DevOps Lead - nombre]

Después del Merge

  1. Elimina la rama (GitHub lo sugiere automáticamente)
  2. Monitorea Staging: Verifica que el deploy funcionó correctamente
  3. Actualiza ticket/issue: Marca como "En Staging" o "Deployed to Staging"
  4. Notifica en Slack: Menciona en #sistema-a3-deploys si es cambio importante
  5. Monitorea logs: Revisa logs en Heroku por errores después del deploy
  6. Coordina con QA: Si requiere pruebas específicas, notifica al equipo de QA

Si Algo Sale Mal

  1. Notifica inmediatamente en #sistema-a3-urgente
  2. Contacta DevOps: [contacto de DevOps]
  3. Evalúa rollback vs hotfix:
  4. Rollback si el problema es crítico
  5. Hotfix si la solución es rápida
  6. Documenta el incidente: Crear postmortem para incidentes mayores

PRs Grandes

Si tu PR tiene más de 500 líneas de código modificadas:

  1. Divide en PRs más pequeños siempre que sea posible
  2. Agrega contexto extenso en la descripción del PR
  3. Considera draft PR primero para obtener feedback temprano sobre el enfoque
  4. Documenta arquitectura: Si es cambio arquitectónico, documenta decisiones
  5. Coordina con Tech Lead: PRs muy grandes requieren aprobación del Tech Lead
  6. Más reviewers: Solicita review de 2+ personas para PRs grandes

Draft PRs

Usa draft PRs para: - Pedir feedback temprano - Mostrar progreso - Discutir enfoque antes de completar

[WIP] feat: nueva funcionalidad X

CI/CD

PRs triggers automáticos: - Formateo de código (black, isort) - Tests (pytest) - Security scans (opcional)

Mejores Prácticas

  1. PRs pequeños: Más fáciles de revisar
  2. Un cambio a la vez: No mezclar features con fixes
  3. Tests incluidos: Siempre que agregues código nuevo
  4. Actualiza con main: Rebase frecuentemente
  5. Descripción clara: Ayuda a los revisores

Ver también: - Guía de Desarrollo - Estándares de Código - Testing - Procesos Internos