[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
gogf/gf (github.com/gogf/gf/v2)
### [`v2.8.0`](https://redirect.github.com/gogf/gf/releases/tag/v2.8.0): GoFrame Release v2.8.0
[Compare Source](https://redirect.github.com/gogf/gf/compare/v2.7.4...v2.8.0)
#### What's Changed
##### feature
- feat(cmd/gf): add `DaMeng` database driver support by [@Insua](https://redirect.github.com/Insua) in [https://github.com/gogf/gf/pull/3606](https://redirect.github.com/gogf/gf/pull/3606)
- feat(cmd/gf): add command `gf doc` for local documentation by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3634](https://redirect.github.com/gogf/gf/pull/3634)
- feat(cmd/gf): add command `gf init xxx -a` to create an empty app template folder in mono-repo by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3550](https://redirect.github.com/gogf/gf/pull/3550)
- feat(cmd/gf): add custom field type mapping support for command `gf gen dao` by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3498](https://redirect.github.com/gogf/gf/pull/3498)
- feat(cmd/gf): change document source from repo `gf` to `gf-site` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3926](https://redirect.github.com/gogf/gf/pull/3926)
- feat(cmd/gf): project template updates for command `gf init` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3928](https://redirect.github.com/gogf/gf/pull/3928)
- feat(cmd/gf): project templates update for command `gf init` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3704](https://redirect.github.com/gogf/gf/pull/3704)
- feat(contrib/drivers/pgsql): add InsertIgnore support by [@wwwfeng](https://redirect.github.com/wwwfeng) in [https://github.com/gogf/gf/pull/3855](https://redirect.github.com/gogf/gf/pull/3855)
- feat(contrib/drivers/pgsql): support slice type to insert into array for pgsql by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3645](https://redirect.github.com/gogf/gf/pull/3645)
- feat(contrib/registry/etcd/): add `DialTimeout` and `AutoSyncInterval` option by [@fengshunli](https://redirect.github.com/fengshunli) in [https://github.com/gogf/gf/pull/3698](https://redirect.github.com/gogf/gf/pull/3698)
- feat(contrib/rpc/grpcx): use grpc.NewClient instead of grpc.Dial by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3684](https://redirect.github.com/gogf/gf/pull/3684)
- feat(contrib/sdk/httpclient): add custom response handler support, fixe [#3539](https://redirect.github.com/gogf/gf/issues/3539) by [@jswxstw](https://redirect.github.com/jswxstw) in [https://github.com/gogf/gf/pull/3540](https://redirect.github.com/gogf/gf/pull/3540)
- feat(database/gdb): add Exist support for checking records existance for certain condition by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3854](https://redirect.github.com/gogf/gf/pull/3854)
- feat(database/gdb): add `Raw` support for `Fields` function of `gdb.Model` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3873](https://redirect.github.com/gogf/gf/pull/3873)
- feat(database/gdb): add `time` field type for value converting for/from field by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3712](https://redirect.github.com/gogf/gf/pull/3712)
- feat(database/gdb): add `unscoped` tag support for orm struct by [@fainc](https://redirect.github.com/fainc) in [https://github.com/gogf/gf/pull/3464](https://redirect.github.com/gogf/gf/pull/3464)
- feat(database/gdb): add year field type support for ORM operations by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3805](https://redirect.github.com/gogf/gf/pull/3805)
- feat(database/gdb): remove unnecessary blank character requirement in tag for With feature of gdb.Model by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3875](https://redirect.github.com/gogf/gf/pull/3875)
- feat(database/gdb): support `OrderRandom` feature in different databases by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3794](https://redirect.github.com/gogf/gf/pull/3794)
- feat(database/gredis): add `Scan` method for incremental key retrieval by [@phuonganhniie](https://redirect.github.com/phuonganhniie) in [https://github.com/gogf/gf/pull/3451](https://redirect.github.com/gogf/gf/pull/3451)
- feat(encoding/ghtml): add parameter validation for function `SpecialCharsMapOrStruct` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3841](https://redirect.github.com/gogf/gf/pull/3841)
- feat(net/ghttp): remove `Req/Res` suffix limitation for input/output parameters of strict router handler by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3848](https://redirect.github.com/gogf/gf/pull/3848)
- feat(net/goai): enhance openapi doc with responses and examples by [@UncleChair](https://redirect.github.com/UncleChair) in [https://github.com/gogf/gf/pull/3859](https://redirect.github.com/gogf/gf/pull/3859)
- feat(os/gcron): add graceful shutdown support by [@vector233](https://redirect.github.com/vector233) in [https://github.com/gogf/gf/pull/3625](https://redirect.github.com/gogf/gf/pull/3625)
- feat(os/gfsnotify): add recursive watching for created subfolders and sub-files under folders that already watched by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3830](https://redirect.github.com/gogf/gf/pull/3830)
- feat(trace): add trace example for custom trace client and provider by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3847](https://redirect.github.com/gogf/gf/pull/3847)
- feat(util/gvalid): add `171` series number support for virtual phone number validation by [@swift-fs](https://redirect.github.com/swift-fs) in [https://github.com/gogf/gf/pull/3622](https://redirect.github.com/gogf/gf/pull/3622)
- feat(util/gvalid): add new rule `required-if-all` by [@cococolanosugar](https://redirect.github.com/cococolanosugar) in [https://github.com/gogf/gf/pull/3455](https://redirect.github.com/gogf/gf/pull/3455)
##### enhancement
- perf(database/gdb): performance improvement for struct scanning when with feature disabled by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3677](https://redirect.github.com/gogf/gf/pull/3677)
- perf(driver/pgsql): optimize regex for version matching by [@yincongcyincong](https://redirect.github.com/yincongcyincong) in [https://github.com/gogf/gf/pull/3583](https://redirect.github.com/gogf/gf/pull/3583)
- perf(util/gconv): add cache logic to enhance performance by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3673](https://redirect.github.com/gogf/gf/pull/3673)
- perf(util/gconv): improve performance for struct converting by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3412](https://redirect.github.com/gogf/gf/pull/3412)
- perf(util/gconv): remove unnecessary logic for function doScanList by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3588](https://redirect.github.com/gogf/gf/pull/3588)
- refactor(cmd/gf): delete binary file when command `gf run` ends process by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3628](https://redirect.github.com/gogf/gf/pull/3628)
- refactor(cmd/gf): improve `gf gen ctrl` using `ast` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3616](https://redirect.github.com/gogf/gf/pull/3616)
- refactor(cmd/gf): improve command `gf gen ctrl` using `ast` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3470](https://redirect.github.com/gogf/gf/pull/3470)
- refactor(cmd/gf): improve command `gf gen ctrl` using `ast` for parsing `DstFolder` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3478](https://redirect.github.com/gogf/gf/pull/3478)
- refactor(cmd/gf): refactor command `gf gen service` with `AST` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3488](https://redirect.github.com/gogf/gf/pull/3488)
- refactor(cmd/gf): use automatic generating package names for go files of `dao/do/entity` instead of constant package names by [@Insua](https://redirect.github.com/Insua) in [https://github.com/gogf/gf/pull/3639](https://redirect.github.com/gogf/gf/pull/3639)
- refactor(container/gring): mark deprecated, package `container/gring` will not be maintained in future by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3665](https://redirect.github.com/gogf/gf/pull/3665)
- refactor(container/gtree): refactor code with gods package by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3595](https://redirect.github.com/gogf/gf/pull/3595)
- refactor(contrib/registry/nacos): use official nacos sdk instead of the third-party nacos sdk by [@lingcoder](https://redirect.github.com/lingcoder) in [https://github.com/gogf/gf/pull/3745](https://redirect.github.com/gogf/gf/pull/3745)
- refactor(contrib/trace/jaeger): remove trace jaeger, please use the OpenTelemetry SDKs(otlphttp\&otlpgrpc) by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3825](https://redirect.github.com/gogf/gf/pull/3825)
- refactor(database/gdb): remove duplicated SQL records in tracing events by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3659](https://redirect.github.com/gogf/gf/pull/3659)
- refactor(drivers/mssql): change driver from `github.com/denisenkom/go-mssqldb` to `github.com/microsoft/go-mssqldb` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3612](https://redirect.github.com/gogf/gf/pull/3612)
- refactor(drivers/pgsql): pgsql returning id should use quotation marks,when primary key is capital by [@Insua](https://redirect.github.com/Insua) in [https://github.com/gogf/gf/pull/3638](https://redirect.github.com/gogf/gf/pull/3638)
- refactor(encoding/gjson): change data parameter from type any to \[]byte by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3542](https://redirect.github.com/gogf/gf/pull/3542)
- refactor(net/ghttp): enhance `ghttp.StartPProfServer` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3555](https://redirect.github.com/gogf/gf/pull/3555)
- refactor(net/ghttp): update error message for duplicated routes registering by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3603](https://redirect.github.com/gogf/gf/pull/3603)
- refactor(net/gudp): improve implements by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3491](https://redirect.github.com/gogf/gf/pull/3491)
- refactor(util/gconv): refactor code unit testing by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3591](https://redirect.github.com/gogf/gf/pull/3591)
- refractor(container/gtree): improve function order of `btree` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3656](https://redirect.github.com/gogf/gf/pull/3656)
- refractor(container/gtree): refactor code with `gods` package for `rbtree` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3655](https://redirect.github.com/gogf/gf/pull/3655)
- refractor(container/gtree): refactor code with gods package for avltree by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3647](https://redirect.github.com/gogf/gf/pull/3647)
##### bug fix
- fix(cmd/gf): `gf gen dao` should ignore `link` configuration from file as it is passed from arguments by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3531](https://redirect.github.com/gogf/gf/pull/3531)
- fix(cmd/gf): creating logic.go empty folder when there is no correct logic service by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3815](https://redirect.github.com/gogf/gf/pull/3815)
- fix(cmd/gf): fix command `gf gen dao` for fieldMapping feature by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3549](https://redirect.github.com/gogf/gf/pull/3549)
- fix(cmd/gf): fix command `gf up` with `-u` option upgrading packages indirectly required would fail with higher version of go required by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3687](https://redirect.github.com/gogf/gf/pull/3687)
- fix(cmd/gf): fix gen enums failed in go version v1.22.1 by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3565](https://redirect.github.com/gogf/gf/pull/3565)
- fix(cmd/gf): fix pbentity generating fail in mono-repo by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3547](https://redirect.github.com/gogf/gf/pull/3547)
- fix(cmd/gf): gen service error when there's version number at the end of package import path by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3836](https://redirect.github.com/gogf/gf/pull/3836)
- fix(cmd/gf): go back current working directory after gf gen pb by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3895](https://redirect.github.com/gogf/gf/pull/3895)
- fix(cmd/gf): missing configuration file support for cli command `pack/run/tpl/up` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3629](https://redirect.github.com/gogf/gf/pull/3629)
- fix(cmd/gf): missing file closing when printing downloading percent of gf cli file for command `gf up` by [@testwill](https://redirect.github.com/testwill) in [https://github.com/gogf/gf/pull/3483](https://redirect.github.com/gogf/gf/pull/3483)
- fix(cmd/gf): protoc file comments contain backticks and double quotes, resulting in syntax errors in the generated file of go by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3890](https://redirect.github.com/gogf/gf/pull/3890)
- fix(cmd/gf): remove dir after process done if given build file parameter is not a file but a dir name by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3908](https://redirect.github.com/gogf/gf/pull/3908)
- fix(cmd/gf): remove dm driver for command `gen dao` as it causes building failed for some platforms by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3667](https://redirect.github.com/gogf/gf/pull/3667)
- fix(cmd/gf): table and field names converted to its lower case before CamelCase converting in command `gen dao` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3801](https://redirect.github.com/gogf/gf/pull/3801)
- fix(container/gmap\&gset): deadlock when removing values during iterating by [@LonelySally](https://redirect.github.com/LonelySally) in [https://github.com/gogf/gf/pull/3572](https://redirect.github.com/gogf/gf/pull/3572)
- fix(container/gtree): deadlock in Map/MapStrAny functions, comments update by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3840](https://redirect.github.com/gogf/gf/pull/3840)
- fix(contrib/drivers/mssql): fix mssql paging sql generate statement error by [@freesme](https://redirect.github.com/freesme) in [https://github.com/gogf/gf/pull/3782](https://redirect.github.com/gogf/gf/pull/3782)
- fix(contrib/drivers/pgsql): connection fails when postgres database password is empty by [@wlynxg](https://redirect.github.com/wlynxg) in [https://github.com/gogf/gf/pull/3900](https://redirect.github.com/gogf/gf/pull/3900)
- fix(contrib/drivers/pgsql): fix insert error when data struct field has nil in PgSQL by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3679](https://redirect.github.com/gogf/gf/pull/3679)
- fix(contrib/drivers/pgsql): invalid pgsql insert json type by [@Ghw2066](https://redirect.github.com/Ghw2066) in [https://github.com/gogf/gf/pull/3742](https://redirect.github.com/gogf/gf/pull/3742)
- fix(contrib/drivers/sqlitecgo): support 32-bit architecture by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3480](https://redirect.github.com/gogf/gf/pull/3480)
- fix(contrib/nosql/redis): missing err nil check in function `ScriptExists` by [@JimDevil](https://redirect.github.com/JimDevil) in [https://github.com/gogf/gf/pull/3713](https://redirect.github.com/gogf/gf/pull/3713)
- fix(contrib/registry/file/v2): fix the panic caused by channel closing after `resolver closed` by [@zishang520](https://redirect.github.com/zishang520) in [https://github.com/gogf/gf/pull/3691](https://redirect.github.com/gogf/gf/pull/3691)
- fix(contrib/registry/zookeeper): invalid searching prefix by [@cruelchen](https://redirect.github.com/cruelchen) in [https://github.com/gogf/gf/pull/3598](https://redirect.github.com/gogf/gf/pull/3598)
- fix(database/gdb): FieldsEx feature conflicts with soft time feature in soft time fields updating by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3773](https://redirect.github.com/gogf/gf/pull/3773)
- fix(database/gdb): confusing error message in Insert/Update operations when table not exist or the table contains no fields by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3553](https://redirect.github.com/gogf/gf/pull/3553)
- fix(database/gdb): deadlock when orm operations performing in cache closure function from gcache by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3585](https://redirect.github.com/gogf/gf/pull/3585)
- fix(database/gdb): error parsing database link without port number by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3772](https://redirect.github.com/gogf/gf/pull/3772)
- fix(database/gdb): first column might be overwritten in internal context data in multiple goroutines querying by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3476](https://redirect.github.com/gogf/gf/pull/3476)
- fix(database/gdb): ignore automatic handling for creating/updating time if it has been specified by [@jswxstw](https://redirect.github.com/jswxstw) in [https://github.com/gogf/gf/pull/3615](https://redirect.github.com/gogf/gf/pull/3615)
- fix(database/gdb): invalid order by statement generated when multiple order inputs by [@LanceAdd](https://redirect.github.com/LanceAdd) in [https://github.com/gogf/gf/pull/3803](https://redirect.github.com/gogf/gf/pull/3803)
- fix(database/gdb): recognize field type `tinyint(1)` to golang type `bool` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3921](https://redirect.github.com/gogf/gf/pull/3921)
- fix(database/gdb): remove support of Array/Value/Count operations for result that has multiple record fields by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3839](https://redirect.github.com/gogf/gf/pull/3839)
- fix(database/gdb): soft-time support fieldType:`LocalTypeUint64` in Insert/Update operations by [@muddydog](https://redirect.github.com/muddydog) in [https://github.com/gogf/gf/pull/3551](https://redirect.github.com/gogf/gf/pull/3551)
- fix(database/gdb): unix socket connection support for mysql by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3872](https://redirect.github.com/gogf/gf/pull/3872)
- fix(database/gdb): when constructing query param, `gdb.Row` value not directly write to Buffer by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3718](https://redirect.github.com/gogf/gf/pull/3718)
- fix(debug/gdebug): incorrect package name handling in function CallerPackage by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3771](https://redirect.github.com/gogf/gf/pull/3771)
- fix(encoding/gxml): XML special character encoding error by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3740](https://redirect.github.com/gogf/gf/pull/3740)
- fix(errors/gerror): `Is` performs the same as errors.Is from go stdlib by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3640](https://redirect.github.com/gogf/gf/pull/3640)
- fix(net/gclient): Client Clone with allocated header/cookie by [@CharLemAznable](https://redirect.github.com/CharLemAznable) in [https://github.com/gogf/gf/pull/3902](https://redirect.github.com/gogf/gf/pull/3902)
- fix(net/gclient): panic when containing `@file:` parameter value in json post request by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3775](https://redirect.github.com/gogf/gf/pull/3775)
- fix(net/ghttp\&gclient,contrib/rpc/grpcx): remove request and response contents in opentelemetry tracing attributes by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3810](https://redirect.github.com/gogf/gf/pull/3810)
- fix(net/ghttp): Content-Type for `jsonp` response from `application/json` to `application/javascript` by [@swift-fs](https://redirect.github.com/swift-fs) in [https://github.com/gogf/gf/pull/3651](https://redirect.github.com/gogf/gf/pull/3651)
- fix(net/ghttp): fix args issue for `forkRestartProcess` in graceful restarting of ghttp.Server by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3661](https://redirect.github.com/gogf/gf/pull/3661)
- fix(net/ghttp): server shutdown not graceful using admin api `/debug/admin/shutdown` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3777](https://redirect.github.com/gogf/gf/pull/3777)
- fix(net/ghttp): skip common response body in common response handler for streaming content types by [@wwwfeng](https://redirect.github.com/wwwfeng) in [https://github.com/gogf/gf/pull/3762](https://redirect.github.com/gogf/gf/pull/3762)
- fix(net/goai): cannot customize `OpenAPIv3` type for request parameters by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3845](https://redirect.github.com/gogf/gf/pull/3845)
- fix(net/goai): change default value of RequestBody.Required from true to false, add required tag support for RequestBody by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3796](https://redirect.github.com/gogf/gf/pull/3796)
- fix(net/goai): fix openapi miss `required` tag of `BizRequest` when set `CommonRequest` by [@niluan304](https://redirect.github.com/niluan304) in [https://github.com/gogf/gf/pull/3724](https://redirect.github.com/gogf/gf/pull/3724)
- fix(net/goai): support multiple file upload parameters for `OpenAPIv3` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3662](https://redirect.github.com/gogf/gf/pull/3662)
- fix(os/gcache): a little memory leak for removed timestamp key by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3779](https://redirect.github.com/gogf/gf/pull/3779)
- fix(os/gcache): memory leak for LRU when adding operations more faster than deleting by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3823](https://redirect.github.com/gogf/gf/pull/3823)
- fix(os/gcfg): SetPath failed when there's config.yaml in current working directory by [@ynwcel](https://redirect.github.com/ynwcel) in [https://github.com/gogf/gf/pull/3587](https://redirect.github.com/gogf/gf/pull/3587)
- fix(os/gcfg): file searching always returning the configuration file of pwd by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3592](https://redirect.github.com/gogf/gf/pull/3592)
- fix(os/gcmd): argument index calculating error in multilevel command by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3807](https://redirect.github.com/gogf/gf/pull/3807)
- fix(os/gcmd): cannot retrieve all args if no subcommand defined for a root command by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3850](https://redirect.github.com/gogf/gf/pull/3850)
- fix(os/glog): empty content in glog handler after structure logging feature supported by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3475](https://redirect.github.com/gogf/gf/pull/3475)
- fix(os/gproc): missing arguments on Windows platform by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3482](https://redirect.github.com/gogf/gf/pull/3482)
- fix(os/gres): add custom prefix `/` support for resource packing by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3621](https://redirect.github.com/gogf/gf/pull/3621)
- fix(os/gtime): fix gtime.Value() when time only, add `time only` example by [@niluan304](https://redirect.github.com/niluan304) in [https://github.com/gogf/gf/pull/3714](https://redirect.github.com/gogf/gf/pull/3714)
- fix(os/gtime): time zone issues by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3561](https://redirect.github.com/gogf/gf/pull/3561)
- fix(os/gtime): unit testing case occasionally failed for package gtime by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3596](https://redirect.github.com/gogf/gf/pull/3596)
- fix(util/gconv): [#3764](https://redirect.github.com/gogf/gf/issues/3764) fix bool converting issue by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3765](https://redirect.github.com/gogf/gf/pull/3765)
- fix(util/gconv): assigned the same value to struct field and its same name field in embedded struct failed by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3905](https://redirect.github.com/gogf/gf/pull/3905)
- fix(util/gconv): cached field indexes append issue caused incorrect field converting by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3790](https://redirect.github.com/gogf/gf/pull/3790)
- fix(util/gconv): fix missing minus in string to int64 conversion by [@UncleChair](https://redirect.github.com/UncleChair) in [https://github.com/gogf/gf/pull/3920](https://redirect.github.com/gogf/gf/pull/3920)
- fix(util/gconv): if the value of a string is `null`, the value of string is `nil` after the `string` is converted to `[]string` by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3468](https://redirect.github.com/gogf/gf/pull/3468)
- fix(util/gconv): incorrect fuzzy converting logic by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3874](https://redirect.github.com/gogf/gf/pull/3874)
- fix(util/gconv): map type name mismatch in switch case statement by [@wlynxg](https://redirect.github.com/wlynxg) in [https://github.com/gogf/gf/pull/3732](https://redirect.github.com/gogf/gf/pull/3732)
- fix(util/gconv): one parameter to same tag in multiple struct attributes mapping failed by [@helloteemo](https://redirect.github.com/helloteemo) in [https://github.com/gogf/gf/pull/3822](https://redirect.github.com/gogf/gf/pull/3822)
- fix(util/gconv): unstable converting when there is an external attribute with the same name as the internal structure by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3799](https://redirect.github.com/gogf/gf/pull/3799)
- fix(util/gutil): invalid empty parameter value check for function `GetOrDefaultAny` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3844](https://redirect.github.com/gogf/gf/pull/3844)
- fix(util/gvalid): retrive empty slice parameter in custom validation rule function failed by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3795](https://redirect.github.com/gogf/gf/pull/3795)
- fix(util/gvalid): slice enums verification failed by [@xyqweb](https://redirect.github.com/xyqweb) in [https://github.com/gogf/gf/pull/3566](https://redirect.github.com/gogf/gf/pull/3566)
- fix(utils/utils_str): recognize '+' as a valid numeric sign by [@wwwfeng](https://redirect.github.com/wwwfeng) in [https://github.com/gogf/gf/pull/3778](https://redirect.github.com/gogf/gf/pull/3778)
##### other
- build(deps): bump google.golang.org/grpc from 1.51.0 to 1.56.3 in /contrib/config/polaris by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/gogf/gf/pull/3831](https://redirect.github.com/gogf/gf/pull/3831)
- build(deps): bump google.golang.org/grpc from 1.51.0 to 1.56.3 in /contrib/registry/polaris by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/gogf/gf/pull/3828](https://redirect.github.com/gogf/gf/pull/3828)
- build(go.mod): upgrade minimum required go version from 1.18 to 1.20 by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3688](https://redirect.github.com/gogf/gf/pull/3688)
- build: bump google.golang.org/protobuf to v1.33.0 by [@fengshunli](https://redirect.github.com/fengshunli) in [https://github.com/gogf/gf/pull/3697](https://redirect.github.com/gogf/gf/pull/3697)
- build: downgrade fsnotify from v1.8.0 to v1.7.0 to solve data race error by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3916](https://redirect.github.com/gogf/gf/pull/3916)
- build: upgrade fsnotify from v1.7.0 to v1.8.0 to solve occasional ci failure by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3910](https://redirect.github.com/gogf/gf/pull/3910)
- chore(.github/template): update document for github pull requests by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3666](https://redirect.github.com/gogf/gf/pull/3666)
- chore(contrib/config/polaris): upgrade dependent polaris library version to v1.5.8 and go version to v1.21 by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3827](https://redirect.github.com/gogf/gf/pull/3827)
- chore(contrib/registry/polaris): upgrade dependent polaris library version to v1.5.8 and go version to v1.21 by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3826](https://redirect.github.com/gogf/gf/pull/3826)
- chore(errors/gerror): add examples by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3927](https://redirect.github.com/gogf/gf/pull/3927)
- chore(example): fix file name `example/pack/packed/paked.go` → `example/pack/packed/packed.go` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3479](https://redirect.github.com/gogf/gf/pull/3479)
- chore(example): password encrypt-decrypt for database using custom implement driver by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3610](https://redirect.github.com/gogf/gf/pull/3610)
- chore(go.mod): upgrade version of dependencies by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3494](https://redirect.github.com/gogf/gf/pull/3494)
- chore(go.mod): upgrade version of dependencies for `cmd/gf` and `contrib` packages by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3526](https://redirect.github.com/gogf/gf/pull/3526)
- chore: README.md updates by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3912](https://redirect.github.com/gogf/gf/pull/3912)
- chore: fix function names in comment by [@findnature](https://redirect.github.com/findnature) in [https://github.com/gogf/gf/pull/3536](https://redirect.github.com/gogf/gf/pull/3536)
- chore: fix function names in comments for package `otelmetric` by [@writegr](https://redirect.github.com/writegr) in [https://github.com/gogf/gf/pull/3493](https://redirect.github.com/gogf/gf/pull/3493)
- chore: issue templates update for github by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3544](https://redirect.github.com/gogf/gf/pull/3544)
- chore: issues and pull requests template update for github by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3533](https://redirect.github.com/gogf/gf/pull/3533)
- chore: readme updates by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3919](https://redirect.github.com/gogf/gf/pull/3919)
- chore: update README.MD by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3911](https://redirect.github.com/gogf/gf/pull/3911)
- chore: update the contributors in README.MD by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3907](https://redirect.github.com/gogf/gf/pull/3907)
- ci(.github/workflows): fix warning info from node16 on timezone setting by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3614](https://redirect.github.com/gogf/gf/pull/3614)
- ci(.github/workflows): remove code coverage report for folder `example` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3608](https://redirect.github.com/gogf/gf/pull/3608)
- ci: add Scorecard workflow by [@fengshunli](https://redirect.github.com/fengshunli) in [https://github.com/gogf/gf/pull/3702](https://redirect.github.com/gogf/gf/pull/3702)
- ci: add go version 1.23 support by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3733](https://redirect.github.com/gogf/gf/pull/3733)
- ci: fix code coverage not sync to CodeCov by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3570](https://redirect.github.com/gogf/gf/pull/3570)
- ci: fix mssql docker service failed in ci by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3792](https://redirect.github.com/gogf/gf/pull/3792)
- ci: fix mssql docker service starting failed by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3824](https://redirect.github.com/gogf/gf/pull/3824)
- docs(contrib/drivers): add `README.zh_CN.MD` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3604](https://redirect.github.com/gogf/gf/pull/3604)
- style(gtest/test): improve code by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3891](https://redirect.github.com/gogf/gf/pull/3891)
- test(cmd/gf): `gf gen ctrl` with `-merge` option by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3490](https://redirect.github.com/gogf/gf/pull/3490)
- test(cmd/gf): add unit testing case generating dao/do/entity files for sqlite in command `gen dao` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3808](https://redirect.github.com/gogf/gf/pull/3808)
- test(cmd/gf): add unit testing case of commented api definitions generating for command `gf gen ctrl` by [@zcyc](https://redirect.github.com/zcyc) in [https://github.com/gogf/gf/pull/3575](https://redirect.github.com/gogf/gf/pull/3575)
- test(cmd/gf): fix unit testing cases for compatibility with windows by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3532](https://redirect.github.com/gogf/gf/pull/3532)
- test(cmd/gf,conbrib/drivers): unit testing cases update by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3453](https://redirect.github.com/gogf/gf/pull/3453)
- test(drivers/mysql): loose unit testing for transaction by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3819](https://redirect.github.com/gogf/gf/pull/3819)
- test(drivers/mysql): use asserts function to replace if statement by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3849](https://redirect.github.com/gogf/gf/pull/3849)
- test(os/gcache): fix unit testing occasionally failed due to too short expration duration set by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3842](https://redirect.github.com/gogf/gf/pull/3842)
- test(os/gproc): fix uint testing case for signal feature of package gproc occasionally failed by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3529](https://redirect.github.com/gogf/gf/pull/3529)
- test(test/gtest): add support for string type in AssertIN and AssertNI by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3537](https://redirect.github.com/gogf/gf/pull/3537)
#### New Contributors
- [@phuonganhniie](https://redirect.github.com/phuonganhniie) made their first contribution in [https://github.com/gogf/gf/pull/3451](https://redirect.github.com/gogf/gf/pull/3451)
- [@cococolanosugar](https://redirect.github.com/cococolanosugar) made their first contribution in [https://github.com/gogf/gf/pull/3455](https://redirect.github.com/gogf/gf/pull/3455)
- [@writegr](https://redirect.github.com/writegr) made their first contribution in [https://github.com/gogf/gf/pull/3493](https://redirect.github.com/gogf/gf/pull/3493)
- [@findnature](https://redirect.github.com/findnature) made their first contribution in [https://github.com/gogf/gf/pull/3536](https://redirect.github.com/gogf/gf/pull/3536)
- [@cyjaysong](https://redirect.github.com/cyjaysong) made their first contribution in [https://github.com/gogf/gf/pull/3498](https://redirect.github.com/gogf/gf/pull/3498)
- [@muddydog](https://redirect.github.com/muddydog) made their first contribution in [https://github.com/gogf/gf/pull/3551](https://redirect.github.com/gogf/gf/pull/3551)
- [@ynwcel](https://redirect.github.com/ynwcel) made their first contribution in [https://github.com/gogf/gf/pull/3587](https://redirect.github.com/gogf/gf/pull/3587)
- [@yincongcyincong](https://redirect.github.com/yincongcyincong) made their first contribution in [https://github.com/gogf/gf/pull/3583](https://redirect.github.com/gogf/gf/pull/3583)
- [@cruelchen](https://redirect.github.com/cruelchen) made their first contribution in [https://github.com/gogf/gf/pull/3598](https://redirect.github.com/gogf/gf/pull/3598)
- [@Insua](https://redirect.github.com/Insua) made their first contribution in [https://github.com/gogf/gf/pull/3606](https://redirect.github.com/gogf/gf/pull/3606)
- [@swift-fs](https://redirect.github.com/swift-fs) made their first contribution in [https://github.com/gogf/gf/pull/3622](https://redirect.github.com/gogf/gf/pull/3622)
- [@vector233](https://redirect.github.com/vector233) made their first contribution in [https://github.com/gogf/gf/pull/3625](https://redirect.github.com/gogf/gf/pull/3625)
- [@fengshunli](https://redirect.github.com/fengshunli) made their first contribution in [https://github.com/gogf/gf/pull/3702](https://redirect.github.com/gogf/gf/pull/3702)
- [@JimDevil](https://redirect.github.com/JimDevil) made their first contribution in [https://github.com/gogf/gf/pull/3713](https://redirect.github.com/gogf/gf/pull/3713)
- [@zishang520](https://redirect.github.com/zishang520) made their first contribution in [https://github.com/gogf/gf/pull/3691](https://redirect.github.com/gogf/gf/pull/3691)
- [@Ghw2066](https://redirect.github.com/Ghw2066) made their first contribution in [https://github.com/gogf/gf/pull/3742](https://redirect.github.com/gogf/gf/pull/3742)
- [@wwwfeng](https://redirect.github.com/wwwfeng) made their first contribution in [https://github.com/gogf/gf/pull/3762](https://redirect.github.com/gogf/gf/pull/3762)
- [@LanceAdd](https://redirect.github.com/LanceAdd) made their first contribution in [https://github.com/gogf/gf/pull/3803](https://redirect.github.com/gogf/gf/pull/3803)
- [@freesme](https://redirect.github.com/freesme) made their first contribution in [https://github.com/gogf/gf/pull/3782](https://redirect.github.com/gogf/gf/pull/3782)
- [@helloteemo](https://redirect.github.com/helloteemo) made their first contribution in [https://github.com/gogf/gf/pull/3822](https://redirect.github.com/gogf/gf/pull/3822)
- [@UncleChair](https://redirect.github.com/UncleChair) made their first contribution in [https://github.com/gogf/gf/pull/3859](https://redirect.github.com/gogf/gf/pull/3859)
- [@CharLemAznable](https://redirect.github.com/CharLemAznable) made their first contribution in [https://github.com/gogf/gf/pull/3902](https://redirect.github.com/gogf/gf/pull/3902)
**Full Changelog**: https://github.com/gogf/gf/compare/v2.7.0...v2.8.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
v2.7.4
->v2.8.0
Release Notes
gogf/gf (github.com/gogf/gf/v2)
### [`v2.8.0`](https://redirect.github.com/gogf/gf/releases/tag/v2.8.0): GoFrame Release v2.8.0 [Compare Source](https://redirect.github.com/gogf/gf/compare/v2.7.4...v2.8.0) #### What's Changed ##### feature - feat(cmd/gf): add `DaMeng` database driver support by [@Insua](https://redirect.github.com/Insua) in [https://github.com/gogf/gf/pull/3606](https://redirect.github.com/gogf/gf/pull/3606) - feat(cmd/gf): add command `gf doc` for local documentation by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3634](https://redirect.github.com/gogf/gf/pull/3634) - feat(cmd/gf): add command `gf init xxx -a` to create an empty app template folder in mono-repo by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3550](https://redirect.github.com/gogf/gf/pull/3550) - feat(cmd/gf): add custom field type mapping support for command `gf gen dao` by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3498](https://redirect.github.com/gogf/gf/pull/3498) - feat(cmd/gf): change document source from repo `gf` to `gf-site` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3926](https://redirect.github.com/gogf/gf/pull/3926) - feat(cmd/gf): project template updates for command `gf init` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3928](https://redirect.github.com/gogf/gf/pull/3928) - feat(cmd/gf): project templates update for command `gf init` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3704](https://redirect.github.com/gogf/gf/pull/3704) - feat(contrib/drivers/pgsql): add InsertIgnore support by [@wwwfeng](https://redirect.github.com/wwwfeng) in [https://github.com/gogf/gf/pull/3855](https://redirect.github.com/gogf/gf/pull/3855) - feat(contrib/drivers/pgsql): support slice type to insert into array for pgsql by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3645](https://redirect.github.com/gogf/gf/pull/3645) - feat(contrib/registry/etcd/): add `DialTimeout` and `AutoSyncInterval` option by [@fengshunli](https://redirect.github.com/fengshunli) in [https://github.com/gogf/gf/pull/3698](https://redirect.github.com/gogf/gf/pull/3698) - feat(contrib/rpc/grpcx): use grpc.NewClient instead of grpc.Dial by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3684](https://redirect.github.com/gogf/gf/pull/3684) - feat(contrib/sdk/httpclient): add custom response handler support, fixe [#3539](https://redirect.github.com/gogf/gf/issues/3539) by [@jswxstw](https://redirect.github.com/jswxstw) in [https://github.com/gogf/gf/pull/3540](https://redirect.github.com/gogf/gf/pull/3540) - feat(database/gdb): add Exist support for checking records existance for certain condition by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3854](https://redirect.github.com/gogf/gf/pull/3854) - feat(database/gdb): add `Raw` support for `Fields` function of `gdb.Model` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3873](https://redirect.github.com/gogf/gf/pull/3873) - feat(database/gdb): add `time` field type for value converting for/from field by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3712](https://redirect.github.com/gogf/gf/pull/3712) - feat(database/gdb): add `unscoped` tag support for orm struct by [@fainc](https://redirect.github.com/fainc) in [https://github.com/gogf/gf/pull/3464](https://redirect.github.com/gogf/gf/pull/3464) - feat(database/gdb): add year field type support for ORM operations by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3805](https://redirect.github.com/gogf/gf/pull/3805) - feat(database/gdb): remove unnecessary blank character requirement in tag for With feature of gdb.Model by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3875](https://redirect.github.com/gogf/gf/pull/3875) - feat(database/gdb): support `OrderRandom` feature in different databases by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3794](https://redirect.github.com/gogf/gf/pull/3794) - feat(database/gredis): add `Scan` method for incremental key retrieval by [@phuonganhniie](https://redirect.github.com/phuonganhniie) in [https://github.com/gogf/gf/pull/3451](https://redirect.github.com/gogf/gf/pull/3451) - feat(encoding/ghtml): add parameter validation for function `SpecialCharsMapOrStruct` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3841](https://redirect.github.com/gogf/gf/pull/3841) - feat(net/ghttp): remove `Req/Res` suffix limitation for input/output parameters of strict router handler by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3848](https://redirect.github.com/gogf/gf/pull/3848) - feat(net/goai): enhance openapi doc with responses and examples by [@UncleChair](https://redirect.github.com/UncleChair) in [https://github.com/gogf/gf/pull/3859](https://redirect.github.com/gogf/gf/pull/3859) - feat(os/gcron): add graceful shutdown support by [@vector233](https://redirect.github.com/vector233) in [https://github.com/gogf/gf/pull/3625](https://redirect.github.com/gogf/gf/pull/3625) - feat(os/gfsnotify): add recursive watching for created subfolders and sub-files under folders that already watched by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3830](https://redirect.github.com/gogf/gf/pull/3830) - feat(trace): add trace example for custom trace client and provider by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3847](https://redirect.github.com/gogf/gf/pull/3847) - feat(util/gvalid): add `171` series number support for virtual phone number validation by [@swift-fs](https://redirect.github.com/swift-fs) in [https://github.com/gogf/gf/pull/3622](https://redirect.github.com/gogf/gf/pull/3622) - feat(util/gvalid): add new rule `required-if-all` by [@cococolanosugar](https://redirect.github.com/cococolanosugar) in [https://github.com/gogf/gf/pull/3455](https://redirect.github.com/gogf/gf/pull/3455) ##### enhancement - perf(database/gdb): performance improvement for struct scanning when with feature disabled by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3677](https://redirect.github.com/gogf/gf/pull/3677) - perf(driver/pgsql): optimize regex for version matching by [@yincongcyincong](https://redirect.github.com/yincongcyincong) in [https://github.com/gogf/gf/pull/3583](https://redirect.github.com/gogf/gf/pull/3583) - perf(util/gconv): add cache logic to enhance performance by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3673](https://redirect.github.com/gogf/gf/pull/3673) - perf(util/gconv): improve performance for struct converting by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3412](https://redirect.github.com/gogf/gf/pull/3412) - perf(util/gconv): remove unnecessary logic for function doScanList by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3588](https://redirect.github.com/gogf/gf/pull/3588) - refactor(cmd/gf): delete binary file when command `gf run` ends process by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3628](https://redirect.github.com/gogf/gf/pull/3628) - refactor(cmd/gf): improve `gf gen ctrl` using `ast` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3616](https://redirect.github.com/gogf/gf/pull/3616) - refactor(cmd/gf): improve command `gf gen ctrl` using `ast` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3470](https://redirect.github.com/gogf/gf/pull/3470) - refactor(cmd/gf): improve command `gf gen ctrl` using `ast` for parsing `DstFolder` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3478](https://redirect.github.com/gogf/gf/pull/3478) - refactor(cmd/gf): refactor command `gf gen service` with `AST` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3488](https://redirect.github.com/gogf/gf/pull/3488) - refactor(cmd/gf): use automatic generating package names for go files of `dao/do/entity` instead of constant package names by [@Insua](https://redirect.github.com/Insua) in [https://github.com/gogf/gf/pull/3639](https://redirect.github.com/gogf/gf/pull/3639) - refactor(container/gring): mark deprecated, package `container/gring` will not be maintained in future by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3665](https://redirect.github.com/gogf/gf/pull/3665) - refactor(container/gtree): refactor code with gods package by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3595](https://redirect.github.com/gogf/gf/pull/3595) - refactor(contrib/registry/nacos): use official nacos sdk instead of the third-party nacos sdk by [@lingcoder](https://redirect.github.com/lingcoder) in [https://github.com/gogf/gf/pull/3745](https://redirect.github.com/gogf/gf/pull/3745) - refactor(contrib/trace/jaeger): remove trace jaeger, please use the OpenTelemetry SDKs(otlphttp\&otlpgrpc) by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3825](https://redirect.github.com/gogf/gf/pull/3825) - refactor(database/gdb): remove duplicated SQL records in tracing events by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3659](https://redirect.github.com/gogf/gf/pull/3659) - refactor(drivers/mssql): change driver from `github.com/denisenkom/go-mssqldb` to `github.com/microsoft/go-mssqldb` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3612](https://redirect.github.com/gogf/gf/pull/3612) - refactor(drivers/pgsql): pgsql returning id should use quotation marks,when primary key is capital by [@Insua](https://redirect.github.com/Insua) in [https://github.com/gogf/gf/pull/3638](https://redirect.github.com/gogf/gf/pull/3638) - refactor(encoding/gjson): change data parameter from type any to \[]byte by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3542](https://redirect.github.com/gogf/gf/pull/3542) - refactor(net/ghttp): enhance `ghttp.StartPProfServer` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3555](https://redirect.github.com/gogf/gf/pull/3555) - refactor(net/ghttp): update error message for duplicated routes registering by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3603](https://redirect.github.com/gogf/gf/pull/3603) - refactor(net/gudp): improve implements by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3491](https://redirect.github.com/gogf/gf/pull/3491) - refactor(util/gconv): refactor code unit testing by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3591](https://redirect.github.com/gogf/gf/pull/3591) - refractor(container/gtree): improve function order of `btree` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3656](https://redirect.github.com/gogf/gf/pull/3656) - refractor(container/gtree): refactor code with `gods` package for `rbtree` by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3655](https://redirect.github.com/gogf/gf/pull/3655) - refractor(container/gtree): refactor code with gods package for avltree by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3647](https://redirect.github.com/gogf/gf/pull/3647) ##### bug fix - fix(cmd/gf): `gf gen dao` should ignore `link` configuration from file as it is passed from arguments by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3531](https://redirect.github.com/gogf/gf/pull/3531) - fix(cmd/gf): creating logic.go empty folder when there is no correct logic service by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3815](https://redirect.github.com/gogf/gf/pull/3815) - fix(cmd/gf): fix command `gf gen dao` for fieldMapping feature by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3549](https://redirect.github.com/gogf/gf/pull/3549) - fix(cmd/gf): fix command `gf up` with `-u` option upgrading packages indirectly required would fail with higher version of go required by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3687](https://redirect.github.com/gogf/gf/pull/3687) - fix(cmd/gf): fix gen enums failed in go version v1.22.1 by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3565](https://redirect.github.com/gogf/gf/pull/3565) - fix(cmd/gf): fix pbentity generating fail in mono-repo by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3547](https://redirect.github.com/gogf/gf/pull/3547) - fix(cmd/gf): gen service error when there's version number at the end of package import path by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3836](https://redirect.github.com/gogf/gf/pull/3836) - fix(cmd/gf): go back current working directory after gf gen pb by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3895](https://redirect.github.com/gogf/gf/pull/3895) - fix(cmd/gf): missing configuration file support for cli command `pack/run/tpl/up` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3629](https://redirect.github.com/gogf/gf/pull/3629) - fix(cmd/gf): missing file closing when printing downloading percent of gf cli file for command `gf up` by [@testwill](https://redirect.github.com/testwill) in [https://github.com/gogf/gf/pull/3483](https://redirect.github.com/gogf/gf/pull/3483) - fix(cmd/gf): protoc file comments contain backticks and double quotes, resulting in syntax errors in the generated file of go by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3890](https://redirect.github.com/gogf/gf/pull/3890) - fix(cmd/gf): remove dir after process done if given build file parameter is not a file but a dir name by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3908](https://redirect.github.com/gogf/gf/pull/3908) - fix(cmd/gf): remove dm driver for command `gen dao` as it causes building failed for some platforms by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3667](https://redirect.github.com/gogf/gf/pull/3667) - fix(cmd/gf): table and field names converted to its lower case before CamelCase converting in command `gen dao` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3801](https://redirect.github.com/gogf/gf/pull/3801) - fix(container/gmap\&gset): deadlock when removing values during iterating by [@LonelySally](https://redirect.github.com/LonelySally) in [https://github.com/gogf/gf/pull/3572](https://redirect.github.com/gogf/gf/pull/3572) - fix(container/gtree): deadlock in Map/MapStrAny functions, comments update by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3840](https://redirect.github.com/gogf/gf/pull/3840) - fix(contrib/drivers/mssql): fix mssql paging sql generate statement error by [@freesme](https://redirect.github.com/freesme) in [https://github.com/gogf/gf/pull/3782](https://redirect.github.com/gogf/gf/pull/3782) - fix(contrib/drivers/pgsql): connection fails when postgres database password is empty by [@wlynxg](https://redirect.github.com/wlynxg) in [https://github.com/gogf/gf/pull/3900](https://redirect.github.com/gogf/gf/pull/3900) - fix(contrib/drivers/pgsql): fix insert error when data struct field has nil in PgSQL by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3679](https://redirect.github.com/gogf/gf/pull/3679) - fix(contrib/drivers/pgsql): invalid pgsql insert json type by [@Ghw2066](https://redirect.github.com/Ghw2066) in [https://github.com/gogf/gf/pull/3742](https://redirect.github.com/gogf/gf/pull/3742) - fix(contrib/drivers/sqlitecgo): support 32-bit architecture by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3480](https://redirect.github.com/gogf/gf/pull/3480) - fix(contrib/nosql/redis): missing err nil check in function `ScriptExists` by [@JimDevil](https://redirect.github.com/JimDevil) in [https://github.com/gogf/gf/pull/3713](https://redirect.github.com/gogf/gf/pull/3713) - fix(contrib/registry/file/v2): fix the panic caused by channel closing after `resolver closed` by [@zishang520](https://redirect.github.com/zishang520) in [https://github.com/gogf/gf/pull/3691](https://redirect.github.com/gogf/gf/pull/3691) - fix(contrib/registry/zookeeper): invalid searching prefix by [@cruelchen](https://redirect.github.com/cruelchen) in [https://github.com/gogf/gf/pull/3598](https://redirect.github.com/gogf/gf/pull/3598) - fix(database/gdb): FieldsEx feature conflicts with soft time feature in soft time fields updating by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3773](https://redirect.github.com/gogf/gf/pull/3773) - fix(database/gdb): confusing error message in Insert/Update operations when table not exist or the table contains no fields by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3553](https://redirect.github.com/gogf/gf/pull/3553) - fix(database/gdb): deadlock when orm operations performing in cache closure function from gcache by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3585](https://redirect.github.com/gogf/gf/pull/3585) - fix(database/gdb): error parsing database link without port number by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3772](https://redirect.github.com/gogf/gf/pull/3772) - fix(database/gdb): first column might be overwritten in internal context data in multiple goroutines querying by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3476](https://redirect.github.com/gogf/gf/pull/3476) - fix(database/gdb): ignore automatic handling for creating/updating time if it has been specified by [@jswxstw](https://redirect.github.com/jswxstw) in [https://github.com/gogf/gf/pull/3615](https://redirect.github.com/gogf/gf/pull/3615) - fix(database/gdb): invalid order by statement generated when multiple order inputs by [@LanceAdd](https://redirect.github.com/LanceAdd) in [https://github.com/gogf/gf/pull/3803](https://redirect.github.com/gogf/gf/pull/3803) - fix(database/gdb): recognize field type `tinyint(1)` to golang type `bool` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3921](https://redirect.github.com/gogf/gf/pull/3921) - fix(database/gdb): remove support of Array/Value/Count operations for result that has multiple record fields by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3839](https://redirect.github.com/gogf/gf/pull/3839) - fix(database/gdb): soft-time support fieldType:`LocalTypeUint64` in Insert/Update operations by [@muddydog](https://redirect.github.com/muddydog) in [https://github.com/gogf/gf/pull/3551](https://redirect.github.com/gogf/gf/pull/3551) - fix(database/gdb): unix socket connection support for mysql by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3872](https://redirect.github.com/gogf/gf/pull/3872) - fix(database/gdb): when constructing query param, `gdb.Row` value not directly write to Buffer by [@cyjaysong](https://redirect.github.com/cyjaysong) in [https://github.com/gogf/gf/pull/3718](https://redirect.github.com/gogf/gf/pull/3718) - fix(debug/gdebug): incorrect package name handling in function CallerPackage by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3771](https://redirect.github.com/gogf/gf/pull/3771) - fix(encoding/gxml): XML special character encoding error by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3740](https://redirect.github.com/gogf/gf/pull/3740) - fix(errors/gerror): `Is` performs the same as errors.Is from go stdlib by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3640](https://redirect.github.com/gogf/gf/pull/3640) - fix(net/gclient): Client Clone with allocated header/cookie by [@CharLemAznable](https://redirect.github.com/CharLemAznable) in [https://github.com/gogf/gf/pull/3902](https://redirect.github.com/gogf/gf/pull/3902) - fix(net/gclient): panic when containing `@file:` parameter value in json post request by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3775](https://redirect.github.com/gogf/gf/pull/3775) - fix(net/ghttp\&gclient,contrib/rpc/grpcx): remove request and response contents in opentelemetry tracing attributes by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3810](https://redirect.github.com/gogf/gf/pull/3810) - fix(net/ghttp): Content-Type for `jsonp` response from `application/json` to `application/javascript` by [@swift-fs](https://redirect.github.com/swift-fs) in [https://github.com/gogf/gf/pull/3651](https://redirect.github.com/gogf/gf/pull/3651) - fix(net/ghttp): fix args issue for `forkRestartProcess` in graceful restarting of ghttp.Server by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3661](https://redirect.github.com/gogf/gf/pull/3661) - fix(net/ghttp): server shutdown not graceful using admin api `/debug/admin/shutdown` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3777](https://redirect.github.com/gogf/gf/pull/3777) - fix(net/ghttp): skip common response body in common response handler for streaming content types by [@wwwfeng](https://redirect.github.com/wwwfeng) in [https://github.com/gogf/gf/pull/3762](https://redirect.github.com/gogf/gf/pull/3762) - fix(net/goai): cannot customize `OpenAPIv3` type for request parameters by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3845](https://redirect.github.com/gogf/gf/pull/3845) - fix(net/goai): change default value of RequestBody.Required from true to false, add required tag support for RequestBody by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3796](https://redirect.github.com/gogf/gf/pull/3796) - fix(net/goai): fix openapi miss `required` tag of `BizRequest` when set `CommonRequest` by [@niluan304](https://redirect.github.com/niluan304) in [https://github.com/gogf/gf/pull/3724](https://redirect.github.com/gogf/gf/pull/3724) - fix(net/goai): support multiple file upload parameters for `OpenAPIv3` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3662](https://redirect.github.com/gogf/gf/pull/3662) - fix(os/gcache): a little memory leak for removed timestamp key by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3779](https://redirect.github.com/gogf/gf/pull/3779) - fix(os/gcache): memory leak for LRU when adding operations more faster than deleting by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3823](https://redirect.github.com/gogf/gf/pull/3823) - fix(os/gcfg): SetPath failed when there's config.yaml in current working directory by [@ynwcel](https://redirect.github.com/ynwcel) in [https://github.com/gogf/gf/pull/3587](https://redirect.github.com/gogf/gf/pull/3587) - fix(os/gcfg): file searching always returning the configuration file of pwd by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3592](https://redirect.github.com/gogf/gf/pull/3592) - fix(os/gcmd): argument index calculating error in multilevel command by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3807](https://redirect.github.com/gogf/gf/pull/3807) - fix(os/gcmd): cannot retrieve all args if no subcommand defined for a root command by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3850](https://redirect.github.com/gogf/gf/pull/3850) - fix(os/glog): empty content in glog handler after structure logging feature supported by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3475](https://redirect.github.com/gogf/gf/pull/3475) - fix(os/gproc): missing arguments on Windows platform by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3482](https://redirect.github.com/gogf/gf/pull/3482) - fix(os/gres): add custom prefix `/` support for resource packing by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3621](https://redirect.github.com/gogf/gf/pull/3621) - fix(os/gtime): fix gtime.Value() when time only, add `time only` example by [@niluan304](https://redirect.github.com/niluan304) in [https://github.com/gogf/gf/pull/3714](https://redirect.github.com/gogf/gf/pull/3714) - fix(os/gtime): time zone issues by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3561](https://redirect.github.com/gogf/gf/pull/3561) - fix(os/gtime): unit testing case occasionally failed for package gtime by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3596](https://redirect.github.com/gogf/gf/pull/3596) - fix(util/gconv): [#3764](https://redirect.github.com/gogf/gf/issues/3764) fix bool converting issue by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3765](https://redirect.github.com/gogf/gf/pull/3765) - fix(util/gconv): assigned the same value to struct field and its same name field in embedded struct failed by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3905](https://redirect.github.com/gogf/gf/pull/3905) - fix(util/gconv): cached field indexes append issue caused incorrect field converting by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3790](https://redirect.github.com/gogf/gf/pull/3790) - fix(util/gconv): fix missing minus in string to int64 conversion by [@UncleChair](https://redirect.github.com/UncleChair) in [https://github.com/gogf/gf/pull/3920](https://redirect.github.com/gogf/gf/pull/3920) - fix(util/gconv): if the value of a string is `null`, the value of string is `nil` after the `string` is converted to `[]string` by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3468](https://redirect.github.com/gogf/gf/pull/3468) - fix(util/gconv): incorrect fuzzy converting logic by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3874](https://redirect.github.com/gogf/gf/pull/3874) - fix(util/gconv): map type name mismatch in switch case statement by [@wlynxg](https://redirect.github.com/wlynxg) in [https://github.com/gogf/gf/pull/3732](https://redirect.github.com/gogf/gf/pull/3732) - fix(util/gconv): one parameter to same tag in multiple struct attributes mapping failed by [@helloteemo](https://redirect.github.com/helloteemo) in [https://github.com/gogf/gf/pull/3822](https://redirect.github.com/gogf/gf/pull/3822) - fix(util/gconv): unstable converting when there is an external attribute with the same name as the internal structure by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3799](https://redirect.github.com/gogf/gf/pull/3799) - fix(util/gutil): invalid empty parameter value check for function `GetOrDefaultAny` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3844](https://redirect.github.com/gogf/gf/pull/3844) - fix(util/gvalid): retrive empty slice parameter in custom validation rule function failed by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3795](https://redirect.github.com/gogf/gf/pull/3795) - fix(util/gvalid): slice enums verification failed by [@xyqweb](https://redirect.github.com/xyqweb) in [https://github.com/gogf/gf/pull/3566](https://redirect.github.com/gogf/gf/pull/3566) - fix(utils/utils_str): recognize '+' as a valid numeric sign by [@wwwfeng](https://redirect.github.com/wwwfeng) in [https://github.com/gogf/gf/pull/3778](https://redirect.github.com/gogf/gf/pull/3778) ##### other - build(deps): bump google.golang.org/grpc from 1.51.0 to 1.56.3 in /contrib/config/polaris by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/gogf/gf/pull/3831](https://redirect.github.com/gogf/gf/pull/3831) - build(deps): bump google.golang.org/grpc from 1.51.0 to 1.56.3 in /contrib/registry/polaris by [@dependabot](https://redirect.github.com/dependabot) in [https://github.com/gogf/gf/pull/3828](https://redirect.github.com/gogf/gf/pull/3828) - build(go.mod): upgrade minimum required go version from 1.18 to 1.20 by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3688](https://redirect.github.com/gogf/gf/pull/3688) - build: bump google.golang.org/protobuf to v1.33.0 by [@fengshunli](https://redirect.github.com/fengshunli) in [https://github.com/gogf/gf/pull/3697](https://redirect.github.com/gogf/gf/pull/3697) - build: downgrade fsnotify from v1.8.0 to v1.7.0 to solve data race error by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3916](https://redirect.github.com/gogf/gf/pull/3916) - build: upgrade fsnotify from v1.7.0 to v1.8.0 to solve occasional ci failure by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3910](https://redirect.github.com/gogf/gf/pull/3910) - chore(.github/template): update document for github pull requests by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3666](https://redirect.github.com/gogf/gf/pull/3666) - chore(contrib/config/polaris): upgrade dependent polaris library version to v1.5.8 and go version to v1.21 by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3827](https://redirect.github.com/gogf/gf/pull/3827) - chore(contrib/registry/polaris): upgrade dependent polaris library version to v1.5.8 and go version to v1.21 by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3826](https://redirect.github.com/gogf/gf/pull/3826) - chore(errors/gerror): add examples by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3927](https://redirect.github.com/gogf/gf/pull/3927) - chore(example): fix file name `example/pack/packed/paked.go` → `example/pack/packed/packed.go` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3479](https://redirect.github.com/gogf/gf/pull/3479) - chore(example): password encrypt-decrypt for database using custom implement driver by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3610](https://redirect.github.com/gogf/gf/pull/3610) - chore(go.mod): upgrade version of dependencies by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3494](https://redirect.github.com/gogf/gf/pull/3494) - chore(go.mod): upgrade version of dependencies for `cmd/gf` and `contrib` packages by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3526](https://redirect.github.com/gogf/gf/pull/3526) - chore: README.md updates by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3912](https://redirect.github.com/gogf/gf/pull/3912) - chore: fix function names in comment by [@findnature](https://redirect.github.com/findnature) in [https://github.com/gogf/gf/pull/3536](https://redirect.github.com/gogf/gf/pull/3536) - chore: fix function names in comments for package `otelmetric` by [@writegr](https://redirect.github.com/writegr) in [https://github.com/gogf/gf/pull/3493](https://redirect.github.com/gogf/gf/pull/3493) - chore: issue templates update for github by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3544](https://redirect.github.com/gogf/gf/pull/3544) - chore: issues and pull requests template update for github by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3533](https://redirect.github.com/gogf/gf/pull/3533) - chore: readme updates by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3919](https://redirect.github.com/gogf/gf/pull/3919) - chore: update README.MD by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3911](https://redirect.github.com/gogf/gf/pull/3911) - chore: update the contributors in README.MD by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3907](https://redirect.github.com/gogf/gf/pull/3907) - ci(.github/workflows): fix warning info from node16 on timezone setting by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3614](https://redirect.github.com/gogf/gf/pull/3614) - ci(.github/workflows): remove code coverage report for folder `example` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3608](https://redirect.github.com/gogf/gf/pull/3608) - ci: add Scorecard workflow by [@fengshunli](https://redirect.github.com/fengshunli) in [https://github.com/gogf/gf/pull/3702](https://redirect.github.com/gogf/gf/pull/3702) - ci: add go version 1.23 support by [@houseme](https://redirect.github.com/houseme) in [https://github.com/gogf/gf/pull/3733](https://redirect.github.com/gogf/gf/pull/3733) - ci: fix code coverage not sync to CodeCov by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3570](https://redirect.github.com/gogf/gf/pull/3570) - ci: fix mssql docker service failed in ci by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3792](https://redirect.github.com/gogf/gf/pull/3792) - ci: fix mssql docker service starting failed by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3824](https://redirect.github.com/gogf/gf/pull/3824) - docs(contrib/drivers): add `README.zh_CN.MD` by [@hailaz](https://redirect.github.com/hailaz) in [https://github.com/gogf/gf/pull/3604](https://redirect.github.com/gogf/gf/pull/3604) - style(gtest/test): improve code by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3891](https://redirect.github.com/gogf/gf/pull/3891) - test(cmd/gf): `gf gen ctrl` with `-merge` option by [@wln32](https://redirect.github.com/wln32) in [https://github.com/gogf/gf/pull/3490](https://redirect.github.com/gogf/gf/pull/3490) - test(cmd/gf): add unit testing case generating dao/do/entity files for sqlite in command `gen dao` by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3808](https://redirect.github.com/gogf/gf/pull/3808) - test(cmd/gf): add unit testing case of commented api definitions generating for command `gf gen ctrl` by [@zcyc](https://redirect.github.com/zcyc) in [https://github.com/gogf/gf/pull/3575](https://redirect.github.com/gogf/gf/pull/3575) - test(cmd/gf): fix unit testing cases for compatibility with windows by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3532](https://redirect.github.com/gogf/gf/pull/3532) - test(cmd/gf,conbrib/drivers): unit testing cases update by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3453](https://redirect.github.com/gogf/gf/pull/3453) - test(drivers/mysql): loose unit testing for transaction by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3819](https://redirect.github.com/gogf/gf/pull/3819) - test(drivers/mysql): use asserts function to replace if statement by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3849](https://redirect.github.com/gogf/gf/pull/3849) - test(os/gcache): fix unit testing occasionally failed due to too short expration duration set by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3842](https://redirect.github.com/gogf/gf/pull/3842) - test(os/gproc): fix uint testing case for signal feature of package gproc occasionally failed by [@gqcn](https://redirect.github.com/gqcn) in [https://github.com/gogf/gf/pull/3529](https://redirect.github.com/gogf/gf/pull/3529) - test(test/gtest): add support for string type in AssertIN and AssertNI by [@oldme-git](https://redirect.github.com/oldme-git) in [https://github.com/gogf/gf/pull/3537](https://redirect.github.com/gogf/gf/pull/3537) #### New Contributors - [@phuonganhniie](https://redirect.github.com/phuonganhniie) made their first contribution in [https://github.com/gogf/gf/pull/3451](https://redirect.github.com/gogf/gf/pull/3451) - [@cococolanosugar](https://redirect.github.com/cococolanosugar) made their first contribution in [https://github.com/gogf/gf/pull/3455](https://redirect.github.com/gogf/gf/pull/3455) - [@writegr](https://redirect.github.com/writegr) made their first contribution in [https://github.com/gogf/gf/pull/3493](https://redirect.github.com/gogf/gf/pull/3493) - [@findnature](https://redirect.github.com/findnature) made their first contribution in [https://github.com/gogf/gf/pull/3536](https://redirect.github.com/gogf/gf/pull/3536) - [@cyjaysong](https://redirect.github.com/cyjaysong) made their first contribution in [https://github.com/gogf/gf/pull/3498](https://redirect.github.com/gogf/gf/pull/3498) - [@muddydog](https://redirect.github.com/muddydog) made their first contribution in [https://github.com/gogf/gf/pull/3551](https://redirect.github.com/gogf/gf/pull/3551) - [@ynwcel](https://redirect.github.com/ynwcel) made their first contribution in [https://github.com/gogf/gf/pull/3587](https://redirect.github.com/gogf/gf/pull/3587) - [@yincongcyincong](https://redirect.github.com/yincongcyincong) made their first contribution in [https://github.com/gogf/gf/pull/3583](https://redirect.github.com/gogf/gf/pull/3583) - [@cruelchen](https://redirect.github.com/cruelchen) made their first contribution in [https://github.com/gogf/gf/pull/3598](https://redirect.github.com/gogf/gf/pull/3598) - [@Insua](https://redirect.github.com/Insua) made their first contribution in [https://github.com/gogf/gf/pull/3606](https://redirect.github.com/gogf/gf/pull/3606) - [@swift-fs](https://redirect.github.com/swift-fs) made their first contribution in [https://github.com/gogf/gf/pull/3622](https://redirect.github.com/gogf/gf/pull/3622) - [@vector233](https://redirect.github.com/vector233) made their first contribution in [https://github.com/gogf/gf/pull/3625](https://redirect.github.com/gogf/gf/pull/3625) - [@fengshunli](https://redirect.github.com/fengshunli) made their first contribution in [https://github.com/gogf/gf/pull/3702](https://redirect.github.com/gogf/gf/pull/3702) - [@JimDevil](https://redirect.github.com/JimDevil) made their first contribution in [https://github.com/gogf/gf/pull/3713](https://redirect.github.com/gogf/gf/pull/3713) - [@zishang520](https://redirect.github.com/zishang520) made their first contribution in [https://github.com/gogf/gf/pull/3691](https://redirect.github.com/gogf/gf/pull/3691) - [@Ghw2066](https://redirect.github.com/Ghw2066) made their first contribution in [https://github.com/gogf/gf/pull/3742](https://redirect.github.com/gogf/gf/pull/3742) - [@wwwfeng](https://redirect.github.com/wwwfeng) made their first contribution in [https://github.com/gogf/gf/pull/3762](https://redirect.github.com/gogf/gf/pull/3762) - [@LanceAdd](https://redirect.github.com/LanceAdd) made their first contribution in [https://github.com/gogf/gf/pull/3803](https://redirect.github.com/gogf/gf/pull/3803) - [@freesme](https://redirect.github.com/freesme) made their first contribution in [https://github.com/gogf/gf/pull/3782](https://redirect.github.com/gogf/gf/pull/3782) - [@helloteemo](https://redirect.github.com/helloteemo) made their first contribution in [https://github.com/gogf/gf/pull/3822](https://redirect.github.com/gogf/gf/pull/3822) - [@UncleChair](https://redirect.github.com/UncleChair) made their first contribution in [https://github.com/gogf/gf/pull/3859](https://redirect.github.com/gogf/gf/pull/3859) - [@CharLemAznable](https://redirect.github.com/CharLemAznable) made their first contribution in [https://github.com/gogf/gf/pull/3902](https://redirect.github.com/gogf/gf/pull/3902) **Full Changelog**: https://github.com/gogf/gf/compare/v2.7.0...v2.8.0Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.