Releases: WorkTeam01/team-practice
🔢 Release v2.1.0 - Paréntesis + Reorganización + Bug Fixes
📋 Descripción General
Release v2.1.0 - Minor release que introduce soporte completo para operaciones con paréntesis, reorganiza la estructura del proyecto siguiendo mejores prácticas de Python, y corrige bugs importantes relacionados con números complejos y decimales negativos.
Este release mejora significativamente la funcionalidad de la calculadora permitiendo expresiones matemáticas complejas y establece una base sólida para futuras expansiones.
✨ Características Nuevas
Operaciones con Paréntesis ✨ NUEVO
- 🔢 Expresiones matemáticas complejas soportadas
- 📊 Paréntesis anidados de múltiples niveles
- ⌨️ Entrada desde teclado (
(y)) - 🖱️ Botones funcionales en la GUI
- ✅ Validación automática de paréntesis balanceados
- 🛡️ Validación de seguridad con regex
- 🎯 Modo de expresión activado automáticamente
Ejemplos de expresiones soportadas:
(2+3)*4 = 20
2*(3+4) = 14
(5-2)*(6+4) = 30
((2+3)*4)/5 = 4
(10/2)+5 = 10
(2+3)^2 = 25
Reorganización del Proyecto ✨ NUEVO
- 📁 Nueva estructura profesional con carpetas
src/ytests/ - 📦 Archivo requirements.txt para gestión de dependencias
- 🐍 Archivos init.py en paquetes Python
- 🔧 Mejor escalabilidad y organización
- 📚 Imports mejorados con estructura de paquetes
Nueva estructura:
team-practice/
├── src/ # Código fuente
│ ├── __init__.py
│ ├── calculator.py
│ ├── cli.py
│ └── gui.py
├── tests/ # Tests
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_calculator.py
│ └── test_gui.py
└── requirements.txt # Dependencias
🐛 Bugs Corregidos
Raíces Pares de Números Negativos
- ❌ Antes:
-2 ^ 0.5devolvía1.414j(número complejo) - ✅ Ahora: Muestra error claro "
⚠️ Raíz negativa" - 🔍 Validación: Detecta raíces pares con algoritmo de inversión de exponente
- 🧪 Tests: Agregados tests unitarios para validar el comportamiento
Manejo de Decimales Negativos
- ❌ Antes: Secuencia
-+.+3creaba-.3(confuso) - ✅ Ahora: Autocompleta a
-0.3para mejor UX - 🎯 Consistencia: Comportamiento predecible y uniforme
- 📝 Validación: Previene números incompletos como
-.
🧪 Testing
Nuevos Tests (13 tests de paréntesis)
- ✅
test_parenthesis_basic- Operaciones básicas - ✅
test_parenthesis_nested- Paréntesis anidados - ✅
test_parenthesis_with_decimals- Con decimales - ✅
test_parenthesis_with_negatives- Con negativos - ✅
test_parenthesis_with_power- Con potencias - ✅
test_parenthesis_unbalanced- Validación de errores - ✅
test_parenthesis_expression_mode- Modo expresión - ✅
test_parenthesis_clear- Limpieza - ✅
test_parenthesis_backspace- Borrado - ✅
test_parenthesis_display_update- Display - ✅
test_parenthesis_mixed_mode- Compatibilidad - ✅
test_parenthesis_complex_expression- Expresiones complejas - ✅
test_parenthesis_division_by_zero- División por cero
Resultados de Tests
$ pytest tests/ -v
======================== test session starts ========================
collected 63+ items
tests/test_calculator.py - 9 tests PASSED
tests/test_gui.py - 54 tests PASSED (incluyendo 13 nuevos)
======================== 63+ passed ======================== ✅🔧 Requisitos del Sistema
- Python: 3.12 o superior
- Dependencias: pytest>=7.0.0 (solo para desarrollo/testing)
- Sistema Operativo: Windows, macOS, Linux
- Display: Opcional (CLI funciona sin GUI)
📥 Instalación y Uso
Instalación
# Clonar el repositorio
git clone https://github.com/WorkTeam01/team-practice.git
cd team-practice
# Instalar dependencias
pip install -r requirements.txtUso de la Calculadora
Interfaz Gráfica (GUI)
python src/gui.pyNuevas operaciones con paréntesis:
(2+3)*4 # Usar botones o teclado
((2+3)*4)/5 # Paréntesis anidados
(10/2)+5 # Combinaciones
Atajos de teclado actualizados:
| Tecla | Acción |
|---|---|
0-9 |
Ingresar dígitos |
. |
Punto decimal |
+ - * / ^ |
Operaciones |
( ) |
Paréntesis ✨ NUEVO |
Enter o = |
Calcular resultado |
Escape |
Limpiar display |
Backspace |
Borrar último carácter |
Interfaz de Línea de Comandos (CLI)
python src/cli.pyEjecutar Tests
# Todos los tests
pytest -v
# Tests específicos de paréntesis
pytest tests/test_gui.py -k "parenthesis" -v
# Tests de calculadora
pytest tests/test_calculator.py -v
# Con cobertura
pytest --cov=src -v👥 Contribuidores
Este release fue posible gracias al trabajo colaborativo del equipo WorkTeam01:
@Jandres25 - Jose Andres Meneces Lopez
- Coordinador del release v2.1.0
- Implementación completa de soporte de paréntesis
- 13 tests unitarios para validar paréntesis
- Reorganización de estructura del proyecto
- Documentación del release
@Jhos3ph - Jose Orozco
- Fix de raíces pares de números negativos
- Algoritmo de validación de raíces
- Tests unitarios para validación
- Code reviews
@alexricardotapiacarita-ai - Alex Tapia
- Fix de manejo de decimales negativos
- Mejoras de UX en entrada de números
- Validación de entrada mejorada
- Code reviews
Gracias a todos por el excelente trabajo en equipo y compromiso con la calidad.
📚 Documentación
- README.md - Guía completa actualizada para v2.1.0
- CHANGELOG.md - Historial detallado de v2.1.0
- LICENSE - MIT License
- Issue Templates - Para reportar bugs y sugerir mejoras
- PR Templates - Para contribuciones al proyecto
📊 Estadísticas del Release
- 📦 Commits: 15+
- 🔀 Pull Requests mergeados: 4
- ✅ Issues completadas: 4
- 👥 Contribuidores: 3
- 📅 Duración del desarrollo: ~5 días (Nov 30 - Dic 3, 2025)
- 📝 Líneas de código agregadas: ~600
- 🧪 Tests agregados: 13 nuevos tests
🔮 Próximos Pasos (Roadmap v3.0.0)
En planificación para la próxima versión:
- 📊 Historial de operaciones
- 🧮 Más funciones matemáticas (√, log, sin, cos, tan)
- 🎨 Temas personalizables (claro/oscuro)
- 💾 Exportar historial de cálculos
- 📈 Gráficos de funciones
- 🌐 Modo científico avanzado
📝 Notas de la Release
Minor Release - v2.1.0
Este release representa una mejora significativa del proyecto:
De v2.0.0 a v2.1.0:
- ✅ Operaciones simples → Expresiones matemáticas complejas
- ✅ Archivos sueltos → Estructura profesional de proyecto Python
- ✅ 50 tests → 63+ tests unitarios
- ✅ Bugs conocidos → Validaciones robustas
Compatibilidad:
- ✅ Mantiene compatibilidad completa con v2.0.0
- ✅ CLI y GUI siguen funcionando igual
- ✅ Todas las funciones anteriores disponibles
- ➕ Agrega paréntesis como nueva característica
- 🐛 Corrige bugs conocidos
Breaking Changes:
⚠️ Cambio en estructura de archivos (requiere actualizar imports si se usa como librería)- ✅ Para uso normal (GUI/CLI): Sin cambios
Aprendizajes del Equipo:
- 🔧 Implementación de parsers de expresiones
- 🧪 Testing exhaustivo de casos extremos
- 📁 Organización profesional de proyectos Python
- 🐛 Debugging de validaciones complejas
🎉 Celebración
¡Otro hito importante alcanzado!
- ✅ Soporte completo de paréntesis implementado
- ✅ Estructura del proyecto reorganizada profesionalmente
- ✅ Bugs importantes corregidos
- ✅ 13 tests nuevos agregados
- ✅ Documentación actualizada completamente
Este release demuestra la evolución continua del proyecto y el compromiso del equipo con la excelencia.
🙏 Agradecimientos
Gracias por usar Team Practice Calculator v2.1.0.Este proyecto es de código abierto y está disponible bajo la licencia MIT.
Para reportar bugs, sugerir mejoras o contribuir al proyecto, por favor visita nuestro repositorio en GitHub.
¡Disfruta las nuevas capacidades con paréntesis! 🎉✨
📚 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-29)
└── 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
v2.1.0 (2025-12-03) ← ESTA VERSIÓN
└── Expresiones con paréntesis + Reorganización
├── Todo lo de v2.0.0
├── Operaciones con paréntesis ✨
├── Estructura profesional (src/, tests/) ✨
├── Validaciones mejoradas ✨
├── 63+ tests unitarios
└── Bug fixes importantes ✨
🚀 Release v2.0.0 - Interfaz Gráfica + Testing Automatizado
📋 Descripción General
Release v2.0.0 - Major release que transforma Team Practice Calculator de una aplicación CLI simple a una aplicación completa con interfaz gráfica moderna, testing automatizado robusto y pipeline de CI/CD con GitHub Actions.
Este release marca una evolución significativa del proyecto, introduciendo cambios que mejoran la experiencia de usuario, la calidad del código y las prácticas de desarrollo.
✨ Características
Interfaz Gráfica de Usuario (GUI)
- 🖥️ Calculadora visual moderna con tkinter
- 🎨 Tema oscuro profesional con diseño elegante
- 📺 Display de alta resolución para números y resultados
- 🎯 Diseño responsive con grid layout adaptable
- 🖱️ Interacción dual: Mouse y teclado
Soporte Completo de Teclado
- 🔢 Atajos para números (0-9)
- ➕ Operadores (+, -, *, /, ^)
- ⏎ Enter o = para calcular resultado
- ⎋ Escape para limpiar display
- ⌫ Backspace para borrar último carácter
- ⌨️ Control completo mediante teclado o mouse
Funcionalidades de GUI
- 📥 Entrada numérica por clicks en botones
- 🔘 Botón decimal (.) con validación anti-duplicados
- 🧮 Operaciones matemáticas completas (+, -, *, /, ^)
- 🧹 Clear (C): Limpia display y resetea estado
- ↩️ Backspace (⌫): Elimina último carácter
- 📐 Funciones científicas integradas (abs, max, min)
- ➖ Soporte de números negativos mejorado
⚠️ Manejo visual de errores en el display
Testing Automatizado
- 🧪 Tests de GUI con
test_gui_calculator. py - 🎭 Mocks de Tkinter con
conftest.py(DummyRoot, DummyEntry, DummyButton, DummyLabel) - 🖥️ Tests headless ejecutables sin display gráfico
- ✅ Compatible con CI/CD sin dependencias de GUI
- 📊 Cobertura completa de funcionalidades
CI/CD con GitHub Actions
- 🤖 Pipeline automático de integración continua
- 🔄 Ejecución automática de tests en cada PR
- ✅ Validación continua de calidad de código
- 🌐 Tests en ambiente headless sin Tcl/Tk
- 📋 Workflow configurado para ramas
mainydev
Documentación Completa
- 📖 README. md profesional con badges de CI/CD
- 📝 CHANGELOG.md detallado con historial completo
- 📚 Guía de usuario para la interfaz gráfica
- ⌨️ Tabla de atajos de teclado documentados
- 👥 Créditos completos a todos los contribuidores
🔧 Requisitos del Sistema
- Python: 3.12 o superior
- Dependencias: pytest (solo para desarrollo/testing)
- Sistema Operativo: Windows, macOS, Linux
- Display: Opcional (CLI funciona sin GUI)
📥 Instalación y Uso
Instalación
# Clonar el repositorio
git clone https://github.com/WorkTeam01/team-practice.git
cd team-practice
# Verificar Python
python --version # Debe mostrar 3.12+
# Instalar pytest (opcional, solo para testing)
pip install pytestUso de la Calculadora
Interfaz Gráfica (GUI) - NUEVO ✨
python gui.pyAtajos de teclado:
| Tecla | Acción |
|---|---|
0-9 |
Ingresar dígitos |
. |
Punto decimal |
+ - * / ^ |
Operaciones |
Enter o = |
Calcular resultado |
Escape |
Limpiar display |
Backspace |
Borrar último carácter |
Interfaz de Línea de Comandos (CLI)
python main.pyOperaciones soportadas:
# Operaciones con dos números
5 + 3 # Suma
10 - 4 # Resta
6 * 7 # Multiplicación
15 / 3 # División
2 ^ 8 # Potencia
10 max 5 # Valor máximo
10 min 5 # Valor mínimo
# Operaciones con un número
-5 abs # Valor absolutoModo Programático
from calculator import add, subtract, multiply, divide, power
from calculator import abs_value, valor_maximo, valor_minimo
# Ejemplos
resultado = add(5, 3) # 8
resultado = power(2, 10) # 1024
resultado = abs_value(-42) # 42
resultado = valor_maximo(10, 5) # 10Ejecutar Tests
# Ejecutar todos los tests
pytest -v
# Tests de calculadora básica
pytest test_calculator.py -v
# Tests de GUI (con mocks)
pytest test_gui_calculator.py -v
# Ver cobertura
pip install pytest-cov
pytest --cov=. -v📁 Estructura del Proyecto
team-practice/
├── calculator. py # Lógica de operaciones matemáticas
├── main.py # CLI - Interfaz de línea de comandos
├── gui.py # GUI - Interfaz gráfica con tkinter ✨
├── test_calculator.py # Tests unitarios de calculator.py
├── test_gui_calculator.py # Tests de la interfaz gráfica ✨
├── conftest. py # Fixtures de pytest (mocks de Tkinter) ✨
├── .github/
│ ├── workflows/
│ │ └── ci.yml # Pipeline de CI/CD ✨
│ ├── ISSUE_TEMPLATE/ # Plantillas para issues
│ ├── PULL_REQUEST_TEMPLATE/ # Plantillas para PRs
│ ├── pull_request_template.md
│ └── REVIEW_COMMENTS.md
├── README.md # Documentación completa actualizada
├── CHANGELOG.md # Historial de cambios
├── LICENSE # MIT License
└── .gitignore # Archivos ignorados por Git
✨ = Archivos nuevos en v2.0.0
🧪 Testing
Todos los tests están pasando:
- ✅ Tests de operaciones básicas (CLI)
- ✅ Tests de operaciones avanzadas
- ✅ Tests de GUI con mocks de Tkinter
- ✅ Tests de manejo de errores
- ✅ Tests de casos extremos
- ✅ CI/CD automático en GitHub Actions
$ pytest -v
======================== test session starts ========================
collected 25+ items
test_calculator.py::test_add PASSED
test_calculator.py::test_subtract PASSED
test_calculator.py::test_multiply PASSED
test_calculator.py::test_divide PASSED
test_calculator.py::test_divide_by_zero PASSED
test_calculator.py::test_power PASSED
test_calculator.py::test_valor_maximo PASSED
test_calculator.py::test_valor_minimo PASSED
test_calculator.py::test_abs_value PASSED
test_gui_calculator.py::test_gui_initialization PASSED
test_gui_calculator.py::test_number_buttons PASSED
test_gui_calculator.py::test_clear_button PASSED
test_gui_calculator.py::test_backspace_button PASSED
test_gui_calculator.py::test_operations PASSED
test_gui_calculator. py::test_decimal_button PASSED
... (y más)
======================== 25+ passed in 0.15s ========================👥 Contribuidores
Este release fue posible gracias al trabajo colaborativo del equipo WorkTeam01:
@Jandres25 - Jose Andres Meneces Lopez
- Coordinador del release v2.0.0
- Prototipo de GUI y diseño base
- CI/CD con GitHub Actions
- Testing automatizado de GUI
- Soporte de teclado
- Documentación del release
@Jhos3ph - Jose Orozco
- Funciones científicas en GUI (abs, max, min)
- Lógica de operaciones matemáticas
- Entrada numérica y validaciones
- Refactoring y optimizaciones
- Soporte de números negativos
@alexricardotapiacarita-ai - Alex Tapia
- Diseño y estilos visuales de GUI
- Botón decimal con validación
- Botones Clear (C) y Backspace (⌫)
- Documentación y guía de usuario
Gracias a todos por el excelente trabajo en equipo, las code reviews constructivas y el compromiso con la calidad.
📚 Documentación
- README.md - Guía completa de instalación y uso actualizada
- CHANGELOG.md - Historial detallado de v2.0.0
- LICENSE - MIT License
- Guía de Usuario GUI - Documentación específica de la interfaz gráfica
- Issue Templates - Para reportar bugs y sugerir mejoras
- PR Templates - Para contribuciones al proyecto
📊 Estadísticas del Release
- 📦 Commits: 60+
- 🔀 Pull Requests mergeados: 24+
- ✅ Issues completadas: 16
- 👥 Contribuidores: 3
- 📅 Duración del desarrollo: ~3 semanas (Nov 6 - Nov 28, 2025)
- 📁 Archivos nuevos: 4 (gui.py, test_gui_calculator.py, conftest. py, ci.yml)
- 📝 Líneas de código agregadas: 1000+
🔮 Próximos Pasos (Roadmap v2.1.0)
En desarrollo para la próxima versión:
- 🔢 Soporte de operaciones con paréntesis
- 🔧 Fix: Manejo mejorado de decimales negativos
- 🧮 Más funciones matemáticas (raíz cuadrada, logaritmos, trigonometría)
- 📊 Historial de operaciones
- 🎨 Temas personalizables (claro/oscuro)
- 💾 Exportar historial de cálculos
🐛 Bugs Conocidos
Issues abiertas para v2.1.0:
- #44 - Soporte de operaciones con paréntesis (pendiente)
- #49 - Manejo confuso de números decimales negativos
- #50 - Raíces pares de números negativos generan resultados complejos
Para reportar nuevos bugs, por favor crea un issue usando nuestras plantillas.
📝 Notas de la Release
Major Release - v2.0.0
Este release representa un cambio significativo en el proyecto:
De v1.0.0 a v2.0.0:
- ✅ CLI simple → Aplicación completa con GUI
- ✅ Tests básicos → Testing automatizado robusto
- ✅ Desarrollo manual → Pipeline de CI/CD
- ✅ Documentación básica → Documentación profesional
Compatibilidad:
- ✅ Mantiene compatibilidad completa con v1.0.0
- ✅ CLI original sigue funcionando (
main. py) - ✅ Todas las funciones matemáticas originales disponibles
- ➕ Agrega GUI como nueva opción de interfaz
Breaking Changes:
- Ninguno - Release totalmente retrocompatible
Aprendizajes del Equipo:
- 🤝 Colaboración efectiva en equipo
- 📝 Code reviews constructivas
- 🧪 Testing riguroso y automatizado
- 📖 Documentación clara y completa
- 🔄 Git Flow profesional
- 🚀 CI/CD con GitHub Actions
El proyecto alcanzó todos los objetivos establecidos y superó las expectativas iniciales.
🎉 Celebración
¡Hito importante alcanzado!
- ✅ 60+ commits de trabajo colaborativo
- ✅ 24+ pull requests revisadas y mergeada...
🎉 Release v1.0.0 - Calculator CLI
📋 Descripción General
Primera versión oficial de Team Practice Calculator. Calculadora de línea de comandos con funciones matemáticas básicas y avanzadas, diseñada para practicar flujo de trabajo colaborativo con Git.
✨ Características
Funciones Matemáticas
- ➕ Suma (
add) - ➖ Resta (
subtract) - ✖️ Multiplicación (
multiply) - ➗ División (
divide) con manejo de división por cero - 🔢 Potencia (
power) - 📏 Valor absoluto (
abs_value) - 📊 Valor máximo (
valor_maximo) - 📉 Valor mínimo (
valor_minimo)
Características del Proyecto
- 🧪 Tests unitarios completos con pytest
- 📝 Documentación con docstrings y ejemplos
- 💻 Interfaz interactiva de línea de comandos
⚠️ Manejo robusto de errores- 🐍 Compatible con Python 3.11+
🔧 Requisitos del Sistema
- Python: 3.11 o superior (recomendado 3.12)
- Dependencias: pytest (solo para desarrollo/testing)
- Sistema Operativo: Windows, macOS, Linux
📥 Instalación y Uso
Instalación
# Clonar el repositorio
git clone https://github.com/WorkTeam01/team-practice.git
cd team-practice
# Verificar Python
python --version # Debe mostrar 3.11+ o 3.12+
# Instalar pytest (opcional, solo para testing)
pip install pytestUso de la Calculadora
Modo Interactivo
python main.pyOperaciones soportadas:
# Operaciones con dos números
5 + 3 # Suma
10 - 4 # Resta
6 * 7 # Multiplicación
15 / 3 # División
2 ^ 8 # Potencia
10 max 5 # Valor máximo
10 min 5 # Valor mínimo
# Operaciones con un número
-5 abs # Valor absolutoModo Programático
from calculator import add, subtract, multiply, divide, power
from calculator import abs_value, valor_maximo, valor_minimo
# Ejemplos
resultado = add(5, 3) # 8
resultado = power(2, 10) # 1024
resultado = abs_value(-42) # 42
resultado = valor_maximo(10, 5) # 10Ejecutar Tests
# Ejecutar todos los tests
python -m pytest test_calculator.py -v
# Ver cobertura (requiere pytest-cov)
pip install pytest-cov
python -m pytest test_calculator.py --cov=calculator📁 Estructura del Proyecto
team-practice/
├── calculator.py # Lógica de la calculadora
├── test_calculator.py # Tests unitarios
├── main.py # Programa interactivo
├── README.md # Documentación completa
├── LICENSE # MIT License
├── .gitignore # Archivos ignorados
└── .github/
└── ISSUE_TEMPLATE/ # Templates para issues
🧪 Testing
Todos los tests están pasando:
- ✅ Tests de operaciones básicas
- ✅ Tests de operaciones avanzadas
- ✅ Tests de manejo de errores
- ✅ Tests de casos extremos
$ python -m pytest test_calculator.py -v
======================== test session starts ========================
collected 10 items
test_calculator.py::test_add PASSED
test_calculator.py::test_subtract PASSED
test_calculator.py::test_multiply PASSED
test_calculator.py::test_divide PASSED
test_calculator.py::test_divide_by_zero PASSED
test_calculator.py::test_power PASSED
test_calculator.py::test_valor_maximo PASSED
test_calculator.py::test_valor_minimo PASSED
test_calculator.py::test_abs_value PASSED
======================== 10 passed in 0.05s ========================👥 Contribuidores
Este proyecto fue desarrollado colaborativamente por el equipo WorkTeam01:
- @Jhos3ph - Funciones matemáticas, testing, Interfaz CLI, documentación
- @alexricardotapiacarita-ai - Funciones matemáticas, testing, Interfaz CLI, documentación
- @Jandres25 - Arquitectura del proyecto, code reviews
Gracias a todos por el trabajo en equipo y las contribuciones.
📚 Documentación
- README.md - Guía completa de instalación y uso
- LICENSE - MIT License
- Issue Templates - Para reportar bugs y sugerir mejoras
🔮 Próximos Pasos (Roadmap)
En desarrollo para v2.0.0:
- 🖥️ Interfaz gráfica con tkinter
- 📊 Historial de operaciones
- ⌨️ Soporte para atajos de teclado
- 🎨 Temas visuales
🐛 Bugs Conocidos
Ninguno reportado en esta versión.
📝 Notas de la Release
Esta es la primera release oficial del proyecto Team Practice. El objetivo principal fue practicar:
- ✅ Git Flow y trabajo colaborativo
- ✅ Code reviews y pull requests
- ✅ Testing con pytest
- ✅ Documentación de código
- ✅ Buenas prácticas de desarrollo
El proyecto alcanzó todos los objetivos de aprendizaje establecidos.
🙏 Agradecimientos
Gracias por usar Team Practice Calculator. Este proyecto es de código abierto y está disponible bajo la licencia MIT.
Para reportar bugs o sugerir mejoras, por favor crea un issue en nuestro repositorio de GitHub.