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 ¶msOption{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()")
}