Gin 1.12.0 Dirilis
Gin v1.12.0
Fitur
- feat(binding): tambah dukungan encoding.UnmarshalText dalam binding uri/query (#4203)
- feat(context): tambah metode GetError dan GetErrorSlice untuk pengambilan kesalahan (#4502)
- feat(context): tambah dukungan Protocol Buffers ke negosiasi konten (#4423)
- feat(context): implementasikan metode Delete (#4296)
- feat(gin): tambah opsi untuk menggunakan path yang dilepas (#4420)
- feat(logger): latensi warna (#4146)
- feat(render): tambah protokol bson (#4145)
Perbaikan Bug
- fix(binding): kesalahan nilai kosong (#2169)
- fix(binding): tingkatkan penanganan irisan/array kosong dalam binding form (#4380)
- fix(context): perbaiki penanganan ClientIP untuk nilai header X-Forwarded-For jamak (#4472)
- fix(debug): ketidakcocokan versi (#4403)
- fix(gin): tutup os.File di RunFd untuk mencegah kebocoran sumber daya (#4422)
- fix(gin): perbaiki rute titik dua literal yang tidak berfungsi dengan engine.Handler() (#4415)
- fix(recover): tekan http.ErrAbortHandler dalam recovery (#4336)
- fix(render): tulis panjang konten dalam Data.Render (#4206)
- fix(response): perbaiki perilaku hijack untuk siklus hidup respons (#4373)
- fix(tree): perbaiki panic di findCaseInsensitivePathRec dengan RedirectFixedPath (#4535)
- fix: Perbaiki kesalahan ketik, tingkatkan kejelasan dokumentasi, dan hapus kode mati (#4511)
Peningkatan
- chore(binding): tingkatkan dependensi bson ke mongo-driver v2 (#4549)
- chore(context): selalu percayai header xff dari unix socket (#3359)
- chore(deps): tingkatkan golang.org/x/crypto ke v0.45.0 (#4449)
- chore(deps): tingkatkan quic-go ke v0.57.1 (#4532)
- chore(logger): izinkan melewati keluaran string kueri (#4547)
- chore(response): cegah panic Flush() ketika
http.Flusher(#4479)
Refaktor
- refactor(binding): gunakan maps.Copy untuk penanganan peta yang lebih bersih (#4352)
- refactor(context): hilangkan nama nilai kembalian (#4395)
- refactor(context): ganti IP localhost yang dikodekan keras dengan konstanta (#4481)
- refactor(context): menggunakan maps.Clone (#4333)
- refactor(ginS): gunakan sync.OnceValue untuk menyederhanakan fungsi engine (#4314)
- refactor(recovery): perbandingan kesalahan cerdas (#4142)
- refactor(utils): pindahkan fungsi util ke utils.go (#4467)
- refactor: for loop dapat dimodernisasi menggunakan range over int (#4392)
- refactor: ganti angka ajaib dengan konstanta bernama di bodyAllowedForStatus (#4529)
- refactor: gunakan b.Loop() untuk menyederhanakan kode dan meningkatkan kinerja (#4389, #4432)
Pembaruan Proses Pembangunan / CI
- ci(bot): tingkatkan frekuensi dan pengelompokan pembaruan dependensi (#4367)
- ci(lint): refaktor pernyataan pengujian dan konfigurasi linter (#4436)
- ci(sec): tingkatkan keamanan tipe dan organisasi server dalam middleware HTTP (#4437)
- ci(sec): jadwalkan pemindaian keamanan Trivy untuk berjalan setiap hari pada tengah malam UTC (#4439)
- ci: ganti alur kerja pemindaian kerentanan dengan integrasi Trivy (#4421)
- ci: perbarui alur kerja CI dan standarkan tanda kutip konfigurasi Trivy (#4531)
- ci: perbarui dukungan versi Go ke 1.25+ di seluruh CI dan dokumentasi (#4550)
Pembaruan Dokumentasi
- docs(README): tambahkan lencana pemindaian keamanan Trivy (#4426)
- docs(context): tambahkan komentar contoh untuk metode ShouldBind* (#4428)
- docs(context): perbaiki beberapa komentar (#4396)
- docs(context): perbaiki nama fungsi yang salah dalam komentar (#4382)
- docs(readme): perbarui dan perluas dokumentasi untuk kejelasan dan kelengkapan (#4362)
- docs: umumkan rilis Gin 1.11.0 dengan tautan blog (#4363)
- docs: dokumentasikan dan finalkan rilis Gin v1.12.0 (#4551)
- docs: perbarui template kontribusi dan dukungan GitHub (#4364)
- docs: perbarui panduan kontribusi dengan instruksi komprehensif (#4365)
- docs: perbarui dokumentasi untuk mencerminkan perubahan versi Go (#4552)
- docs: perbarui instruksi dokumentasi fitur untuk tautan dokumentasi yang rusak (#4508)
Kinerja
- perf(path): ganti regex dengan fungsi kustom dalam redirectTrailingSlash (#4414)
- perf(recovery): optimalkan pembacaan baris dalam fungsi stack (#4466)
- perf(tree): optimalkan penguraian jalur menggunakan strings.Count (#4246)
- perf(tree): kurangi alokasi dalam findCaseInsensitivePath (#4417)
Tes
- test(benchmarks): perbaiki nama fungsi yang tidak benar (#4375)
- test(bytesconv): tambahkan tes untuk kasus kosong/nil (#4454)
- test(context): gunakan konstanta http.StatusContinue daripada angka ajaib 100 (#4542)
- test(debug): tingkatkan cakupan pengujian debug.go menjadi 100% (#4404)
- test(gin): tambahkan cakupan pengujian komprehensif untuk paket ginS (#4442)
- test(gin): selesaikan kondisi balapan dalam tes integrasi (#4453)
- test(render): tambahkan tes penanganan kesalahan komprehensif (#4541)
- test(render): tambahkan tes komprehensif untuk rendering MsgPack (#4537)