Repository: etcd-io/etcd (go)

Issue:
[CHANGELOG-3.6] List all the removed flags
### What would you like to be added?

We need to update changelog-3.6 to list all the flags (i.e. `--enable-v2`), which are available in release-3.5, but already removed in release-3.6.

We also need to clearly document this as tracked in https://github.com/etcd-io/website/issues/926 (specifically the upgrade checklist https://github.com/etcd-io/website/issues/961)


cc. @ivanvc @jmhbnz 

### Why is this needed?

To guarantee a smooth upgrade from 3.5 to 3.6.

Pull request:
listed removed flags in v3.6.0-rc.3
listed the removed flags under the v3.6.0-rc.4 (2025-04-15) release

Fixes #19492 


Patch:
diff --git a/CHANGELOG/CHANGELOG-3.6.md b/CHANGELOG/CHANGELOG-3.6.md
index be580fdea..c038f0f3e 100644
--- a/CHANGELOG/CHANGELOG-3.6.md
+++ b/CHANGELOG/CHANGELOG-3.6.md
@@ -97,6 +97,19 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.5.0...v3.6.0).
 - `etcdctl` will sleep(2s) in case of range delete without `--range` flag. See [pull/13747](https://github.com/etcd-io/etcd/pull/13747)
 - Applications which depend on etcd v3.6 packages must be built with go version >= v1.18.
 
+#### Flags Removed
+
+- The following flags have been removed:
+
+  - `--enable-v2`
+  - `--experimental-enable-v2v3`
+  - `--proxy`
+  - `--proxy-failure-wait`
+  - `--proxy-refresh-interval`
+  - `--proxy-dial-timeout`
+  - `--proxy-write-timeout`
+  - `--proxy-read-timeout`
+
 ### Deprecations
 
 - Deprecated [V2 discovery](https://etcd.io/docs/v3.5/dev-internal/discovery_protocol/).
diff --git a/client/v3/client.go b/client/v3/client.go
index 998f5ae03..30269cfac 100644
--- a/client/v3/client.go
+++ b/client/v3/client.go
@@ -43,7 +43,6 @@ import (
 var (
 	ErrNoAvailableEndpoints = errors.New("etcdclient: no available endpoints")
 	ErrOldCluster           = errors.New("etcdclient: old cluster version")
-	ErrMutuallyExclusiveCfg = errors.New("Username/Password and Token configurations are mutually exclusive")
 )
 
 // Client provides and manages an etcd v3 client session.
@@ -386,7 +385,7 @@ func newClient(cfg *Config) (*Client, error) {
 	}
 
 	if cfg.Token != "" && (cfg.Username != "" || cfg.Password != "") {
-		return nil, ErrMutuallyExclusiveCfg
+		return nil, errors.New("Username/Password and Token configurations are mutually exclusive")
 	}
 
 	// use a temporary skeleton client to bootstrap first connection


Test patch:
diff --git a/client/v3/client_test.go b/client/v3/client_test.go
index 474a48203..c26c14097 100644
--- a/client/v3/client_test.go
+++ b/client/v3/client_test.go
@@ -383,7 +383,7 @@ func TestNewOnlyJWTExclusivity(t *testing.T) {
 		Username:    "user",
 		Password:    "pass",
 	})
-	require.ErrorIs(t, ErrMutuallyExclusiveCfg, err)
+	require.Errorf(t, err, "Username/Password and Token configurations are mutually exclusive")
 }
 
 func TestSyncFiltersMembers(t *testing.T) {
diff --git a/tests/antithesis/test-template/robustness/main.go b/tests/antithesis/test-template/robustness/main.go
index 96ebdf175..7ac1ad4b6 100644
--- a/tests/antithesis/test-template/robustness/main.go
+++ b/tests/antithesis/test-template/robustness/main.go
@@ -87,7 +87,7 @@ func main() {
 
 	ctx := context.Background()
 	baseTime := time.Now()
-	duration := time.Duration(robustnessrand.RandRange(5, 15) * int64(time.Second))
+	duration := time.Duration(robustnessrand.RandRange(5, 60) * int64(time.Second))
 	testRobustness(ctx, hosts, persistedRequestdirs, reportPath, baseTime, duration)
 }
 
@@ -96,7 +96,7 @@ func testRobustness(ctx context.Context, hosts, persistedRequestdirs []string, r
 	if err != nil {
 		panic(err)
 	}
-	lg.Info("Start traffic generation", zap.Duration("duration", duration))
+	lg.Info("Start traffic generation")
 	reports := runTraffic(ctx, lg, hosts, baseTime, duration)
 	lg.Info("Completed traffic generation")