Realizar la integración final de todas las funcionalidades desarrolladas y preparar el proyecto para el release oficial v2.0.0. Este es un release mayor que introduce la interfaz gráfica de usuario, testing automatizado, soporte de teclado y mejoras significativas.
## [2.0.0] - 2025-11-28
### 🎉 Major Release - Interfaz Gráfica + Testing Automatizado
Este release marca una evolución significativa del proyecto, introduciendo una interfaz gráfica completa, testing automatizado robusto, soporte de teclado y múltiples mejoras de usabilidad.
#### Agregado
**Interfaz Gráfica de Usuario**
- Calculadora visual con tkinter (#15, #16, #17)
- Display interactivo para números y resultados
- Grid de botones para todas las operaciones
- Diseño moderno con tema oscuro (#18, #19, #20, #21)
**Funcionalidades de GUI Implementadas**
- Entrada numérica por clicks (#22, #31)
- Botón decimal con validación (#25, #32)
- Lógica de operadores matemáticos (#26, #33)
- Botones Clear (C) y Backspace (⌫) (#28, #34)
- Funciones científicas: abs, max, min (#30, #35)
- Soporte para números negativos (#41, #45)
- Mejoras en manejo de múltiples negativos (#43)
- Soporte completo de teclado (#37, #47)
**Testing Automatizado**
- Archivo `test_gui_calculator.py` con tests de GUI usando pytest (#23, #48)
- Archivo `conftest.py` con fixtures y mocks para Tkinter (#48)
- Tests ejecutables sin display gráfico (ideal para CI/CD)
- Clases dummy: DummyRoot, DummyEntry, DummyButton, DummyLabel
**CI/CD con GitHub Actions**
- Pipeline automático de tests en cada PR (#36, #42)
- Workflow configurado para ramas `main` y `dev`
- Validación continua de calidad de código
- Ejecución de pytest en ambiente headless
**Documentación**
- Guía de usuario para la GUI (#24, #40)
- Mejoras de funciones unarias y manejo de errores (#29, #39)
#### Mejorado
- Experiencia de usuario con dos interfaces disponibles (CLI y GUI)
- Refactoring de lógica redundante en manejo de operadores (#46)
- Manejo visual de errores en la GUI
- Validación de entrada de decimales y negativos
- Organización del proyecto con separación clara CLI/GUI/tests
#### Técnico
- Implementación de clase `CalculatorGUI` con tkinter
- Sistema de grid layout responsivo para botones
- Binding de eventos de teclado en tkinter
- Fixtures de pytest con `autouse=True`
- Mocks de componentes Tkinter para testing
- Workflow de GitHub Actions (`. github/workflows/ci.yml`)
#### Mantenido
- Interfaz de línea de comandos (CLI) en `main.py`
- Todas las funciones matemáticas originales
- Compatibilidad con Python 3.12+
- Suite de tests unitarios (`test_calculator.py`)
---
## [1.0.0] - 2025-11-04
### Agregado
- Operaciones matemáticas básicas (suma, resta, multiplicación, división, potenciación)
- Funciones adicionales: valor máximo, valor mínimo, valor absoluto
- Interfaz de línea de comandos interactiva
- Manejo de errores y excepciones
- Pruebas unitarias con pytest
- Templates para Issues y Pull Requests en GitHub
### Técnico
- Implementación base en Python 3.12
- Estructura del proyecto organizada
- Sistema de pruebas configurado con pytest
v1.0.0 → Calculadora CLI básica (04 Nov 2025)
v2.0.0 → GUI + Testing + CI/CD + Teclado (28 Nov 2025) ← PRÓXIMO RELEASE
v2.1.0 → Paréntesis + fixes de bugs (#44, #49, #50)
🚀 Descripción
Realizar la integración final de todas las funcionalidades desarrolladas y preparar el proyecto para el release oficial v2.0.0. Este es un release mayor que introduce la interfaz gráfica de usuario, testing automatizado, soporte de teclado y mejoras significativas.
Milestone: v2.0.0
Propósito:
Asegurar que todas las funcionalidades estén correctamente integradas, documentadas y probadas antes de realizar el merge a la rama
mainy publicar el release oficial v2.0.0.📋 Tareas de Integración
1. Verificación de Código
dev2. Testing Completo
pytest test_calculator.py -vpytest test_gui_calculator.py -v(test: agregar tests de GUI con mocks de tkinter #48 ✅)conftest.pypara tests sin Tcl/Tkmain. py(CLI) ygui.py(GUI)3. Actualización de Documentación
README.mdcon:conftest.pyCHANGELOG.mdcon v2.0.0 (ver template abajo)4. Preparación de Release
release/v2.0.0desdedevmainusando template de release5. Post-Release
maingit tag -a v2.0. 0 -m "Release v2.0.0 - GUI + Testing + Teclado"git push origin v2.0.0mainde vuelta adev📝 CHANGELOG. md para v2.0.0
🔗 Issues y PRs incluidas en v2.0.0
✅ Completadas (en
dev, se cerrarán al merge amain)Issues de GUI:
📋 PRs Mergeados en
dev⏳ En Progreso
❌ Pendientes para v2.1.0 (NO trabajadas aún)
✅ Checklist de Release
Pre-Release
devRelease
release/v2.0.0→main)mainPost-Release
mainadev📊 Estadísticas del Release
gui.py- Interfaz gráfica completatest_gui_calculator.py- Tests de GUIconftest. py- Fixtures y mocks de Tkinter. github/workflows/ci.yml- Pipeline CI/CDREADME.mdCHANGELOG.mdcalculator.py🙏 Agradecimientos
Gracias a todos los contribuidores que hicieron posible este release:
@Jandres25 (Jose Andres Meneces Lopez)
@Jhos3ph
@alexricardotapiacarita-ai
🔮 Próximos Pasos (v2.1.0)
Features para el próximo release:
Mejoras Potenciales:
🏷️ Etiquetas
release,documentación,integración,major-release,ci/cd,gui📞 Coordinación de Equipo
Próximos Pasos Inmediatos:
✅ Actualizar documentación
✅ Crear rama de release
release/v2.0.0desdedev✅ Code Review Final
✅ Publicar Release
mainMenciones: @Jhos3ph @alexricardotapiacarita-ai @Jandres25
📚 Versionamiento Semántico
🎉 Release v2.0.0 - ¡La calculadora evoluciona con interfaz gráfica completa! ✨