@@ -5,6 +5,177 @@ Todos los cambios notables en este proyecto serán documentados en este archivo.
55El formato está basado en [ Keep a Changelog] ( https://keepachangelog.com/es-ES/1.0.0/ ) ,
66y este proyecto se adhiere a [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ---
9+
10+ ## [ 2.0.0] - 2025-11-28
11+
12+ ### 🎉 Major Release - Interfaz Gráfica + Testing Automatizado
13+
14+ 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.
15+
16+ ### Agregado
17+
18+ #### Interfaz Gráfica de Usuario (GUI)
19+
20+ - ** Calculadora visual** con tkinter (#15 , #16 , #17 )
21+ - Ventana principal con diseño moderno
22+ - Display interactivo de alta resolución para números y resultados
23+ - Grid de botones organizados por función
24+ - Tema oscuro profesional con paleta de colores elegante (#18 , #19 , #20 , #21 )
25+ - Diseño responsive con grid layout adaptable
26+
27+ #### Funcionalidades de GUI
28+
29+ - ** Entrada numérica** por clicks en botones (#22 , #31 )
30+ - ** Botón decimal (.)** con validación para evitar múltiples puntos (#25 , #32 )
31+ - ** Lógica de operadores** matemáticos: +, -, \* , /, ^ (#26 , #33 )
32+ - ** Botones de control** :
33+ - Clear (C): Limpia display y resetea estado (#28 , #34 )
34+ - Backspace (⌫): Elimina último carácter (#28 , #34 )
35+ - ** Funciones científicas** integradas en GUI (#30 , #35 ):
36+ - Valor absoluto (abs)
37+ - Máximo (max)
38+ - Mínimo (min)
39+ - ** Soporte para números negativos** (#41 , #45 )
40+ - Ingreso de números negativos en la GUI
41+ - Manejo correcto de operaciones con negativos
42+ - ** Mejoras en manejo de múltiples números negativos** (#43 )
43+ - ** Soporte completo de teclado** (#37 , #47 )
44+ - Atajos para todos los números (0-9)
45+ - Atajos para operadores (+, -, \* , /, ^)
46+ - Enter o = para calcular resultado
47+ - Escape para limpiar display
48+ - Backspace para borrar último carácter
49+ - Control completo mediante teclado o mouse
50+
51+ #### Testing Automatizado
52+
53+ - ** Archivo ` test_gui_calculator.py ` ** con suite completa de tests para GUI (#23 , #48 )
54+ - Tests de clicks en botones numéricos
55+ - Tests de botón Clear y Backspace
56+ - Tests de operaciones básicas
57+ - Tests de manejo de errores
58+ - ** Archivo ` conftest.py ` ** con fixtures y mocks de Tkinter (#48 )
59+ - Clases dummy: DummyRoot, DummyEntry, DummyButton, DummyLabel
60+ - Fixture ` autouse ` para sustituir componentes gráficos
61+ - Tests ejecutables sin display gráfico (ideal para CI/CD)
62+ - Compatibilidad con entornos headless
63+
64+ #### CI/CD con GitHub Actions
65+
66+ - ** Pipeline automático** de integración continua (#36 , #42 )
67+ - Workflow configurado para ramas ` main ` y ` dev `
68+ - Ejecución automática de tests en cada PR
69+ - Validación continua de calidad de código
70+ - Tests en ambiente headless sin Tcl/Tk
71+ - Archivo ` .github/workflows/ci.yml ` configurado
72+
73+ #### Documentación
74+
75+ - ** Guía de usuario** para la interfaz gráfica (#24 , #40 )
76+ - Instrucciones de uso de la GUI
77+ - Ejemplos de operaciones
78+ - Atajos de teclado documentados
79+ - ** Mejoras en documentación** de funciones y manejo de errores (#29 , #39 )
80+
81+ ### Mejorado
82+
83+ - ** Experiencia de usuario** con dos interfaces disponibles:
84+ - CLI (` main.py ` ): Interfaz de línea de comandos original
85+ - GUI (` gui. py ` ): Interfaz gráfica moderna
86+ - ** Refactoring de lógica** redundante en manejo de operadores (#46 )
87+ - ** Manejo visual de errores** en la GUI
88+ - División por cero detectada y manejada
89+ - Mensajes de error claros en el display
90+ - Validación de entrada de decimales y negativos
91+ - ** Organización del proyecto** con separación clara CLI/GUI/tests
92+ - ** Calidad de código** con validación continua
93+
94+ ### Técnico
95+
96+ - Implementación de clase ` CalculatorGUI ` con tkinter
97+ - Sistema de grid layout responsivo para botones
98+ - Binding de eventos de teclado en tkinter
99+ - Fixtures de pytest con ` autouse=True `
100+ - Mocks de componentes Tkinter para testing sin GUI
101+ - Workflow de GitHub Actions para CI/CD
102+ - Integración completa entre GUI y módulo ` calculator. py `
103+
104+ ### Mantenido
105+
106+ - Interfaz de línea de comandos (CLI) en ` main.py `
107+ - Todas las funciones matemáticas originales
108+ - Compatibilidad con Python 3.12+
109+ - Suite de tests unitarios (` test_calculator.py ` )
110+ - Templates de Issues y Pull Requests
111+
112+ ### Issues y PRs Incluidas
113+
114+ ** Issues Completadas:**
115+
116+ - #15 - Implementar: Prototipo inicial de GUI
117+ - #18 - Mejorar diseño: Ajustes y refinamientos de la GUI
118+ - #20 - Mejora: Estilos visuales de la GUI
119+ - #22 - Agregar función: Clicks de botones numéricos en GUI
120+ - #23 - Pruebas: Testing manual completo de GUI
121+ - #24 - Documentación: Guía de usuario para GUI
122+ - #25 - Agregar función: Botón punto decimal en GUI
123+ - #26 - Agregar función: Lógica de operadores en GUI
124+ - #28 - Agregar funcionalidad: Botones Clear y Backspace
125+ - #29 - Mejora: Manejo de errores y validaciones en GUI
126+ - #30 - Agregar función: Funciones científicas en GUI
127+ - #36 - Configurar CI/CD con GitHub Actions
128+ - #37 - Agregar soporte de teclado para calculadora GUI
129+ - #41 - Mejora: Números negativos sin operación de resta
130+ - #43 - Error: Difícil ingresar múltiples números negativos
131+
132+ ** Pull Requests Mergeados:**
133+
134+ - #48 - test: agregar tests de GUI con mocks de tkinter
135+ - #47 - feat: agregar soporte de teclado para calculadora GUI
136+ - #46 - refactor(gui): eliminar lógica redundante en el manejo de operadores
137+ - #45 - feat(gui): soporte para números negativos y actualización de documentación
138+ - #42 - feat: Configurar CI/CD con GitHub Actions
139+ - #40 - docs: Añadir guía de usuario para la GUI
140+ - #39 - refactor(gui): mejorar funciones unarias y manejo de errores
141+ - #35 - feat: Agregar funciones científicas (abs, max, min) con integración en GUI
142+ - #34 - feat: implementar botones C y ⌫ con su funcionalidad correspondiente
143+ - #33 - feat(core): añadir lógica de operaciones (+, -, \* , /, ^) y soporte para botón "="
144+ - #32 - feat: implementar botón decimal con validación en la calculadora Tkinter
145+ - #31 - feat: Implementar lógica de clic para entrada numérica
146+ - #21 - feat: actualizar colores en gui.py
147+ - #19 - feat: ajustar diseño según selección del equipo
148+ - #17 - feat: Merge prototype calculator design from dev to main
149+ - #16 - feat: agregar prototipo de GUI con diseño base
150+
151+ ### Agradecimientos
152+
153+ Este release fue posible gracias a las contribuciones de:
154+
155+ - ** @Jandres25 ** (Jose Andres Meneces Lopez)
156+
157+ - Coordinador del release
158+ - Prototipo de GUI (#15 , #16 )
159+ - CI/CD con GitHub Actions (#42 )
160+ - Testing automatizado de GUI (#23 , #48 )
161+ - Soporte de teclado (#47 )
162+
163+ - ** @Jhos3ph **
164+
165+ - Funciones científicas en GUI (#35 )
166+ - Lógica de operaciones (#26 , #33 )
167+ - Entrada numérica (#22 , #31 )
168+ - Refactoring y optimizaciones (#39 , #46 )
169+ - Soporte de números negativos (#45 )
170+
171+ - ** @alexricardotapiacarita-ai **
172+ - Diseño y estilos visuales (#18 , #19 , #20 , #21 )
173+ - Botón decimal con validación (#25 , #32 )
174+ - Botones Clear y Backspace (#28 , #34 )
175+ - Documentación y guía de usuario (#24 , #40 )
176+
177+ ---
178+
8179## [ 1.0.0] - 2025-11-04
9180
10181### Agregado
@@ -28,11 +199,16 @@ y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.
28199- Estructura del proyecto organizada
29200- Sistema de pruebas configurado con pytest
30201
31- ## [ Próximamente]
202+ ---
203+
204+ ## [ Próximamente] - v2.1.0
32205
33206### Planeado
34207
35- - Interfaz gráfica usando tkinter
36- - Más operaciones matemáticas
208+ - Soporte de operaciones con paréntesis en GUI (#44 )
209+ - Fix: Manejo de números decimales negativos (#49 )
210+ - Fix: Raíces pares de números negativos (#50 )
37211- Historial de operaciones
38- - Soporte para expresiones matemáticas complejas
212+ - Más funciones matemáticas (raíz cuadrada, logaritmos, trigonometría)
213+ - Temas personalizables (claro/oscuro)
214+ - Exportar historial de cálculos
0 commit comments