Skip to content
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

bug(ci): fill fails - eels resolver complains about missing dependency #1083

Closed
danceratopz opened this issue Jan 16, 2025 · 1 comment · Fixed by #1080
Closed

bug(ci): fill fails - eels resolver complains about missing dependency #1083

danceratopz opened this issue Jan 16, 2025 · 1 comment · Fixed by #1080

Comments

@danceratopz
Copy link
Member

danceratopz commented Jan 16, 2025

First fail in this job:

  File "/home/runner/.cache/ethereum-spec-evm-resolver/Merge/src/ethereum_spec_tools/evm_tools/b11r/__init__.py", line 9, in <module>
    from ethereum_rlp import rlp
ModuleNotFoundError: No module named 'ethereum_rlp'

For the full log, see https://github.com/ethereum/execution-spec-tests/actions/runs/12794635029/job/35670203509#step:5:181

It looks like this triggered it:

which makes no sense as:

  • the execution-specs version used by EEST is pinned in uv.lock,
  • the ethereum-evm-spec-resolver is pinned in uv.lock,
  • the version of excution-specs used to fill tests (tests-deployed, framework tox envs) is pinned (unfortunately) in tox_verify.yaml workflow (a local clone of eels is specified to fill in CI to avoid unnecessary network traffic, this is specified in ./github/configs/eels_resolutions.json).
@danceratopz
Copy link
Member Author

danceratopz commented Jan 16, 2025

Ok, #1080 was a hot-fix (which is not necessary with #1088, but it doesn't hurt).

The underlying reason(s) for the fail are:

  1. ethereum/execution-specs introduced a new dependency: ethereum-rlp in Switch to ethereum-rlp execution-specs#1034
  2. The resolver doesn't have any knowledge about ethereum/execution-specs downstream dependencies (it retrieves the fork and assumes that the dependencies are available).
  3. The EEST resolution file used in CI ./github/config/eels_resolutions.json configured tests filled for the Paris fork with this entry:
    "Paris" {
         "same_as": "EELSMaster"
     },
    
    which was simply unused (the key should be Merge, as used per t8n tool). The resolver then resolved the Paris fork to be (~/.cache/ethereum-spec-evm-resolver/Merge.info):
     {"resolution":{"git_url":"https://github.com/ethereum/execution-specs.git","branch":"master","commit":null},"timestamp":"2025-01-16T10:21:43.572656Z","head":"f707ac9d37f478b5d3c755d8b90422bb9896cbc5"}
    
    which was the latest commit to the execution-specs master branch. This is expected, as it defaults to retrieve the remote version from execution-specs master for deployed mainnet forks:
    https://github.com/petertdavies/ethereum-spec-evm-resolver/blob/c68756230a27709e10426d5fbe4fa1b142a0b0ee/src/ethereum_spec_evm_resolver/forks.py#L124
  4. When the resolver was called to fill tests for Paris forks it complained that ethereum-rlp was missing.

Point 3. is addressed in EEST in:

We may need some follow-up to improve resolver behavior.

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 a pull request may close this issue.

1 participant