Releases: thomas-vilte/ButakeroMusicBotGo
Releases · thomas-vilte/ButakeroMusicBotGo
Release list
🎵 v1.2.0 - Mejoras en Estabilidad, Comandos y Arquitectura
🚀 Novedades Principales
✨ Nuevas Funcionalidades
- Comandos de control de reproducción:
- Implementación de
pauseyresumecon manejo atómico. - Mejor feedback de errores en
skip(mensajes claros para usuarios).
- Implementación de
- Sistema de salud:
- Nuevo endpoint
/healthpara integración con Kubernetes/ECS.
- Nuevo endpoint
- Descargas asíncronas:
- Soporte para colas SQS/Kafka en procesamiento de media.
🏗️ Refactorizaciones Clave
- Arquitectura:
- ✅ Eliminación de DynamoDB/MongoDB (ahora usa Media API externa).
- GuildPlayer rediseñado con concurrencia segura (thread-safe).
- Manejo de errores:
- Trazas detalladas con
traceIDen logs. - Recuperación automática en fallos de conexión de voz.
- Trazas detalladas con
- Despliegue:
- Manifiestos Kubernetes incluidos (
/k8s/).
- Manifiestos Kubernetes incluidos (
🐛 Correcciones Importantes
- Voice Connection:
- Fix: Bot ahora se desconecta correctamente al quedarse solo en el canal.
- Fix: Estado de reproducción se actualiza a
idleal terminar canciones.
- Audio Processing:
- Mejoras en límites de tamaño de archivos.
v1.0.6 🌈
Cambios
- Remove GoMusicBot project @Tomas-vilte (#300)
- Simplify CI workflow and Makefile @Tomas-vilte (#299)
- Refactor: Audio download and add S3 integration tests @Tomas-vilte (#298)
- Refactor: Migrate to message queue and add GSI to DynamoDB @Tomas-vilte (#297)
- handler dates @Tomas-vilte (#292)
- Refactor: Improve folder structure and imports @Tomas-vilte (#291)
- Refactor: Remove factory pattern and improve testing @Tomas-vilte (#289)
- feat: Update audio processing to use buffered audio decoder; change H… @Tomas-vilte (#288)
- dev @Tomas-vilte (#287)
- Dev @Tomas-vilte (#286)
- Add voice functionality and refactor MessengerService @Tomas-vilte (#281)
- Add Discord Integration @Tomas-vilte (#279)
- feat: Add SQS message handling @Tomas-vilte (#274)
- feat: Implement DynamoDB persistence for song data and Kafka messaging @Tomas-vilte (#272)
- Dev @Tomas-vilte (#271)
- Dev @Tomas-vilte (#270)
- Enhance Audio Processing, Encoder Design, and Error Handling @Tomas-vilte (#269)
- Enhance audio processor reliability, MongoDB connection handling, and local development setup @Tomas-vilte (#268)
- Refactor file retrieval methods and improve code clarity in downloader @Tomas-vilte (#267)
- Enhance S3 policy, add S3 object resource, and update yt-dlp to use browser cookies @Tomas-vilte (#266)
- add documentation readme @Tomas-vilte (#265)
- Backend configuration settings and permissions for MongoDB @Tomas-vilte (#264)
- Add TLS Configuration and MongoDB ReplicaSet to Kafka and MongoDB Integration @Tomas-vilte (#263)
- Automating initial deployment and tweaking Kafka verification @Tomas-vilte (#262)
- Bump golang.org/x/crypto from 0.0.0-20210421170649-83a5a9bb288b to 0.31.0 in /lambdas/discord_notifications @dependabot (#261)
- refactor structure folders @Tomas-vilte (#260)
- Bump golang.org/x/crypto from 0.24.0 to 0.31.0 @dependabot (#259)
- Add reflection annotations, configure certificates, and set ACLs for Kafka and MongoDB integration @Tomas-vilte (#258)
- Bump golang.org/x/crypto from 0.26.0 to 0.31.0 in /microservices/audio_processor @dependabot (#257)
- Migrate to Operators for Kafka, MongoDB, and Zookeeper; Update TLS Configuration and Add Prometheus Monitoring @Tomas-vilte (#256)
- Change label, for each service monitor, and modifiy kafka client @Tomas-vilte (#255)
- Setup Kafka with Strimzi, SSL/TLS encryption, Prometheus monitoring, and Kafka client pod for testing @Tomas-vilte (#254)
- Dev @Tomas-vilte (#253)
- Configure Grafana Monitoring Stack in Kubernetes Cluster @Tomas-vilte (#252)
- Add Prometheus Operator Configuration for Kubernetes Monitoring @Tomas-vilte (#251)
- Deploy MongoDB Cluster with TLS, Authentication, and Monitoring Integration @Tomas-vilte (#250)
- Add cert-manager namespace with monitoring label @Tomas-vilte (#249)
- Add cAdvisor deployment with RBAC, Service, and monitoring configuration @Tomas-vilte (#248)
- Dev @Tomas-vilte (#247)
- Extract and filter YouTube cookies for yt-dlp usage @Tomas-vilte (#246)
- modify script, and add health check @Tomas-vilte (#245)
- add cookies yt-dlp @Tomas-vilte (#244)
- test oidc @Tomas-vilte (#243)
- Terraform Configuration for AWS Resources: Networking, IAM, S3, ECS, ALB, and more for Production Environment @Tomas-vilte (#242)
- Modify config @Tomas-vilte (#241)
- Update ci/cd yaml file @Tomas-vilte (#240)
- change http-chunk-size to 10M @Tomas-vilte (#239)
- Delete envs @Tomas-vilte (#238)
- feat: switch to OIDC for AWS authentication in GitHub Actions @Tomas-vilte (#237)
- add service secret manager @Tomas-vilte (#236)
- Add variables for project name, environment, tags, and VPC ID @Tomas-vilte (#235)
- Add DynamoDB tables with outputs, variables, and global secondary indexes @Tomas-vilte (#234)
- modify test for delete messages @Tomas-vilte (#233)
- modify message @Tomas-vilte (#232)
- modify docker compose and delete file @Tomas-vilte (#231)
- Change service and others @Tomas-vilte (#230)
- fix: Implement proper MongoDB replica set initialization and authentication sequence @Tomas-vilte (#229)
- Refactor Health Checks and Update Docker Compose for MongoDB Replica Set @Tomas-vilte (#228)
- Add Kubernetes resources for backend service @Tomas-vilte (#227)
- modify manifests @Tomas-vilte (#226)
- Add MongoDB StatefulSet with health checks and initialization @Tomas-vilte (#225)
- Update Kafka StatefulSet with new environment variables and broker ID extraction logic @Tomas-vilte (#224)
- Add Zookeeper StatefulSet and headless service configuration @Tomas-vilte (#223)
- Add Kafka StatefulSet configuration for cluster setup @Tomas-vilte (#222)
- modify function signatures and assign a pointer to config @Tomas-vilte (#221)
- Add configuration module with YAML loading, validation, and default settings @Tomas-vilte (#220)
- Add MongoDB package with connection setup and collection retrieval methods @Tomas-vilte (#219)
- add dockerfile, and docker compose @Tomas-vilte (#218)
- Add MongoDB support for OperationRepository with integration tests @Tomas-vilte (#217)
- Implement Local Storage for Audio Files @Tomas-vilte (#216)
- moved folders @Tomas-vilte (#215)
- Implement MetadataRepository interface and integration tests @Tomas-vilte (#214)
- update makefile and ci.yml @Tomas-vilte (#213)
- Refactor MetadataRepository interface and implementations to use pointers @Tomas-vilte (#212)
- Implement Kafka Messaging Service and Add Tests @Tomas-vilte (#211)
- Fix reappearance of deleted messages in SQS integration test @Tomas-vilte (#210)
- Add unit and integration tests for SQS implementation @Tomas-vilte (#209)
- Add MessageQueue interface and SQS implementation @Tomas-vilte (#208)
- Add new method storage @Tomas-vilte (#207)
- Dev @Tomas-vilte (#206)
- update readme @Tomas-vilte (#205)
- Add Logging Middleware, Update Config Struct, and Modify Dockerfile for Health Check @Tomas-vilte (#204)
- Add Dockerfile, build/push script, .env.example and remove YouTube API from health check @Tomas-vilte (#203)
- add struct cfg @Tomas-vilte (#202)
- change env name @Tomas-vilte (#201)
- Refactor health checks to use context and async execution @Tomas-vilte (#200)
- Add health check endpoint for external services @Tomas-vilte (#199)
- Add readme @Tomas-vilte (#198)
- Return OperationID and songID when starting audio processing @Tomas-vilte (#197)
- Fix: Buffer Overflow in yt-dlp Downloader and Improve Asynchronous Handling in Audio Processing @Tomas-vilte (#196)
- Implement AudioHandler for managing audio download initiation and status retrieval with tests @Tomas-vilte (#195)
- Implement the GetOperationStatus use case @Tomas-vilte (#194)
- Implement audio download use case with tests @Tomas-vilte (#192)
- Fix code scanning alert no. 1: Missing regular expression anchor @Tomas-vilte (#193)
- Add audio processing service with retries and S3 upload integration, and unit tests @Tomas-vilte (#191)
- change data type @Tomas-vilte (#190)
- Add repository interfaces for Metadata and Operation @Tomas-vilte (#189)
- Add YTDLPDownloader for audio extraction from online platforms @Tomas-vilte (#188)
- Implement OperationStore with CRUD Operations and Add Unit/Integration Tests @Tomas-vilte (#187)
- Implement MetadataStore with CRUD Operations and Add Unit/Integration Tests @Tomas-vilte (#186)
- Implement audio encoding functionality with session management, error handling @Tomas-vilte (#185)
- Add ZapLogger and PacketDecoder implementations @Tomas-vilte (#184)
- Implement S3 storage service with unit and integration tests @Tomas-vilte (#183)
- Add notify job to CI pipeline for success/failure messages @Tomas-vilte (#182)
- Refactor CI Pipeline: Separate Linting, Unit Tests, Integration Tests, and Build Jobs @Tomas-vilte (#181)
- Enhance YouTubeAPI Integration with New Methods and Comprehensive Tests @Tomas-vilte (#180)
- Test for encoder and decoder @Tomas-vilte (#179)
- Ver info del comando yt-dlp @Tomas-vilte (#177)
- Ver info del comando yt-dlp @Tomas-vilte (#176)
- Agregar oauth con youtube @Tomas-vilte (#175)
- ver progreso del comando yt-dlp @Tomas-vilte (#174)
- Modificar dockerfile para usar el archivo .txt @Tomas-vilte (#173)
- Integrar uso de archivo de cookies con yt-dlp para descarga de audio @Tomas-vilte (#172)
- Add HTML files for Terms of Service, Privacy Policy, and main page for GitHub Pages @Tomas-vilte (#168)
- Refactor guild player for improved concurrency management and code structure @Tomas-vilte (#167)
- Test cd pipeline 3 @Tomas-vilte (#166)
- test pipeline 2 @Tomas-vilte (#165)
- test pipeline @Tomas-vilte (#164)
- Enable logs @Tomas-vilte (#163)
- update cd.yml @Tomas-vilte (#162)
- Dev @Tomas-vilte (#161)
- Update CD Pipeline to Use Amazon ECR and Deploy Only Discord Bot Service @Tomas-vilte (#160)
- eliminar atributo que no se usa @Tomas-vilte (#159)
- quitamos sudo @Tomas-vilte (#157)
- ajustar comandos de docker en el cd.yml @Tomas-vilte (#156)
- modificamos dockerfiles para correr en arch amd64 @Tomas-vilte (#155)
- Eliminar implementación de almacenamiento en disco para canciones @Tomas-vilte (#154)
- Eliminación de
context.Contextde la estructuraInteractionHandler@Tomas-vilte (#153) - Añadir formato personalizado de fecha y hora en ZapLogger @Tomas-vilte (#152)
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 @dependabot (#151)
- tests: modify tests @Tomas-vilte (#150)
- actualizar dockerfiles y compose @Tomas-vilte (#149)
- Dev @Tomas-vilte (#148)
- actualizar .zip @Tomas-vilte (#147)
- Actualizar YouTubeFetcher y añadir tests unitarios @Tomas-vilte (#146)
- Dev @Tomas-vilte (#145)
- Implementación y pruebas de ClientAPI para procesamiento de metadatos de canciones a través de API Gateway @Tomas-vilte (#144)
- eliminar cache @Tomas-vilte (#143)
- actualizamos lambda @Tomas-vilte (#142)
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 @dependabot (#140)
- mo...
v1.0.5 🌈
Cambios
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 @dependabot (#151)
- tests: modify tests @Tomas-vilte (#150)
- actualizar dockerfiles y compose @Tomas-vilte (#149)
- Dev @Tomas-vilte (#148)
- actualizar .zip @Tomas-vilte (#147)
- Actualizar YouTubeFetcher y añadir tests unitarios @Tomas-vilte (#146)
- Dev @Tomas-vilte (#145)
- eliminar cache @Tomas-vilte (#143)
- actualizamos lambda @Tomas-vilte (#142)
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 @dependabot (#140)
- movemos los archivos al directorio internal @Tomas-vilte (#139)
- agregar envs para las subnets @Tomas-vilte (#137)
- nuevos cambio readme @Tomas-vilte (#136)
- docu: agregar documentacion @Tomas-vilte (#135)
- add dockerfile @Tomas-vilte (#132)
- Dev @Tomas-vilte (#131)
- Refactor: Implementación de interfaces para S3Uploader y tests unitarios @Tomas-vilte (#129)
- Dev @Tomas-vilte (#128)
- Optimizar transmisión de audio y agregar pruebas unitarias @Tomas-vilte (#126)
- Dev @Tomas-vilte (#125)
- save logs in file @Tomas-vilte (#124)
- Eliminar metodos que no usamos, y agregamos nueva config @Tomas-vilte (#120)
- cambiamos config de grafana, y opcion para guardar los logs en un archivo @Tomas-vilte (#118)
- modificando docker compose @Tomas-vilte (#117)
- agregamos volumen al servicio @Tomas-vilte (#116)
- modificamos el docker compose @Tomas-vilte (#115)
- anadimos dashboard y datasource a grafana @Tomas-vilte (#114)
- update docu @Tomas-vilte (#112)
- Actualizar Docker Compose y agregar paquete de profiler @Tomas-vilte (#110)
- trigger workflow @Tomas-vilte (#109)
- add .env of example and modify configs @Tomas-vilte (#108)
- change yml @Tomas-vilte (#107)
- change docker compose @Tomas-vilte (#106)
- change cd.yml @Tomas-vilte (#105)
- Simplificación de la configuración de Grafana con Docker Compose @Tomas-vilte (#104)
- Agregada funcionalidad de métricas Prometheus y servidor HTTP @Tomas-vilte (#103)
- Dev @Tomas-vilte (#102)
- change function @Tomas-vilte (#101)
- agregando loggers y cambios en los tests @Tomas-vilte (#100)
- Actualizar flujos de trabajo y Dockerfiles para implementación de Butakero Bot en arquitectura ARM64 @Tomas-vilte (#97)
- modify cd 2 @Tomas-vilte (#96)
- change cd @Tomas-vilte (#95)
- modify yml @Tomas-vilte (#94)
- Agregados Dockerfile.local y Dockerfile.aws @Tomas-vilte (#93)
- modify dockerfile @Tomas-vilte (#92)
- Crear estructura inicial para las funciones de consumo de mensajes SQS @Tomas-vilte (#90)
- modify policy, add permission lambda @Tomas-vilte (#88)
🚀 Nuevas Características
- Implementación y pruebas de ClientAPI para procesamiento de metadatos de canciones a través de API Gateway @Tomas-vilte (#144)
- Implementación y refactorización de la integración con YouTube y Redis @Tomas-vilte (#141)
- Implementar notificaciones JSON SQS para procesamiento de audio @Tomas-vilte (#138)
- Implementación de Lambda para procesar eventos de S3 y enviar jobs a ECS @Tomas-vilte (#134)
- Implementación para Procesar y Subir Archivos .m4a como .dca a S3 utilizando AWS ECS Fargate @Tomas-vilte (#133)
- Agregar Lambda de descarga de música con mocks y tests unitarios @Tomas-vilte (#130)
- Agregar funcionalidad de carga a S3 y pruebas unitarias @Tomas-vilte (#127)
- Agregar CommandExecutor, crear mocks y pruebas para YoutubeFetcher @Tomas-vilte (#123)
- Implementar proveedor de YouTube y pruebas unitarias @Tomas-vilte (#122)
- Implementación de caché de audio y optimizaciones en caché de búsqueda @Tomas-vilte (#121)
- Agregar métricas de caché y mejorar el rendimiento del caché @Tomas-vilte (#119)
- Agregar Loki y Promtail para Registro Centralizado y Actualizar Configuración de Logging @Tomas-vilte (#113)
- Implementar funcionalidades de manejo de eventos y comunicación con Discord @Tomas-vilte (#99)
- Mejora del enrutamiento de eventos y refactorización del manejo de colas de mensajes @Tomas-vilte (#98)
- Refactorización y Expansión del Manejo de Eventos de GitHub @Tomas-vilte (#91)
- Implementación de procesamiento de eventos de GitHub con publicación en cola SQS @Tomas-vilte (#89)
📚 Documentación
- Implementación y refactorización de la integración con YouTube y Redis @Tomas-vilte (#141)
- Implementación de caché de audio y optimizaciones en caché de búsqueda @Tomas-vilte (#121)
- Nueva documentacion al repositorio @Tomas-vilte (#111)
- Implementar funcionalidades de manejo de eventos y comunicación con Discord @Tomas-vilte (#99)
- Implementación de procesamiento de eventos de GitHub con publicación en cola SQS @Tomas-vilte (#89)
v1.0.4 🌈
🚀 Esta nueva release incluye varias mejoras y adiciones significativas para el proyecto. A continuación se detallan los cambios principales:
- Implementación del procesamiento de eventos de GitHub con publicación en una cola SQS.
- Añadido manejo de eventos mediante el paquete
github_event. - Incorporación de un logger utilizando la librería Zap en el paquete
logging. - Adición de un paquete
message_queuepara la publicación de eventos en una cola de mensajes. - Creación de un servicio
EventProcessorpara procesar y publicar eventos. - Implementación del punto de entrada principal en el paquete
mainpara la ejecución de la lambda.
Detalles de los Cambios
- github_event: Se añadió un nuevo paquete para manejar eventos de GitHub.
- logging: Se creó un paquete para el registro de información y errores.
- message_queue: Se agregó un paquete para la publicación de eventos en una cola de mensajes.
- service: Se implementó el servicio
EventProcessorpara procesar y publicar eventos. - main: Se implementó el punto de entrada principal para la lambda.
v1.0.3 🌈
Resumen de Cambios
🚀 Esta nueva release incluye varias mejoras y adiciones significativas para el proyecto. A continuación se detallan los cambios principales:
- Implementación del procesamiento de eventos de GitHub con publicación en una cola SQS.
- Añadido manejo de eventos mediante el paquete
github_event. - Incorporación de un logger utilizando la librería Zap en el paquete
logging. - Adición de un paquete
message_queuepara la publicación de eventos en una cola de mensajes. - Creación de un servicio
EventProcessorpara procesar y publicar eventos. - Implementación del punto de entrada principal en el paquete
mainpara la ejecución de la lambda.
Detalles de los Cambios
- github_event: Se añadió un nuevo paquete para manejar eventos de GitHub.
- logging: Se creó un paquete para el registro de información y errores.
- message_queue: Se agregó un paquete para la publicación de eventos en una cola de mensajes.
- service: Se implementó el servicio
EventProcessorpara procesar y publicar eventos. - main: Se implementó el punto de entrada principal para la lambda.
v1.0.2 🌈
Cambios
📚 Actualizaciones de documentación
- Se actualizó la documentación del código para reflejar los cambios en la estructura del GuildPlayer. @Tomas-vilte (#84)
- Agregamos instrucciones bien detalladas para configurar el almacenamiento en archivos en la documentación del proyecto.
- Documentamos los cambios en las interfaces SongStorage y StateStorage.
🛠️ Mejoras en la funcionalidad existente
- Mejoramos la eficiencia del almacenamiento en memoria para acceder más rápido a las canciones. @Tomas-vilte (#84)
- Optimizamos el proceso de inicialización del reproductor para reducir el tiempo de carga.
- Sumamos una función de limpieza automática para sacar canciones viejas de la lista de reproducción.
🧹 Refactorizaciones y optimizaciones
- Refactorizamos la lógica de inicialización del almacenamiento de archivos para que el código sea más fácil de leer. @Tomas-vilte (#84)
- Optimizamos cómo manejamos los errores en GetPlaylistStore para dar mensajes de error más claros.
- Simplificamos la estructura del GuildPlayer sacando campos que eran medio al pedo y mejorando la coherencia.
🧪 Pruebas adicionales
- Sumamos más pruebas unitarias para cubrir mejor el código de las nuevas implementaciones de almacenamiento. @Tomas-vilte (#84)
- Hicimos más pruebas de integración para chequear que las interfaces y las implementaciones se lleven bien entre sí.