Skip to content

chore(ci): bump prague to stable and osaka to develop #1573

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Jul 15, 2025

Conversation

spencer-tb
Copy link
Contributor

@spencer-tb spencer-tb commented May 7, 2025

πŸ—’οΈ Description

Bumps Prague to stable and Osaka to develop in our CI.

Allows us to create an Osaka full release after merging this where fixtures_stable would contain Prague and fixtures_develop up to Osaka (refill-ing all our existing tests).

πŸ”— Related Issues

Requires #1507 and #1454.

βœ… Checklist

  • All: Set appropriate labels for the changes.
  • All: Considered squashing commits to improve commit history.
  • All: Added an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.

@spencer-tb spencer-tb added scope:ci Scope: Continuous Integration type:chore Type: Chore fork:prague Prague hardfork fork:osaka Osaka hardfork labels May 7, 2025
@spencer-tb spencer-tb marked this pull request as ready for review May 7, 2025 16:15
@marioevz
Copy link
Member

marioevz commented May 9, 2025

Actually requires #1508 if we want to wait for the last Prague-as-develop release.

@spencer-tb spencer-tb force-pushed the spencer-tb/move-prague-to-stable branch 2 times, most recently from 3b9397c to 05f02d1 Compare May 15, 2025 13:48
Copy link
Member

@marioevz marioevz left a comment

Choose a reason for hiding this comment

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

Looks good overall, just a couple of requests:

  • We need to remove the is_deployed method from Prague in src/ethereum_test_forks/forks/forks.py.
  • This is a breaking change in the changelog.

@marioevz marioevz force-pushed the spencer-tb/move-prague-to-stable branch from 05f02d1 to 8d3f30b Compare May 20, 2025 20:06
@marioevz
Copy link
Member

Made the fixes for this, but some unit tests are failing, particularly the src/cli/gentest/tests/test_cli.py unit tests are failing in Prague due to the branch currently being used, which fails to fill if the environment's block number is not 1.

@spencer-tb spencer-tb force-pushed the spencer-tb/move-prague-to-stable branch 2 times, most recently from 07867bb to 214e430 Compare July 1, 2025 16:06
@danceratopz danceratopz force-pushed the spencer-tb/move-prague-to-stable branch from d3e7cbc to 1f75234 Compare July 3, 2025 22:07
@danceratopz
Copy link
Member

@marioevz @spencer-tb I think we need to get this merged, cf #1856. It's going to make our ci v slow 😒

I just rebased on main, I think we'll have some tests to fix.

@spencer-tb
Copy link
Contributor Author

Looking at just now!

@spencer-tb
Copy link
Contributor Author

spencer-tb commented Jul 4, 2025

Looking at just now!

Didn't quite get there but these are the remaining tests to be fixed. Can continue next week.

tests/prague/eip6110_deposits/test_modified_contract.py:

  • test_invalid_layout
  • test_invalid_log_length

tests/prague/eip7702_set_code_tx/test_set_code_txs_2.py:

  • test_delegation_replacement_call_previous_contract

@danceratopz
Copy link
Member

@spencer-tb thanks so much.

@spencer-tb @marioevz @felix314159 ideally, we'd update eels_resolutions.json in this PR to point to the official spec: I.e., point to

@felix314159 felix314159 force-pushed the spencer-tb/move-prague-to-stable branch from 5d2dd36 to b4dbc2d Compare July 8, 2025 10:20
@felix314159
Copy link
Collaborator

I rebased on main so that i can start helping, otherwise i would struggle with the solc-select dependency

@felix314159
Copy link
Collaborator

felix314159 commented Jul 8, 2025

Looking at just now!

Didn't quite get there but these are the remaining tests to be fixed. Can continue next week.

tests/prague/eip6110_deposits/test_modified_contract.py:

* test_invalid_layout

* test_invalid_log_length

tests/prague/eip7702_set_code_tx/test_set_code_txs_2.py:

* test_delegation_replacement_call_previous_contract

After modifying the eels_resolutions.json to use latest master (not some pinned commit) for all forks, but especially for prague, then tests/prague/eip6110_deposits/test_modified_contract.py fills without issues with eels (but not with evmone). When trying to fill tests/prague/eip7702_set_code_tx/test_set_code_txs_2.py with eels 271 pass but 1 fails cuz:

src/ethereum_test_specs/helpers.py:278: in verify_transactions
    info.verify(strict_match=transition_tool_exceptions_reliable)
src/ethereum_test_specs/helpers.py:174: in verify
    raise UndefinedExecutionExceptionError(
E   ethereum_test_specs.helpers.UndefinedExecutionExceptionError: Exception mismatch on Transaction ({'index': 0, 'nonce': 0}):
E      What: Transaction exception mismatch!
E      Want: TransactionException.TYPE_4_TX_PRE_FORK
E       Got: "Failed to parse transaction 0: module 'ethereum.cancun.transactions' has no attribute 'SetCodeTransaction'"
E    No exception defined for error message got, please add it to ExecutionSpecsExceptionMapper

Should we update the eels_resolutions.json in a separate PR?

Copy link
Member

@marioevz marioevz left a comment

Choose a reason for hiding this comment

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

LGTM, rebased to latest main to see if CI is fixed with the EELS update, will merge afterwards!

@spencer-tb
Copy link
Contributor Author

spencer-tb commented Jul 8, 2025

Looks good from myside. The failing tests all seem to pass now!
Regrets comment :P

@marioevz
Copy link
Member

marioevz commented Jul 8, 2025

Found the issue, I think the master branch of eels is currently ignoring the reward field of the request, I'm still debugging.

@marioevz
Copy link
Member

marioevz commented Jul 8, 2025

Pushed one fix but this still requires a fix from EELS side: ethereum/execution-specs#1312

And even with that, some tests are still failing :(

@marioevz
Copy link
Member

marioevz commented Jul 8, 2025

Example of test failing: tests/prague/eip2537_bls_12_381_precompiles/test_bls12_variable_length_input_contracts.py is timing out.

Copy link
Collaborator

@kclowes kclowes left a comment

Choose a reason for hiding this comment

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

LGTM! Edit: Oops, didn't see the failing tests.

@spencer-tb
Copy link
Contributor Author

2 failing framework tests I haven't figured out, you can run them with:

uv run pytest -c ./pytest-framework.ini -n 8 -k test_evm_t8n -vv

For some reason the balance of these accounts is off by 0x1bc16d674ec80000 = 2000000000000000000.

@spencer-tb
Copy link
Contributor Author

The remaining EELS failures are connection refused issues that come from increased parallelism. When running these failures isolated they pass.

@spencer-tb spencer-tb force-pushed the spencer-tb/move-prague-to-stable branch from defaad7 to c211070 Compare July 11, 2025 17:12
@spencer-tb
Copy link
Contributor Author

spencer-tb commented Jul 11, 2025

The remaining EELS failures are connection refused issues that come from increased parallelism. When running these failures isolated they pass.

These seem to be from some recent commits in EELS master. I dropped some of them and added the required commits (2 additional). We are now using a very similar EELS branch for Prague but on my fork. I think all the tests will fill correctly now. So just the 2 small unit tests.

@marioevz
Copy link
Member

The remaining EELS failures are connection refused issues that come from increased parallelism. When running these failures isolated they pass.

These seem to be from some recent commits in EELS master. I dropped some of them and added the required commits (2 additional). We are now using a very similar EELS branch for Prague but on my fork. I think all the tests will fill correctly now. So just the 2 small unit tests.

The failing unit tests should be fixed by ethereum/execution-specs#1312, in combination with this commit I just pushed: c6aea49

@danceratopz danceratopz force-pushed the spencer-tb/move-prague-to-stable branch from c4953f5 to 9f73522 Compare July 15, 2025 06:30
@danceratopz
Copy link
Member

@spencer-tb rebased on main to resolve chnagelog conflicts.

Once ethereum/execution-specs#1312 is merged we can update Prague in eels_resolutions.json to point to execution-specs then we should be able to merge? :)

Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

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

LGGGGGTM! πŸš€

@spencer-tb
Copy link
Contributor Author

spencer-tb commented Jul 15, 2025

Goodbye friend. I'm not going to miss you PR 1573. πŸ‘‹

@spencer-tb spencer-tb merged commit 575eb8a into main Jul 15, 2025
13 checks passed
@spencer-tb spencer-tb deleted the spencer-tb/move-prague-to-stable branch July 15, 2025 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fork:osaka Osaka hardfork fork:prague Prague hardfork scope:ci Scope: Continuous Integration type:chore Type: Chore
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants