Se lanzó Gin 1.12.0
Gin v1.12.0
Características
- feat(binding): agregar soporte para encoding.UnmarshalText en binding uri/query (#4203)
- feat(context): agregar métodos GetError y GetErrorSlice para la recuperación de errores (#4502)
- feat(context): agregar soporte de Protocol Buffers a la negociación de contenido (#4423)
- feat(context): implementar método Delete (#4296)
- feat(gin): agregar opción para usar ruta escapada (#4420)
- feat(logger): latencia de color (#4146)
- feat(render): agregar protocolo bson (#4145)
Correcciones de errores
- fix(binding): error de valor vacío (#2169)
- fix(binding): mejorar el manejo de cortes/matrices vacías en binding de formulario (#4380)
- fix(context): corregir el manejo de ClientIP para valores de encabezado X-Forwarded-For múltiples (#4472)
- fix(debug): desajuste de versión (#4403)
- fix(gin): cerrar os.File en RunFd para prevenir fugas de recursos (#4422)
- fix(gin): corregir rutas de dos puntos literales que no funcionan con engine.Handler() (#4415)
- fix(recover): suprimir http.ErrAbortHandler en recover (#4336)
- fix(render): escribir longitud de contenido en Data.Render (#4206)
- fix(response): refinar el comportamiento de secuestro para el ciclo de vida de la respuesta (#4373)
- fix(tree): corregir pánico en findCaseInsensitivePathRec con RedirectFixedPath (#4535)
- fix: Corregir errores tipográficos, mejorar la claridad de la documentación y eliminar código muerto (#4511)
Mejoras
- chore(binding): actualizar dependencia bson a mongo-driver v2 (#4549)
- chore(context): siempre confiar en encabezados xff del socket unix (#3359)
- chore(deps): actualizar golang.org/x/crypto a v0.45.0 (#4449)
- chore(deps): actualizar quic-go a v0.57.1 (#4532)
- chore(logger): permitir omitir la salida de cadena de consulta (#4547)
- chore(response): prevenir pánico de Flush() cuando
http.Flusher(#4479)
Refactorización
- refactor(binding): usar maps.Copy para un manejo de mapas más limpio (#4352)
- refactor(context): omitir nombres de valores devueltos (#4395)
- refactor(context): reemplazar direcciones IP locales codificadas con constantes (#4481)
- refactor(context): usando maps.Clone (#4333)
- refactor(ginS): usar sync.OnceValue para simplificar la función engine (#4314)
- refactor(recovery): comparación inteligente de errores (#4142)
- refactor(utils): mover funciones util a utils.go (#4467)
- refactor: el bucle for se puede modernizar usando range sobre int (#4392)
- refactor: reemplazar números mágicos con constantes nombradas en bodyAllowedForStatus (#4529)
- refactor: usar b.Loop() para simplificar el código y mejorar el rendimiento (#4389, #4432)
Actualizaciones de procesos de compilación / CI
- ci(bot): aumentar la frecuencia y agrupar actualizaciones de dependencias (#4367)
- ci(lint): refactorizar afirmaciones de prueba y configuración de linter (#4436)
- ci(sec): mejorar la seguridad de tipos y la organización de servidores en middleware HTTP (#4437)
- ci(sec): programar escaneos de seguridad de Trivy para ejecutarse diariamente a medianoche UTC (#4439)
- ci: reemplazar flujo de trabajo de análisis de vulnerabilidades con integración de Trivy (#4421)
- ci: actualizar flujos de trabajo de CI y estandarizar comillas de configuración de Trivy (#4531)
- ci: actualizar soporte de versión Go a 1.25+ en CI y documentación (#4550)
Actualizaciones de documentación
- docs(README): agregar una insignia de análisis de seguridad de Trivy (#4426)
- docs(context): agregar comentarios de ejemplo para métodos ShouldBind* (#4428)
- docs(context): corregir algunos comentarios (#4396)
- docs(context): corregir nombre de función incorrecto en comentario (#4382)
- docs(readme): revitalizar y expandir documentación para mayor claridad e integridad (#4362)
- docs: anunciar el lanzamiento de Gin 1.11.0 con enlace de blog (#4363)
- docs: documentar y finalizar el lanzamiento de Gin v1.12.0 (#4551)
- docs: revitalizar plantillas de contribución y soporte de GitHub (#4364)
- docs: revitalizar pautas de contribución con instrucciones completas (#4365)
- docs: actualizar documentación para reflejar cambios de versión de Go (#4552)
- docs: actualizar instrucciones de documentación de características para enlace de documentación roto (#4508)
Rendimiento
- perf(path): reemplazar regex con funciones personalizadas en redirectTrailingSlash (#4414)
- perf(recovery): optimizar la lectura de líneas en la función stack (#4466)
- perf(tree): optimizar el análisis de ruta usando strings.Count (#4246)
- perf(tree): reducir asignaciones en findCaseInsensitivePath (#4417)
Pruebas
- test(benchmarks): corregir nombre de función incorrecto (#4375)
- test(bytesconv): agregar pruebas para casos vacío/nil (#4454)
- test(context): usar constante http.StatusContinue en lugar del número mágico 100 (#4542)
- test(debug): mejorar la cobertura de prueba de debug.go al 100% (#4404)
- test(gin): agregar cobertura de prueba completa para el paquete ginS (#4442)
- test(gin): resolver condiciones de carrera en pruebas de integración (#4453)
- test(render): agregar pruebas integrales de manejo de errores (#4541)
- test(render): agregar pruebas integrales para renderizado de MsgPack (#4537)