Skip to content

feat(linea-besu): update to v26.7.0 - #3623

Open
fluentcrafter wants to merge 12 commits into
mainfrom
chore-besu-update
Open

feat(linea-besu): update to v26.7.0#3623
fluentcrafter wants to merge 12 commits into
mainfrom
chore-besu-update

Conversation

@fluentcrafter

@fluentcrafter fluentcrafter commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

This PR implements issue(s) #

Checklist

  • I wrote new tests for my new core changes.
  • I have successfully ran tests, style checker and build against my new changes locally.
  • If this change is deployed to any environment (including Devnet), E2E test coverage exists or is included in this
    PR.
  • I have informed the team of any breaking changes if there are any.

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 besuCommit in gradle/libs.versions.toml and the cached linea-besu/besu/.besu-resolved mapping (26.7.0-f036a17). Local docker defaults now pin a newer coordinator image tag.

Gradle/build ergonomics so clean no longer kicks off a long on-demand Besu build: :linea-besu:besu skips buildAndPublishBesuAction when only clean task(s) are requested, and maru’s jar manifest computes Class-Path lazily via a Provider instead of resolving runtimeClasspath at configuration time. Coordinator and transaction-exclusion-api jar manifests now filter dependencies with endsWith('.jar'). .gitignore targets linea-besu/besu/.besu-resolved.

Acceptance tests drop unnecessary !! on OkHttp response.body when 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.

Signed-off-by: Fluent Crafter <205769460+fluentcrafter@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 23, 2026 16:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 besuCommit in gradle/libs.versions.toml to f036a1738493f52999e931e9a61d9a065b749603 (annotated as 26.7.0).

Comment thread gradle/libs.versions.toml Outdated
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>
Copilot AI review requested due to automatic review settings July 23, 2026 16:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread gradle/libs.versions.toml
gauravahuja
gauravahuja previously approved these changes Jul 23, 2026
Copilot AI review requested due to automatic review settings July 23, 2026 21:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  • besuCommit is 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"

Comment thread linea-besu/besu/.besu-resolved
Comment thread gradle/libs.versions.toml
jonesho added 2 commits July 24, 2026 14:50
…k and lazy classpath provider for maru app

Signed-off-by: jonesho <jones.ho@consensys.net>
Signed-off-by: jonesho <jones.ho@consensys.net>
Copilot AI review requested due to automatic review settings July 24, 2026 06:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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), not linea-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.

Comment thread maru/app/build.gradle
nadeemb53
nadeemb53 previously approved these changes Jul 24, 2026
Signed-off-by: jonesho <jones.ho@consensys.net>
Copilot AI review requested due to automatic review settings July 24, 2026 07:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 .gitignore only ignores /linea-besu/.besu-resolved (not linea-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

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

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>
Copilot AI review requested due to automatic review settings July 24, 2026 08:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-resolved is intended to be gitignored (per the header comments and .github/workflows/linea-besu-build-and-publish.yml), but the repo’s .gitignore currently ignores /linea-besu/.besu-resolved (different path) rather than linea-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>
Copilot AI review requested due to automatic review settings July 24, 2026 08:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

Signed-off-by: jonesho <jones.ho@consensys.net>
Copilot AI review requested due to automatic review settings July 24, 2026 08:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  • assertBlockImportRejected consumes the OkHttp response body but never closes the Response. 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 via response.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>
Copilot AI review requested due to automatic review settings July 24, 2026 13:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.body is nullable with OkHttp 4.12.0, so getPayloadResponse.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.body is nullable with OkHttp 4.12.0, so newPayloadResponse.body.string() won’t compile. Unwrap the body explicitly before calling .string().
        .readTree(newPayloadResponse.body.string())

maru/app/build.gradle:119

  • Manifest.attributes expects concrete values; passing a Provider as the Class-Path value risks serializing the Provider’s toString() into the manifest instead of the computed classpath. Resolve the provider inside a doFirst { ... } so it’s evaluated during task execution (and still avoids runtimeClasspath resolution on clean).
  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")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants