File tree Expand file tree Collapse file tree 5 files changed +39
-9
lines changed
Expand file tree Collapse file tree 5 files changed +39
-9
lines changed Original file line number Diff line number Diff line change 2323 os : [ubuntu-latest, macos-latest, windows-latest]
2424 # Each major Go release is supported until there are two newer major releases. https://golang.org/doc/devel/release.html#policy
2525 # Echo tests with last four major releases (unless there are pressing vulnerabilities)
26- # As we depend on `golang.org/x/` libraries which only support last 2 Go releases we could have situations when
27- # we derive from last four major releases promise.
26+ # As we depend on `golang.org/x/` libraries which only support the last 2 Go releases, we could have situations when
27+ # we derive from the last four major releases promise.
2828 go : ["1.25"]
2929 name : ${{ matrix.os }} @ Go ${{ matrix.go }}
3030 runs-on : ${{ matrix.os }}
Original file line number Diff line number Diff line change @@ -6,7 +6,15 @@ Generated: 2026-01-01
66
77---
88
9- ## Executive Summary
9+ ## Executive Summary (by authors)
10+
11+ Echo ` v5 ` is maintenance release with ** major breaking changes**
12+ - ` Context ` is now struct instead of interface and we can add method to it in the future in minor versions.
13+ - Adds new ` Router ` interface for possible new routing implementations.
14+ - Drops old logging interface and uses moderm ` log/slog ` instead.
15+ - Rearranges alot of methods/function signatures to make them more consistent.
16+
17+ ## Executive Summary (by LLMs)
1018
1119Echo v5 represents a ** major breaking release** with significant architectural changes focused on:
1220- ** Updated generic helpers** to take ` *Context ` and rename form helpers to ` FormValue* `
@@ -1014,6 +1022,18 @@ func NewResponse(w http.ResponseWriter, logger *slog.Logger) *Response
10141022
10151023## Migration Guide Summary
10161024
1025+ If you are using Linux you can migrate easier parts like that:
1026+ ```bash
1027+ find . -type f -name "*.go" -exec sed -i 's/ echo.Context/ *echo.Context/g' {} +
1028+ find . -type f -name " *.go" -exec sed -i ' s/echo\/ v4/echo\/ v5/g' {} +
1029+ ```
1030+ or in your favorite IDE
1031+
1032+ Replace all:
1033+ 1 . ` echo.Context ` -> ` *echo.Context `
1034+ 2 . ` echo/v4 ` -> ` echo/v5 `
1035+
1036+
10171037### 1. Update All Handler Signatures
10181038
10191039``` go
Original file line number Diff line number Diff line change @@ -48,6 +48,15 @@ Click [here](https://github.com/sponsors/labstack) for more information on spons
4848
4949## [ Guide] ( https://echo.labstack.com/guide )
5050
51+ ### Supported Echo versions
52+
53+ - Latest major version of Echo is ` v5 ` as of 2026-01-18.
54+ - Until 2026-03-31, any critical issues requiring breaking API changes will be addressed, even if this violates semantic versioning.
55+ - See [ API_CHANGES_V5.md] ( ./API_CHANGES_V5.md ) for public API changes between ` v4 ` and ` v5 ` , notes on upgrading.
56+ - If you are using Echo in a production environment, it is recommended to wait until after 2026-03-31 before upgrading.
57+ - Echo ` v4 ` is supported with ** security*** updates and ** bug** fixes until ** 2026-12-31**
58+
59+
5160### Installation
5261
5362``` sh
@@ -56,6 +65,7 @@ go get github.com/labstack/echo/v5
5665```
5766Latest version of Echo supports last four Go major [ releases] ( https://go.dev/doc/devel/release ) and might work with older versions.
5867
68+
5969### Example
6070
6171``` go
Original file line number Diff line number Diff line change @@ -4,13 +4,13 @@ go 1.25.0
44
55require (
66 github.com/stretchr/testify v1.11.1
7- golang.org/x/net v0.48 .0
7+ golang.org/x/net v0.49 .0
88 golang.org/x/time v0.14.0
99)
1010
1111require (
1212 github.com/davecgh/go-spew v1.1.1 // indirect
1313 github.com/pmezard/go-difflib v1.0.0 // indirect
14- golang.org/x/text v0.32 .0 // indirect
14+ golang.org/x/text v0.33 .0 // indirect
1515 gopkg.in/yaml.v3 v3.0.1 // indirect
1616)
Original file line number Diff line number Diff line change @@ -4,10 +4,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
44github.com/pmezard/go-difflib v1.0.0 /go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4 =
55github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U =
66github.com/stretchr/testify v1.11.1 /go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U =
7- golang.org/x/net v0.48 .0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU =
8- golang.org/x/net v0.48 .0 /go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY =
9- golang.org/x/text v0.32 .0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU =
10- golang.org/x/text v0.32 .0 /go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY =
7+ golang.org/x/net v0.49 .0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o =
8+ golang.org/x/net v0.49 .0 /go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8 =
9+ golang.org/x/text v0.33 .0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE =
10+ golang.org/x/text v0.33 .0 /go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8 =
1111golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI =
1212golang.org/x/time v0.14.0 /go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4 =
1313gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM =
You can’t perform that action at this time.
0 commit comments