Gin 1.12.0 foi lançado
Gin v1.12.0
Recursos
- feat(binding): adicionar suporte para encoding.UnmarshalText em binding uri/query (#4203)
- feat(context): adicionar métodos GetError e GetErrorSlice para recuperação de erros (#4502)
- feat(context): adicionar suporte de Protocol Buffers à negociação de conteúdo (#4423)
- feat(context): implementado método Delete (#4296)
- feat(gin): adicionar opção para usar caminho escapado (#4420)
- feat(logger): latência colorida (#4146)
- feat(render): adicionar protocolo bson (#4145)
Correções de bugs
- fix(binding): erro de valor vazio (#2169)
- fix(binding): melhorar manipulação de slice/array vazio em binding de forma (#4380)
- fix(context): manipulação de ClientIP para valores de cabeçalho X-Forwarded-For múltiplos (#4472)
- fix(debug): incompatibilidade de versão (#4403)
- fix(gin): fechar os.File em RunFd para evitar vazamento de recursos (#4422)
- fix(gin): rotas de dois pontos literais não funcionando com engine.Handler() (#4415)
- fix(recover): suprimir http.ErrAbortHandler em recover (#4336)
- fix(render): escrever comprimento do conteúdo em Data.Render (#4206)
- fix(response): refinar comportamento de hijack para ciclo de vida de resposta (#4373)
- fix(tree): pânico em findCaseInsensitivePathRec com RedirectFixedPath (#4535)
- fix: Corrigir erros de digitação, melhorar clareza de documentação e remover código morto (#4511)
Aprimoramentos
- chore(binding): atualizar dependência bson para mongo-driver v2 (#4549)
- chore(context): sempre confiar em cabeçalhos xff do unix socket (#3359)
- chore(deps): atualizar golang.org/x/crypto para v0.45.0 (#4449)
- chore(deps): atualizar quic-go para v0.57.1 (#4532)
- chore(logger): permitir pular saída de string de consulta (#4547)
- chore(response): evitar pânico de Flush() quando
http.Flusher(#4479)
Refatoração
- refactor(binding): usar maps.Copy para manipulação de mapa mais limpa (#4352)
- refactor(context): omitir nomes de valores de retorno (#4395)
- refactor(context): substituir IPs de localhost codificados por constantes (#4481)
- refactor(context): usando maps.Clone (#4333)
- refactor(ginS): usar sync.OnceValue para simplificar função engine (#4314)
- refactor(recovery): comparação inteligente de erros (#4142)
- refactor(utils): mover funções de utilitários para utils.go (#4467)
- refactor: for loop pode ser modernizado usando range sobre int (#4392)
- refactor: substituir números mágicos por constantes nomeadas em bodyAllowedForStatus (#4529)
- refactor: usar b.Loop() para simplificar o código e melhorar o desempenho (#4389, #4432)
Atualizações de processo de compilação / CI
- ci(bot): aumentar frequência e agrupar atualizações de dependências (#4367)
- ci(lint): refatorar asserções de teste e configuração de linter (#4436)
- ci(sec): melhorar segurança de tipo e organização de servidor em middleware HTTP (#4437)
- ci(sec): agendar verificações de segurança do Trivy para executar diariamente à meia-noite UTC (#4439)
- ci: substituir fluxo de trabalho de verificação de vulnerabilidade por integração do Trivy (#4421)
- ci: atualizar fluxos de trabalho de CI e padronizar aspas de configuração do Trivy (#4531)
- ci: atualizar suporte de versão Go para 1.25+ em CI e documentação (#4550)
Atualizações de documentação
- docs(README): adicionar crachá de verificação de segurança do Trivy (#4426)
- docs(context): adicionar comentários de exemplo para métodos ShouldBind* (#4428)
- docs(context): corrigir alguns comentários (#4396)
- docs(context): corrigir nome de função errado em comentário (#4382)
- docs(readme): revitalizar e expandir documentação para clareza e completude (#4362)
- docs: anunciar lançamento do Gin 1.11.0 com link do blog (#4363)
- docs: documentar e finalizar lançamento do Gin v1.12.0 (#4551)
- docs: revitalizar modelos de contribuição e suporte do GitHub (#4364)
- docs: revitalizar diretrizes de contribuição com instruções abrangentes (#4365)
- docs: atualizar documentação para refletir alterações de versão do Go (#4552)
- docs: atualizar instruções de documentação de recursos para link de documentação quebrado (#4508)
Desempenho
- perf(path): substituir regex por funções personalizadas em redirectTrailingSlash (#4414)
- perf(recovery): otimizar leitura de linha na função stack (#4466)
- perf(tree): otimizar análise de caminho usando strings.Count (#4246)
- perf(tree): reduzir alocações em findCaseInsensitivePath (#4417)
Testes
- test(benchmarks): corrigir nome de função incorreto (#4375)
- test(bytesconv): adicionar testes para casos vazio/nil (#4454)
- test(context): usar constante http.StatusContinue em vez de número mágico 100 (#4542)
- test(debug): melhorar cobertura de testes de debug.go para 100% (#4404)
- test(gin): adicionar cobertura de teste abrangente para pacote ginS (#4442)
- test(gin): resolver condições de corrida em testes de integração (#4453)
- test(render): adicionar testes abrangentes de manipulação de erros (#4541)
- test(render): adicionar testes abrangentes para renderização MsgPack (#4537)