Skip to content

merge queue: embarking main (7c5dc38), #2113 and #2112 together#2118

Closed
mergify[bot] wants to merge 15 commits intomainfrom
mergify/merge-queue/06fd9d35db
Closed

merge queue: embarking main (7c5dc38), #2113 and #2112 together#2118
mergify[bot] wants to merge 15 commits intomainfrom
mergify/merge-queue/06fd9d35db

Conversation

@mergify
Copy link
Copy Markdown

@mergify mergify bot commented Mar 16, 2026

🎉 This pull request has been checked successfully and will be merged soon. 🎉

Branch main (7c5dc38), #2113 and #2112 are embarked together for merge.

This pull request has been created by Mergify to speculatively check the mergeability of #2112.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue main for merge:

  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • #review-threads-unresolved = 0 [🛡 GitHub branch protection]
  • branch-protection-review-decision = APPROVED [🛡 GitHub branch protection]
  • check-success = run-e2e-tests / fhevm-e2e-test
  • any of [🛡 GitHub branch protection]:
    • check-success = common-pull-request/lint (bpr)
    • check-neutral = common-pull-request/lint (bpr)
    • check-skipped = common-pull-request/lint (bpr)
  • any of [🛡 GitHub branch protection]:
    • check-skipped = coprocessor-cargo-listener-tests/cargo-tests (bpr)
    • check-neutral = coprocessor-cargo-listener-tests/cargo-tests (bpr)
    • check-success = coprocessor-cargo-listener-tests/cargo-tests (bpr)
  • any of [🛡 GitHub branch protection]:
    • check-success = coprocessor-cargo-test/cargo-tests (bpr)
    • check-neutral = coprocessor-cargo-test/cargo-tests (bpr)
    • check-skipped = coprocessor-cargo-test/cargo-tests (bpr)
  • any of [🛡 GitHub branch protection]:
    • check-success = coprocessor-dependency-analysis/dependencies-check (bpr)
    • check-neutral = coprocessor-dependency-analysis/dependencies-check (bpr)
    • check-skipped = coprocessor-dependency-analysis/dependencies-check (bpr)
  • any of [🛡 GitHub branch protection]:
    • check-success = gateway-contracts-deployment-tests/sc-deploy (bpr)
    • check-neutral = gateway-contracts-deployment-tests/sc-deploy (bpr)
    • check-skipped = gateway-contracts-deployment-tests/sc-deploy (bpr)
  • any of [🛡 GitHub branch protection]:
    • check-skipped = kms-connector-tests/test-connector (bpr)
    • check-neutral = kms-connector-tests/test-connector (bpr)
    • check-success = kms-connector-tests/test-connector (bpr)

Required conditions to stay in the queue:

---
checking_base_sha: a46fd42e6f9f9c173b9395a5d544c2d996097a34
previous_failed_batches: []
pull_requests:
  - number: 2112
...

PanGan21 and others added 15 commits March 13, 2026 10:25
…tests from 565 to 480 seconds by replacing hardcoded sleeps with polling
…tests from 480 to 450 secs by replacing fixed sleeps with block polling in slow lane tests
Add `cbor_metadata = false` and `bytecode_hash = 'none'` to both
host-contracts and gateway-contracts foundry.toml. This strips
compiler metadata from deployed bytecode, making bytecode comparison
across branches reliable for upgrade hygiene checks.

Also add OZ remappings to gateway-contracts for Foundry compatibility.
New workflow + Bun/TypeScript script that compares deployed bytecode
between main and PR for every contract in upgrade-manifest.json.

When bytecode changes, the check enforces:
- REINITIALIZER_VERSION must be bumped
- A reinitializeV{N-1}() function must exist (not just commented out)
- At least one of MAJOR/MINOR/PATCH_VERSION must be bumped

When bytecode is unchanged, spurious REINITIALIZER_VERSION bumps are
flagged. Uses matrix strategy for host-contracts and gateway-contracts.
Addresses are generated via `make ensure-addresses` (same as upgrade tests).
Compare PR bytecode against UPGRADE_FROM_TAG (v0.11.0) instead of main.
This avoids unnecessary reinitializer bumps when multiple PRs modify the
same contract between deployments — only the first change after a release
requires a bump. Keeps the tag in sync with *-upgrade-tests.yml workflows.
When comparing against the v0.11.0 baseline, forge tries to compile all
.sol files including ones that were deleted in the PR (e.g.
MultichainACLChecks.sol). These reference removed address constants and
break compilation of unrelated contracts like GatewayConfig, causing
false positives. Strip deleted files from the baseline before compiling.
When forge can't compile the baseline (e.g. deleted contracts break
unrelated imports), compare source files directly instead of blindly
treating all contracts as changed. If the contract source is identical
between baseline and PR, bytecode is unchanged — no version bump needed.

Fixes false positive for GatewayConfig which is unchanged since v0.11.0
but couldn't be compiled because MultichainACLChecks.sol (deleted in PR)
was still imported by other v0.11.0 files.
When comparing bytecode between the baseline tag and the PR, both sides
must compile with identical address constants (they're embedded in
bytecode).  Previously we generated addresses only on the PR side and
copied them to the baseline.  This broke when contracts were removed
between versions — the baseline still had source files importing the
deleted constant, causing forge compilation to fail for the entire
project, including unrelated unchanged contracts.

Add ci/merge-address-constants.ts: generates addresses on both sides
independently, then merges them.  PR values win for shared constants,
baseline-only constants (removed contracts) are preserved so the
baseline compiles, and PR-only constants (new contracts) are preserved
so the PR compiles.

Reverts the source-comparison fallback in check-upgrade-hygiene.ts —
both sides now compile successfully so we always compare real bytecode.
Rename workflow, script, job names, and all references from the
ambiguous "upgrade hygiene" to the descriptive "upgrade version check".
@github-actions
Copy link
Copy Markdown

Changed Lines Coverage

Coverage of added/modified lines: N/A

Per-file breakdown

Diff Coverage

Diff: origin/main...HEAD, staged and unstaged changes

No lines with coverage information in this diff.

@mergify mergify bot closed this Mar 16, 2026
@mergify
Copy link
Copy Markdown
Author

mergify bot commented Mar 16, 2026

🧪 CI Insights

Here's what we observed from your CI run for 0b77245.

🟢 All jobs passed!

But CI Insights is watching 👀

@mergify mergify bot deleted the mergify/merge-queue/06fd9d35db branch March 16, 2026 13:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants