This is an automated email from the ASF dual-hosted git repository.

alexstocks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git


The following commit(s) were added to refs/heads/develop by this push:
     new ffc02cad8 chore(release): prepare release v3.3.1 (#3112)
ffc02cad8 is described below

commit ffc02cad8ecaa4f26314e57b390d7a3fbe9840ed
Author: marsevilspirit <[email protected]>
AuthorDate: Sat Dec 20 14:28:36 2025 +0800

    chore(release): prepare release v3.3.1 (#3112)
---
 CHANGELOG.md               | 68 ++++++++++++++++++++++++++++++++++++++++++++++
 client/options.go          | 19 +++----------
 client/options_test.go     | 38 --------------------------
 common/constant/version.go |  6 ++--
 protocol/options.go        | 28 ++-----------------
 5 files changed, 77 insertions(+), 82 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d9761ba4f..54ef175ae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,74 @@
 
 # Release Notes
 ---
+
+## 3.3.1
+## Summary
+
+**v3.3.1** introduces significant enhancements to the **Triple protocol** 
(including experimental HTTP/3 support), stability improvements for 
**Configuration & Registry centers** (Nacos, Apollo, Zookeeper), and major 
**refactoring and performance optimizations** of the core modules. This release 
also includes adaptation for Go 1.24.
+
+### 🚀 New Features
+
+#### Triple Protocol Enhancements
+* **HTTP/3 Support**: Added experimental support for HTTP/3 in the Triple 
protocol (#2916).
+* **Dual Protocol Concurrency**: Supported starting both HTTP/3 and HTTP/2 
servers simultaneously (#2972).
+* **Generic Call**: Added support for generic calls in the new Triple protocol 
(#2818).
+* **Non-IDL Mode**: Supported Non-IDL mode for the new Triple implementation 
(#2858).
+* **TLS Updates**: Implemented new Triple TLS configuration (#2852) and 
redesigned the TLS API (#2891).
+* **OpenAPI**: Added tooling support to generate OpenAPI documentation for the 
Triple protocol (#2951).
+
+#### Configuration & Registry
+* **Apollo Support**: Added support for the Apollo configuration center 
(#2857).
+* **Nacos Improvements**:
+    * Fixed an issue where Nacos weights did not work (#2937).
+    * Resolved Nacos instance overwrite issues (#2882).
+    * Fixed an issue where new services were not detected during subscription 
(#2859).
+* **Zookeeper Improvements**: Optimized the distinction between empty and 
non-existent nodes, and downgraded empty node error logs to Warn level (#3059).
+* **Hot Loading**: Implemented configuration hot-loading capability (#2992).
+
+#### Observability
+* **OpenTelemetry**: Upgraded OTel dependencies to v1.21.0 (#2971), adjusted 
Trace Scope names to align with OTel specs (#3041), and added an `Insecure` 
option to tracing configuration (#3028).
+* **Service Logging**: Implemented logging for the service registration 
process (#3043).
+
+#### Other Features
+* **Go Version**: Updated Go version support to 1.24 and removed deprecated 
`rand.seed` usage (#3046).
+* **Router API**: Exposed Router-related APIs (#3066) and allowed 
group/version wildcards for exact interface matches (#3080).
+* **Tooling**: Added an `imports formatter` tool (#3019) and integrated it 
into CI checks.
+
+### 💡 Refactoring & Improvements
+
+* **Config Decoupling**: Massive code refactoring moving dependencies from the 
`config` package to the `global` package or protocol-specific configurations to 
resolve circular dependencies (affecting registry, filter, tls, 
graceful_shutdown, etc.).
+* **Logger Refactoring**: Refactored the logger module (#2838) and added 
comprehensive unit tests (#2993).
+* **Makefile**: Completely rewrote the Makefile to improve the build 
experience and standardization (#2975).
+* **CAS Optimization**: Replaced deprecated CAS operations with 
`CompareAndSwap` (#2962).
+* **Graceful Shutdown**: Added timeout control for Triple protocol graceful 
shutdown (#2943) and utilized `errgroup` for handling stop errors (#2973).
+* **Memory Optimization**: Resolved memory leaks in Goroutine management, file 
handles, and extension caches (#3023).
+
+### 🐛 Bug Fixes
+
+* **Stability**:
+    * Replaced panic with error handling for cluster extension failures 
(#3021, #3064).
+    * Fixed logical dead loops (#2879).
+    * Fixed URL parameter loss in the `SetParams` method (#3022).
+* **Triple/Communication**:
+    * Fixed issues where clients failed to receive attachments from server 
responses (#2928, #2854).
+    * Fixed Context Attachment error handling in Triple protocol streaming 
calls (#2810).
+    * Fixed read prefix EOF errors (#2912).
+* **Logging & Misc**:
+    * Fixed incorrect log rotation paths to prevent file loss (#3014).
+    * Changed log level from Error to Warn when application parameters are 
empty in Tag Router (#3035).
+    * Fixed latency issues in Zookeeper client node perception (#2930).
+
+### 📚 Documentation & CI
+
+* **CI Enhancements**: Added `make check-fmt` (#3055), License header checks 
(#2957), and import-formatter checks (#2961).
+* **Docs Updates**: Updated README contact info, fixed invalid links in 
README_CN, and updated `protoc-gen-go-triple` documentation.
+* **SonarQube**: Fixed and suppressed various SonarQube/SonarCloud false 
positives and AI bot warnings.
+
+**Contributors:**
+Thanks to the following contributors for making this release possible:
+@1kasa, @97ZQ, @ALSoryu, @Akashisang, @Alanxtl, @AlexStocks, @CAICAIIs, 
@Flying-Tom, @FoghostCn, @HSenCode, @KamToHung, @MinatoWu, @MrSibe, 
@Nexusrex18, @No-SilverBullet, @Rinai-R, @Similarityoung, @Snow-kal, @WangzJi, 
@Whitea029, @ayamzh, @baerwang, @dongjiang1989, @evanzhang87, @flypiggyyoyoyo, 
@hs80, @liushiqi1001, @manzhizhen, @marsevilspirit, @nanjiek, @phpcyy, 
@sebbASF, @wqyenjoy, @xuzhijvn, @yumosx, @yxrxy, @zbchi, and @ziyyun.
+
 ## 3.3.0
 ## Summary
 
diff --git a/client/options.go b/client/options.go
index 60a4f6c3e..c1b9388de 100644
--- a/client/options.go
+++ b/client/options.go
@@ -765,27 +765,16 @@ func WithClientClusterStrategy(strategy string) 
ClientOption {
 }
 
 // Deprecated:use triple.WithKeepAliveInterval()
-// TODO: remove KeepAliveInterval and KeepAliveInterval in version 4.0.0
-//
-// If there is no other traffic on the connection, the ping will be sent, only 
works for 'tri' protocol with http2.
-// A minimum value of 10s will be used instead to invoid 'too many pings'.If 
not set, default value is 10s.
 func WithKeepAliveInterval(keepAliveInterval time.Duration) ClientOption {
-       if keepAliveInterval < constant.MinKeepAliveInterval {
-               keepAliveInterval = constant.MinKeepAliveInterval
-       }
-       return func(opts *ClientOptions) {
-               opts.overallReference.KeepAliveInterval = 
keepAliveInterval.String()
+       return func(_ *ClientOptions) {
+               panic("use triple.WithKeepAliveInterval()")
        }
 }
 
 // Deprecated:use triple.WithKeepAliveTimeout()
-// TODO: remove KeepAliveInterval and KeepAliveInterval in version 4.0.0
-//
-// WithKeepAliveTimeout is timeout after which the connection will be closed, 
only works for 'tri' protocol with http2
-// If not set, default value is 20s.
 func WithKeepAliveTimeout(keepAliveTimeout time.Duration) ClientOption {
-       return func(opts *ClientOptions) {
-               opts.overallReference.KeepAliveTimeout = 
keepAliveTimeout.String()
+       return func(_ *ClientOptions) {
+               panic("use triple.WithKeepAliveTimeout()")
        }
 }
 
diff --git a/client/options_test.go b/client/options_test.go
index 8b1a52cb0..ccb9cb8a4 100644
--- a/client/options_test.go
+++ b/client/options_test.go
@@ -1195,44 +1195,6 @@ func TestWithMeshProviderPort(t *testing.T) {
        processReferenceOptionsInitCases(t, cases)
 }
 
-func TestWithKeepAliveConfig(t *testing.T) {
-       cases := []newClientCase{
-               {
-                       desc: "config keepalive interval with less than 10s",
-                       opts: []ClientOption{
-                               WithKeepAliveInterval(time.Second * 5), //less 
than 10s(min ping interval),should be set to 10s
-                       },
-                       verify: func(t *testing.T, cli *Client, err error) {
-                               assert.Nil(t, err)
-                               assert.Equal(t, "10s", 
cli.cliOpts.overallReference.KeepAliveInterval)
-                       },
-               },
-               {
-                       desc: "config keepalive interval with larger than 10s",
-                       opts: []ClientOption{
-                               WithKeepAliveInterval(time.Second * 20),
-                       },
-                       verify: func(t *testing.T, cli *Client, err error) {
-                               assert.Nil(t, err)
-                               assert.Equal(t, "20s", 
cli.cliOpts.overallReference.KeepAliveInterval)
-                       },
-               },
-               {
-                       desc: "config keepalive interval and timeout",
-                       opts: []ClientOption{
-                               WithKeepAliveInterval(time.Second * 20),
-                               WithKeepAliveTimeout(time.Second * 30),
-                       },
-                       verify: func(t *testing.T, cli *Client, err error) {
-                               assert.Nil(t, err)
-                               assert.Equal(t, "20s", 
cli.cliOpts.overallReference.KeepAliveInterval)
-                               assert.Equal(t, "30s", 
cli.cliOpts.overallReference.KeepAliveTimeout)
-                       },
-               },
-       }
-       processNewClientCases(t, cases)
-}
-
 func TestInitWithConsumer(t *testing.T) {
        trueVal := true
        cliOpts := &ClientOptions{
diff --git a/common/constant/version.go b/common/constant/version.go
index 6ce664d8d..5276c635c 100644
--- a/common/constant/version.go
+++ b/common/constant/version.go
@@ -18,8 +18,8 @@
 package constant
 
 const (
-       Version      = "3.2.0"     // apache/dubbo-go version
-       Name         = "dubbogo"   // module name
-       DATE         = "2024/1/10" // release date
+       Version      = "3.3.1"      // apache/dubbo-go version
+       Name         = "dubbogo"    // module name
+       DATE         = "2025/12/14" // release date
        RouteVersion = "v3.1"
 )
diff --git a/protocol/options.go b/protocol/options.go
index 28629f7c0..11bdc368f 100644
--- a/protocol/options.go
+++ b/protocol/options.go
@@ -279,36 +279,12 @@ func WithParams(params any) ServerOption {
        return &paramsOption{params}
 }
 
-// TODO: remove MaxServerSendMsgSize and MaxServerRecvMsgSize when version 
4.0.0
-type maxServerSendMsgSizeOption struct {
-       MaxServerSendMsgSize string
-}
-
-// TODO: remove MaxServerSendMsgSize and MaxServerRecvMsgSize when version 
4.0.0
-func (o *maxServerSendMsgSizeOption) applyToServer(config *ServerOptions) {
-       config.Protocol.MaxServerSendMsgSize = o.MaxServerSendMsgSize
-}
-
-// TODO: remove MaxServerSendMsgSize and MaxServerRecvMsgSize when version 
4.0.0
-//
 // Deprecated:use triple.WithMaxServerSendMsgSize instead.
 func WithMaxServerSendMsgSize(size string) ServerOption {
-       return &maxServerSendMsgSizeOption{size}
-}
-
-// TODO: remove MaxServerSendMsgSize and MaxServerRecvMsgSize when version 
4.0.0
-type maxServerRecvMsgSize struct {
-       MaxServerRecvMsgSize string
-}
-
-// TODO: remove MaxServerSendMsgSize and MaxServerRecvMsgSize when version 
4.0.0
-func (o *maxServerRecvMsgSize) applyToServer(config *ServerOptions) {
-       config.Protocol.MaxServerRecvMsgSize = o.MaxServerRecvMsgSize
+       panic("use triple.WithMaxServerSendMsgSize()")
 }
 
-// TODO: remove MaxServerSendMsgSize and MaxServerRecvMsgSize when version 
4.0.0
-//
 // Deprecated: use triple.WithMaxServerRecvMsgSize instead.
 func WithMaxServerRecvMsgSize(size string) ServerOption {
-       return &maxServerRecvMsgSize{size}
+       panic("use triple.WithMaxServerRecvMsgSize()")
 }

Reply via email to