go.mod require oschwald/maxminddb-golang v1.13.1 (v1) làm dep trực tiếp (import trong internal/data/ipdb.go), nhưng v2 (/v2 v2.4.1) cũng bị kéo vào indirect. Lịch sử có PR #8 "update to v2" nhưng import vẫn dùng v1 → cả hai version cùng tồn tại trong build, lãng phí + trùng lặp.
Sau đó go mod tidy để bỏ v1 ra khỏi go.mod. Kiểm tra LookupNetwork/Reader/Open API tương thích (v2 API gần như giống v1). Chạy test + build để xác nhận.
## Vấn đề
go.mod require `oschwald/maxminddb-golang v1.13.1` (v1) làm dep **trực tiếp** (import trong `internal/data/ipdb.go`), nhưng v2 (`/v2 v2.4.1`) cũng bị kéo vào indirect. Lịch sử có PR #8 "update to v2" nhưng import vẫn dùng v1 → cả hai version cùng tồn tại trong build, lãng phí + trùng lặp.
## Fix đề xuất
Migrate import sang v2:
```go
import reader "github.com/oschwald/maxminddb-golang/v2"
```
Sau đó `go mod tidy` để bỏ v1 ra khỏi go.mod. Kiểm tra `LookupNetwork`/`Reader`/`Open` API tương thích (v2 API gần như giống v1). Chạy test + build để xác nhận.
go.mod: chỉ còn một bản github.com/oschwald/maxminddb-golang/v2 v2.4.1 (direct). Bản v1.13.1 và dòng indirect v2 trùng đã được gỡ khỏi go.mod + go.sum.
internal/data/ipdb.go: import chuyển sang .../v2. v2 là breaking API (LookupNetwork → Lookup trả Result, dùng netip.Addr), nên internal/data/query.go được adapt (dùng netip.Addr + Result.Decode/Found/Prefix, convert netip.Prefix → *net.IPNet để giữ chữ ký handler ổn định).
Verify: go build / go vet / go test -race PASS.
Đã sửa trong PR #22 (merge commit `361eb40`).
- `go.mod`: chỉ còn một bản `github.com/oschwald/maxminddb-golang/v2 v2.4.1` (direct). Bản `v1.13.1` và dòng indirect v2 trùng đã được gỡ khỏi `go.mod` + `go.sum`.
- `internal/data/ipdb.go`: import chuyển sang `.../v2`. v2 là breaking API (`LookupNetwork` → `Lookup` trả `Result`, dùng `netip.Addr`), nên `internal/data/query.go` được adapt (dùng `netip.Addr` + `Result.Decode/Found/Prefix`, convert `netip.Prefix` → `*net.IPNet` để giữ chữ ký handler ổn định).
Verify: `go build` / `go vet` / `go test -race` PASS.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Vấn đề
go.mod require
oschwald/maxminddb-golang v1.13.1(v1) làm dep trực tiếp (import tronginternal/data/ipdb.go), nhưng v2 (/v2 v2.4.1) cũng bị kéo vào indirect. Lịch sử có PR #8 "update to v2" nhưng import vẫn dùng v1 → cả hai version cùng tồn tại trong build, lãng phí + trùng lặp.Fix đề xuất
Migrate import sang v2:
Sau đó
go mod tidyđể bỏ v1 ra khỏi go.mod. Kiểm traLookupNetwork/Reader/OpenAPI tương thích (v2 API gần như giống v1). Chạy test + build để xác nhận.Đã sửa trong PR #22 (merge commit
361eb40).go.mod: chỉ còn một bảngithub.com/oschwald/maxminddb-golang/v2 v2.4.1(direct). Bảnv1.13.1và dòng indirect v2 trùng đã được gỡ khỏigo.mod+go.sum.internal/data/ipdb.go: import chuyển sang.../v2. v2 là breaking API (LookupNetwork→LookuptrảResult, dùngnetip.Addr), nêninternal/data/query.gođược adapt (dùngnetip.Addr+Result.Decode/Found/Prefix, convertnetip.Prefix→*net.IPNetđể giữ chữ ký handler ổn định).Verify:
go build/go vet/go test -racePASS.