Skip to content

Commit c733ddb

Browse files
authored
Merge pull request #51 from WorkTeam01/release/v2.0.0
docs: actualizar documentación para release v2.0.0
2 parents 72e0280 + 9d42a24 commit c733ddb

2 files changed

Lines changed: 509 additions & 96 deletions

File tree

CHANGELOG.md

Lines changed: 180 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,177 @@ Todos los cambios notables en este proyecto serán documentados en este archivo.
55
El formato está basado en [Keep a Changelog](https://keepachangelog.com/es-ES/1.0.0/),
66
y 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

Comments
 (0)