Skip to content

Conversation

@Jandres25
Copy link
Contributor

📋 Descripción

Este Pull Request contiene el Release v2.0.0 oficial del proyecto, un major release que introduce cambios significativos y marca la evolución de una calculadora CLI simple a una aplicación completa con interfaz gráfica, testing automatizado y CI/CD.

🎉 Major Release - Interfaz Gráfica + Testing Automatizado

Este release incluye:

  • 🖥️ Interfaz Gráfica Completa (GUI) con tkinter

    • Calculadora visual con diseño moderno y tema oscuro
    • Display de alta resolución
    • Grid de botones organizados por función
    • Diseño responsive
  • ⌨️ Soporte Completo de Teclado

    • Atajos para todos los números (0-9)
    • Operadores (+, -, *, /, ^)
    • Enter/= para calcular
    • Escape para limpiar
    • Backspace para borrar
  • 🧪 Testing Automatizado de GUI

    • test_gui_calculator.py con suite completa de tests
    • conftest.py con mocks de Tkinter (DummyRoot, DummyEntry, DummyButton, DummyLabel)
    • Tests ejecutables sin display gráfico (headless)
    • Compatible con CI/CD
  • 🤖 CI/CD con GitHub Actions

    • Pipeline automático en cada PR
    • Tests en ambiente headless
    • Validación continua de calidad
  • 🔧 Funcionalidades de GUI

    • Entrada numérica por clicks
    • Botón decimal con validación
    • Botones Clear (C) y Backspace (⌫)
    • Funciones científicas: abs, max, min
    • Soporte para números negativos
    • Manejo visual de errores
  • 📝 Documentación Completa

    • README. md profesional con badges
    • CHANGELOG.md detallado
    • Guía de usuario para GUI
    • Créditos a todos los contribuidores

🔗 Issues Relacionadas

Issues que se cerrarán automáticamente:

Closes #15, Closes #18, Closes #20, Closes #22, Closes #23, Closes #24, Closes #25, Closes #26, Closes #28, Closes #29, Closes #30, Closes #36, Closes #37, Closes #38, Closes #41, Closes #43

📋 Ver lista detallada de issues (16 issues)

🎯 Tipo de Cambio

  • 🐛 Bug fix (corrección de error)
  • ✨ Nueva funcionalidad
  • 📝 Mejora de documentación
  • ♻️ Refactoring (sin cambios de funcionalidad)
  • 🧪 Tests (agregar o mejorar tests)
  • 🎨 Estilo (formateo, nombres de variables)
  • 🚀 Release (preparación para release)

🧪 ¿Cómo se ha probado?

  • Tests unitarios
  • Prueba manual
  • Probado en diferentes sistemas operativos

Comandos ejecutados:

# Tests de calculadora básica
pytest test_calculator.py -v

# Tests de GUI con mocks
pytest test_gui_calculator.py -v

# Todos los tests
pytest -v

# Verificar CLI
python main.py

# Verificar GUI
python gui.py

# CI/CD
# ✅ GitHub Actions: Todos los tests pasando en cada PR

Resultados:

  • ✅ Todos los tests unitarios pasando (CLI)
  • ✅ Todos los tests de GUI pasando (con mocks)
  • ✅ CI/CD verificado en 24+ PRs
  • ✅ Probado manualmente en Windows/Linux/Mac
  • ✅ No hay conflictos entre dev y main

✅ Checklist

  • Mi código sigue las convenciones del proyecto
  • He realizado self-review de mi código
  • He comentado mi código en áreas complejas
  • He actualizado la documentación correspondiente
  • Mis cambios no generan nuevas advertencias
  • He agregado tests que prueban mis cambios
  • Los tests nuevos y existentes pasan localmente
  • Los commits siguen Conventional Commits
  • CI/CD pasa exitosamente

📊 Estadísticas del Release v2.0.0

Números:

  • 📦 Commits totales: 60+
  • 🔀 Pull Requests mergeados: 24+
  • Issues completadas: 16
  • 👥 Contribuidores: 3
  • 📅 Duración del desarrollo: ~3 semanas (Nov 6 - Nov 28)

Archivos:

  • Archivos nuevos (4):

    • gui.py - Interfaz gráfica con tkinter
    • test_gui_calculator.py - Tests de GUI
    • conftest.py - Fixtures y mocks de Tkinter
    • . github/workflows/ci.yml - Pipeline CI/CD
  • 📝 Archivos modificados:

    • README.md - Documentación completa actualizada
    • CHANGELOG. md - Historial de v2.0.0
    • calculator.py - Mejoras y refactoring

Pull Requests Incluidos:

🔀 Ver todos los PRs mergeados (24+)

📝 Notas Adicionales

Lo que incluye este Release:

Interfaz Gráfica:

  • Ventana principal 320x400px
  • Tema oscuro profesional
  • Botones numéricos (0-9)
  • Operadores (+, -, *, /, ^)
  • Funciones científicas (abs, max, min)
  • Botón decimal con validación
  • Clear (C) y Backspace (⌫)
  • Display de alta resolución

Testing:

  • Tests unitarios para lógica matemática
  • Tests de GUI con mocks (sin dependencia de Tcl/Tk)
  • Fixtures de pytest con autouse=True
  • Ejecutable en entornos headless

CI/CD:

  • Workflow para main y dev
  • Ejecución automática en cada PR
  • Tests en ambiente sin display

Documentación:

  • README profesional con badges
  • Tabla de atajos de teclado
  • Instrucciones de instalación
  • Guía de contribución
  • CHANGELOG completo

Issues Pendientes para v2.1.0:

🙏 Agradecimientos

Este release fue posible gracias al trabajo colaborativo de todo el equipo:

Contribuidores:

@Jandres25 - Jose Andres Meneces Lopez

[@Jhos3ph](https://github. com/Jhos3ph) - Jose Orozco

@alexricardotapiacarita-ai - Alex Tapia


🎉 Celebración

Este release marca un hito importante en el proyecto:

  • ✅ De CLI simple → Aplicación completa con GUI
  • ✅ De tests básicos → Testing robusto automatizado
  • ✅ De desarrollo manual → Pipeline de CI/CD
  • ✅ De documentación básica → Documentación profesional

¡60+ commits, 24+ PRs, 16 issues completadas!

Gracias a todo el equipo por demostrar excelentes prácticas de:

  • 🤝 Colaboración en equipo
  • 📝 Code reviews constructivas
  • 🧪 Testing riguroso
  • 📖 Documentación clara
  • 🔄 Git Flow profesional

📚 Comparación de Versiones

v1.0.0 (2025-11-04)
└── Calculadora CLI básica
    ├── Operaciones matemáticas básicas
    ├── Funciones: abs, max, min
    └── Tests unitarios simples

v2.0.0 (2025-11-28) ← ESTE RELEASE
└── Aplicación completa con GUI
    ├── Todo lo de v1.0.0
    ├── Interfaz gráfica con tkinter
    ├── Soporte de teclado completo
    ├── Testing automatizado de GUI
    ├── CI/CD con GitHub Actions
    └── Documentación profesional

👥 Revisores Sugeridos

@Jhos3ph @alexricardotapiacarita-ai

Petición Final:

Este es el merge oficial del release v2.0.0 a main. Por favor:

  • ✅ Revisar que todo esté correcto
  • ✅ Verificar que las issues listadas sean las correctas
  • ✅ Confirmar que están listos para el release
  • ✅ Aprobar cuando estén de acuerdo

Una vez mergeado, procederemos a crear el tag y el GitHub Release oficial.


🚀 Release v2.0.0 - ¡El proyecto evoluciona!


Branch: maindev
Tipo: Major Release
Versión: v2.0.0
Fecha: 2025-11-28

Alex and others added 30 commits November 7, 2025 19:19
feat: ajustar diseño segun selección del equipo
feat: Implementar lógica de clic para entrada numérica
feat: implementar botón decimal con validación en la calculadora Tkinter
feat(core): añadir lógica de operaciones (+, -, *, /, ^) y soporte para botón "="
feat: implementar botones C y ⌫ con su funcionalidad correspondiente
feat: Agregar funciones científicas (abs, max, min) con integración en GUI
docs — Añadir guía de usuario para la GUI
refactor(gui): mejorar funciones unarias y manejo de errores
…ns-ci

feat: Configurar CI/CD con GitHub Actions
Merge branch 'dev' into feat/soporte-numeros-negativos
@Jandres25 Jandres25 requested a review from Jhos3ph November 30, 2025 00:53
@Jandres25 Jandres25 self-assigned this Nov 30, 2025
@Jandres25 Jandres25 added documentación Cambios en README, docstrings, etc. ayuda requerida Se necesita asistencia o revisión release Tarea de release labels Nov 30, 2025
Copy link
Contributor

@alexricardotapiacarita-ai alexricardotapiacarita-ai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esta bien

Copy link
Contributor

@Jhos3ph Jhos3ph left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these changes are amazig

@Jandres25 Jandres25 merged commit ee619e8 into main Nov 30, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment