execution-spec-tests icon indicating copy to clipboard operation
execution-spec-tests copied to clipboard

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

Open spencer-tb opened this issue 9 months ago • 1 comments

🗒️ Description

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

I think we should create an initial Osaka release after merging this where fixtures_stable would contain Prague and fixtures_develop up to Osaka (refill-ing all our existing tests).

I added a temp EELS branch so we can refill all of our tests for Osaka:

  • https://github.com/spencer-tb/execution-specs/tree/forks/osaka

Note that branch is based off:

  • https://github.com/marioevz/execution-specs/tree/forks/prague

So we should probably proceed with #1454 first, then update our temp osaka branch.

🔗 Related Issues

Requires #1507 and #1454.

✅ Checklist

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

spencer-tb avatar May 07 '25 16:05 spencer-tb

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

marioevz avatar May 09 '25 15:05 marioevz

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.

marioevz avatar May 20 '25 21:05 marioevz

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

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

danceratopz avatar Jul 03 '25 22:07 danceratopz

Looking at just now!

spencer-tb avatar Jul 04 '25 09:07 spencer-tb

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

spencer-tb avatar Jul 04 '25 15:07 spencer-tb

@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

  • https://github.com/ethereum/execution-specs/tree/forks/prague instead of Mario's branch:
  • https://github.com/marioevz/execution-specs/tree/forks/prague

danceratopz avatar Jul 08 '25 08:07 danceratopz

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

felix314159 avatar Jul 08 '25 10:07 felix314159

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?

felix314159 avatar Jul 08 '25 14:07 felix314159

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

spencer-tb avatar Jul 08 '25 17:07 spencer-tb

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

marioevz avatar Jul 08 '25 22:07 marioevz

Pushed one fix but this still requires a fix from EELS side: https://github.com/ethereum/execution-specs/pull/1312

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

marioevz avatar Jul 08 '25 23:07 marioevz

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

marioevz avatar Jul 08 '25 23:07 marioevz

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 avatar Jul 11 '25 14:07 spencer-tb

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

spencer-tb avatar Jul 11 '25 15:07 spencer-tb

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.

spencer-tb avatar Jul 11 '25 17:07 spencer-tb

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 https://github.com/ethereum/execution-specs/pull/1312, in combination with this commit I just pushed: https://github.com/ethereum/execution-spec-tests/pull/1573/commits/c6aea491d80f85950aa2fc74f77e6a044bc1f1b4

marioevz avatar Jul 11 '25 20:07 marioevz

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

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

danceratopz avatar Jul 15 '25 06:07 danceratopz

Goodbye friend. I'm not going to miss you PR 1573. 👋

spencer-tb avatar Jul 15 '25 11:07 spencer-tb