2
0
mirror of https://github.com/soheilhy/cmux.git synced 2026-08-07 18:05:07 +08:00

Modernize for current Go toolchains

The library already compiled and passed tests, but tooling and
dependencies were stale. This brings everything up to current standards
without changing public behavior.

Library (go 1.23.0):
- cmux_test.go: fix 8 `go vet` failures by sending writer-goroutine
  errors to the existing errCh (now buffered) instead of t.Fatal;
  ioutil.ReadAll -> io.ReadAll
- matchers.go: io/ioutil -> io (io.Discard); gofmt -s doc comment
- go.mod: go 1.11 -> 1.23.0; golang.org/x/net -> v0.42.0 (newest
  release that still permits a 1.23 directive)

Example submodule:
- golang.org/x/net/context -> stdlib context
- grpc v1.27.0 -> v1.80, modern protobuf; helloworld now comes from
  the separate google.golang.org/grpc/examples module (requires go 1.25,
  isolated to this demo-only module)

CI:
- remove ancient .travis.yml (Go 1.6-1.8)
- add .github/workflows/ci.yml: gofmt/vet/build/test -race for the
  library (Go 1.23 + 1.24 matrix) and the example

Temporary() methods and TLS version defaults are intentionally
unchanged: net.Error still requires Temporary(), and the TLS defaults
are public-API behavior.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Soheil Hassas Yeganeh
2026-06-07 23:26:12 -04:00
parent 5ec6847320
commit 7b740c1fa6
9 changed files with 138 additions and 153 deletions

6
go.mod
View File

@@ -1,5 +1,7 @@
module github.com/soheilhy/cmux
go 1.11
go 1.23.0
require golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb
require golang.org/x/net v0.42.0
require golang.org/x/text v0.27.0 // indirect