Skip to content

Commit 078ac4e

Browse files
authored
Merge branch 'main' into julien/fix-polling-fallback
2 parents 3d11e9a + ec9f9bf commit 078ac4e

101 files changed

Lines changed: 2858 additions & 433 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/proto.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,17 @@ jobs:
1515
- uses: bufbuild/buf-action@v1
1616
with:
1717
format: false
18+
breaking: false
19+
- name: Check protobuf breaking changes
20+
env:
21+
BASE_SHA: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha || github.event.before }}
22+
run: |
23+
if [ -z "$BASE_SHA" ] || [[ "$BASE_SHA" =~ ^0+$ ]]; then
24+
echo "No base SHA available for buf breaking check"
25+
exit 0
26+
fi
27+
28+
buf breaking proto \
29+
--limit-to-input-files \
30+
--error-format github-actions \
31+
--against "https://github.com/${{ github.repository }}.git#format=git,commit=${BASE_SHA}"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Check out our tutorials on our [website][docs].
5858

5959
## Onboarding with Claude Code
6060

61-
Use [Claude Code](https://claude.ai/code) to explore the codebase:
61+
Use [Claude Code](https://code.claude.com/docs/en/overview) to explore the codebase:
6262

6363
```bash
6464
cd ev-node && claude

apps/evm/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.25.8
44

55
replace (
66
github.com/evstack/ev-node => ../../
7+
github.com/evstack/ev-node/core => ../../core
78
github.com/evstack/ev-node/execution/evm => ../../execution/evm
89
)
910

apps/evm/go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,6 @@ github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab h1:rvv6MJ
228228
github.com/ethereum/go-bigmodexpfix v0.0.0-20250911101455-f9e208c548ab/go.mod h1:IuLm4IsPipXKF7CW5Lzf68PIbZ5yl7FFd74l/E0o9A8=
229229
github.com/ethereum/go-ethereum v1.17.3 h1:Ev/sQHH+UdKZHWjuVzhu2pxhi/sXaPZl23Q+Q5LDd4Q=
230230
github.com/ethereum/go-ethereum v1.17.3/go.mod h1:f2EhRwqewIZkGoQekywI2Y2RZAMTSavLNkD9qItFy1A=
231-
github.com/evstack/ev-node/core v1.0.0 h1:s0Tx0uWHme7SJn/ZNEtee4qNM8UO6PIxXnHhPbbKTz8=
232-
github.com/evstack/ev-node/core v1.0.0/go.mod h1:n2w/LhYQTPsi48m6lMj16YiIqsaQw6gxwjyJvR+B3sY=
233231
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
234232
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
235233
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=

apps/grpc/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.25.8
44

55
replace (
66
github.com/evstack/ev-node => ../../
7+
github.com/evstack/ev-node/core => ../../core
78
github.com/evstack/ev-node/execution/grpc => ../../execution/grpc
89
)
910

apps/grpc/go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ github.com/envoyproxy/go-control-plane/envoy v1.37.0/go.mod h1:DReE9MMrmecPy+YvQ
188188
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
189189
github.com/envoyproxy/protoc-gen-validate v1.3.3 h1:MVQghNeW+LZcmXe7SY1V36Z+WFMDjpqGAGacLe2T0ds=
190190
github.com/envoyproxy/protoc-gen-validate v1.3.3/go.mod h1:TsndJ/ngyIdQRhMcVVGDDHINPLWB7C82oDArY51KfB0=
191-
github.com/evstack/ev-node/core v1.0.0 h1:s0Tx0uWHme7SJn/ZNEtee4qNM8UO6PIxXnHhPbbKTz8=
192-
github.com/evstack/ev-node/core v1.0.0/go.mod h1:n2w/LhYQTPsi48m6lMj16YiIqsaQw6gxwjyJvR+B3sY=
193191
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
194192
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
195193
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=

apps/testapp/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ WORKDIR /ev-node
2121
# Dependencies are only re-downloaded when go.mod or go.sum change.
2222
COPY go.mod go.sum ./
2323
COPY apps/testapp/go.mod apps/testapp/go.sum ./apps/testapp/
24+
COPY core/go.mod core/go.sum ./core/
2425
RUN go mod download && (cd apps/testapp && go mod download)
2526

2627
# Copy the rest of the source and build.

apps/testapp/go.mod

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ module github.com/evstack/ev-node/apps/testapp
22

33
go 1.25.8
44

5-
replace github.com/evstack/ev-node => ../../.
5+
replace (
6+
github.com/evstack/ev-node => ../../.
7+
github.com/evstack/ev-node/core => ../../core
8+
)
69

710
require (
811
github.com/evstack/ev-node v1.1.3

apps/testapp/go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,6 @@ github.com/envoyproxy/go-control-plane/envoy v1.37.0/go.mod h1:DReE9MMrmecPy+YvQ
188188
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
189189
github.com/envoyproxy/protoc-gen-validate v1.3.3 h1:MVQghNeW+LZcmXe7SY1V36Z+WFMDjpqGAGacLe2T0ds=
190190
github.com/envoyproxy/protoc-gen-validate v1.3.3/go.mod h1:TsndJ/ngyIdQRhMcVVGDDHINPLWB7C82oDArY51KfB0=
191-
github.com/evstack/ev-node/core v1.0.0 h1:s0Tx0uWHme7SJn/ZNEtee4qNM8UO6PIxXnHhPbbKTz8=
192-
github.com/evstack/ev-node/core v1.0.0/go.mod h1:n2w/LhYQTPsi48m6lMj16YiIqsaQw6gxwjyJvR+B3sY=
193191
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
194192
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
195193
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=

apps/testapp/kv/http_server_test.go

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package executor
22

33
import (
44
"context"
5-
"errors"
65
"fmt"
76
"net"
87
"net/http"
@@ -241,8 +240,14 @@ func TestHTTPServerContextCancellation(t *testing.T) {
241240
errCh <- server.Start(ctx)
242241
}()
243242

244-
// Give it time to start
245-
time.Sleep(100 * time.Millisecond)
243+
select {
244+
case err := <-errCh:
245+
if err != nil {
246+
t.Fatalf("Server start error: %v", err)
247+
}
248+
case <-time.After(2 * time.Second):
249+
t.Fatal("Server start timed out")
250+
}
246251

247252
// Send a request to confirm it's running
248253
client := &http.Client{Timeout: 1 * time.Second}
@@ -260,21 +265,33 @@ func TestHTTPServerContextCancellation(t *testing.T) {
260265

261266
// Cancel the context to shut down the server
262267
cancel()
268+
client.CloseIdleConnections()
263269

264-
// Wait for shutdown to complete with timeout
265-
select {
266-
case err := <-errCh:
267-
if err != nil && errors.Is(err, http.ErrServerClosed) {
268-
t.Fatalf("Server shutdown error: %v", err)
269-
}
270-
case <-time.After(2 * time.Second):
271-
t.Fatal("Server shutdown timed out")
270+
// Verify server is actually shutdown by waiting until new connections fail.
271+
shutdownClient := &http.Client{
272+
Timeout: 100 * time.Millisecond,
273+
Transport: &http.Transport{
274+
DisableKeepAlives: true,
275+
},
272276
}
273-
274-
// Verify server is actually shutdown by attempting a new connection
275-
_, err = client.Get(fmt.Sprintf("http://%s/store", serverAddr))
276-
if err == nil {
277-
t.Fatal("Expected connection error after shutdown, but got none")
277+
defer shutdownClient.CloseIdleConnections()
278+
279+
deadline := time.After(2 * time.Second)
280+
ticker := time.NewTicker(10 * time.Millisecond)
281+
defer ticker.Stop()
282+
for {
283+
select {
284+
case <-deadline:
285+
t.Fatal("Expected connection error after shutdown, but server kept accepting requests")
286+
case <-ticker.C:
287+
resp, err := shutdownClient.Get(fmt.Sprintf("http://%s/store", serverAddr))
288+
if err != nil {
289+
return
290+
}
291+
if err := resp.Body.Close(); err != nil {
292+
t.Fatalf("Failed to close response body: %v", err)
293+
}
294+
}
278295
}
279296
}
280297

0 commit comments

Comments
 (0)