feat(linea-besu): update to v26.7.0 - #3623
Conversation
Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the pinned Hyperledger Besu source revision used by the linea-besu build (via the Gradle version catalog) to target Besu v26.7.0, which affects how Besu artifacts are resolved/built for downstream Linea Besu modules and CI workflows.
Changes:
- Bump
besuCommitingradle/libs.versions.tomltof036a1738493f52999e931e9a61d9a065b749603(annotated as 26.7.0).
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
gradle/libs.versions.toml:45
besuCommitis described as the single source of truth for the Besu version. Adding a separate# Besu version: ...comment creates a second manual sync point that can drift on future bumps unless it is updated by automation.
# Besu version: 26.7.0
besuCommit = "f036a1738493f52999e931e9a61d9a065b749603"
…k and lazy classpath provider for maru app Signed-off-by: jonesho <jones.ho@consensys.net>
Signed-off-by: jonesho <jones.ho@consensys.net>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
linea-besu/besu/.besu-resolved:4
- This header says the file is gitignored, but the repository ignore rule currently targets
/linea-besu/.besu-resolved(see.gitignore:188), notlinea-besu/besu/.besu-resolved. This is misleading, especially since CI force-adds this path.
# Do NOT edit by hand and do NOT commit local changes — this file is gitignored.
Signed-off-by: jonesho <jones.ho@consensys.net>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
linea-besu/besu/.besu-resolved:6
- The header comment says this file is gitignored, but the repo’s
.gitignoreonly ignores/linea-besu/.besu-resolved(notlinea-besu/besu/.besu-resolved), and CI explicitly force-adds this path. This comment is misleading for contributors and reviewers when investigating why the file is tracked/updated.
# Written by Gradle (:linea-besu:resolveBesuVersion) and refreshed by CI
# (.github/workflows/linea-besu-build-and-publish.yml) on besuCommit bumps.
# Do NOT edit by hand and do NOT commit local changes — this file is gitignored.
besuCommit=f036a1738493f52999e931e9a61d9a065b749603
besuVersion=26.7.0-f036a17
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
linea-besu/besu/.besu-resolved:6
.besu-resolvedis intended to be gitignored (per the header comments and.github/workflows/linea-besu-build-and-publish.yml), but the repo’s.gitignorecurrently ignores/linea-besu/.besu-resolved(different path) rather thanlinea-besu/besu/.besu-resolved. This mismatch can cause locally regenerated cache changes to be staged accidentally and makes the workflow comment misleading.
Suggested fix: update .gitignore to ignore linea-besu/besu/.besu-resolved (or adjust the cache file location/workflow if the current ignore path is intentional).
# Written by Gradle (:linea-besu:resolveBesuVersion) and refreshed by CI
# (.github/workflows/linea-besu-build-and-publish.yml) on besuCommit bumps.
# Do NOT edit by hand and do NOT commit local changes — this file is gitignored.
besuCommit=f036a1738493f52999e931e9a61d9a065b749603
besuVersion=26.7.0-f036a17
Signed-off-by: jonesho <jones.ho@consensys.net>
Signed-off-by: jonesho <jones.ho@consensys.net>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 10 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
linea-besu/plugins/linea-sequencer/acceptance-tests/src/test/kotlin/linea/plugin/acc/test/LineaPluginPoSTestBase.kt:611
assertBlockImportRejectedconsumes the OkHttp response body but never closes theResponse. The current call sites (BlobTransactionBlockImportDenialTest,EIP7702TransactionBlockImportDenialTest) also don’t wrap the response in.use {}. This can leak connections/file descriptors and cause flaky tests. Consider closing the response inside this helper viaresponse.use { ... }.
protected fun assertBlockImportRejected(response: Response, expectedValidationError: String) {
val result = mapper.readTree(response.body.string()).get("result")
val status = result.get("status").asText()
val validationError = result.get("validationError").asText()
assertThat(status).isEqualTo("INVALID")
assertThat(validationError).contains(expectedValidationError)
}
Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (3)
linea-besu/plugins/linea-sequencer/acceptance-tests/src/test/kotlin/org/hyperledger/besu/tests/acceptance/dsl/EngineAPIService.kt:113
okhttp3.Response.bodyis nullable with OkHttp 4.12.0, sogetPayloadResponse.body.string()won’t compile. Unwrap the body explicitly before calling.string().
val result = mapper.readTree(getPayloadResponse.body.string()).get("result")
linea-besu/plugins/linea-sequencer/acceptance-tests/src/test/kotlin/org/hyperledger/besu/tests/acceptance/dsl/EngineAPIService.kt:136
okhttp3.Response.bodyis nullable with OkHttp 4.12.0, sonewPayloadResponse.body.string()won’t compile. Unwrap the body explicitly before calling.string().
.readTree(newPayloadResponse.body.string())
maru/app/build.gradle:119
Manifest.attributesexpects concrete values; passing aProvideras theClass-Pathvalue risks serializing the Provider’stoString()into the manifest instead of the computed classpath. Resolve the provider inside adoFirst { ... }so it’s evaluated during task execution (and still avoids runtimeClasspath resolution onclean).
manifest {
attributes(
'Class-Path': classPathAttribute,
'Main-Class': 'maru.app.CliEntrypoint',
'Multi-Release': 'true'
)
}
| // parse the relevant fields manually from the expected JSON structure. | ||
| payloadId = mapper | ||
| .readTree(buildBlockResponse.body!!.string()) | ||
| .readTree(buildBlockResponse.body.string()) |
| */ | ||
| protected fun assertBlockImportRejected(response: Response, expectedValidationError: String) { | ||
| val result = mapper.readTree(response.body?.string()).get("result") | ||
| val result = mapper.readTree(response.body.string()).get("result") |
This PR implements issue(s) #
Checklist
PR.
Note
Medium Risk
Besu 26.7.0 touches core execution/client dependencies across the stack; risk is moderate though mitigated by targeted Gradle clean fixes and small test HTTP API adjustments.
Overview
Bumps the monorepo to Hyperledger Besu 26.7.0 by updating
besuCommitingradle/libs.versions.tomland the cachedlinea-besu/besu/.besu-resolvedmapping (26.7.0-f036a17). Local docker defaults now pin a newer coordinator image tag.Gradle/build ergonomics so
cleanno longer kicks off a long on-demand Besu build::linea-besu:besuskipsbuildAndPublishBesuActionwhen onlycleantask(s) are requested, and maru’s jar manifest computesClass-Pathlazily via aProviderinstead of resolvingruntimeClasspathat configuration time. Coordinator and transaction-exclusion-api jar manifests now filter dependencies withendsWith('.jar')..gitignoretargetslinea-besu/besu/.besu-resolved.Acceptance tests drop unnecessary
!!on OkHttpresponse.bodywhen parsing Engine API JSON (aligned with updated APIs in the Besu 26.7 test stack).Reviewed by Cursor Bugbot for commit c8be0db. Bugbot is set up for automated code reviews on this repo. Configure here.