ethereum / ethereum/execution-specs
[tooling] Docker build fails: ethereum-execution-specs[test] extra not installable
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 505
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 116
Description
### Metadata
* Python: CPython 3.13 (in Docker)
* Operating System: Linux (Debian testing)
* Build Date: 2025-10-17
* Docker Image: mega-evm-fuzzer:2025-10-17
#### `pip freeze`
```
This failure occurs during Docker build before pip freeze can be generated.
The build environment had:
- Rust 1.90.0 (stable-x86_64-unknown-linux-gnu)
- pipx 1.8.0
- Python 3.13.8
The exact dependency environment at failure time:
- Attempting: ethereum-execution-specs[test]
- Failed dependency: ethereum-execution-tests (not found on PyPI)
- Build issue: libcst<2,>=1.8 (transitive dependency, build failure)
```
### What was wrong?
**Command that failed:**
```bash
PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/ pipx install './execution-specs/[test]'
```
**Full error output:**
```
Fatal error from pip prevented installation. Full pip output in file:
/opt/pipx/logs/cmd_2025-10-16_22.01.05_pip_errors.log
pip seemed to fail to build package:
libcst<2,>=1.8
Some possibly relevant errors from pip install:
ERROR: Could not find a version that satisfies the requirement ethereum-execution-tests; extra == "test"
(from ethereum-execution[test]) (from versions: none)
ERROR: No matching distribution found for ethereum-execution-tests; extra == "test"
Error installing ethereum-execution from spec '/execution-specs/[test]'.
Collecting libcst<2,>=1.8 (from ethereum-execution==2.18.0rc5.dev2)
Downloading libcst-1.8.5-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (15 kB)
INFO: pip is looking at multiple versions of ethereum-execution[test] to determine which version is compatible with other requirements. This could take a while.
PIP STDERR
----------
ERROR: Could not find a version that satisfies the requirement ethereum-execution-tests; extra == "test" (from ethereum-execution[test]) (from versions: none)
ERROR: No matching distribution found for ethereum-execution-tests; extra == "test"
```
**Context:**
The Docker build process attempts to install the execution-specs package with the `[test]` extra during the main stage build (Dockerfile line 226). This is part of the mega-evm-fuzzer Docker image build pipeline. The build succeeds up to this point; all other component builds complete normally (revm, evmone, go-ethereum, nethermind, besu).
**What was being attempted:**
Installing ethereum-execution-specs with test dependencies for fuzzing/testing purposes in the Docker environment.
### How can it be fixed?
**Option 1: Verify test extra availability** (Recommended)
- Check if the `[test]` extra still exists in the current execution-specs repository
- Verify that the `ethereum-execution-tests` package is published on PyPI
- Confirm version constraints for transitive dependencies like `libcst`
**Option 2: Remove test extra if no longer needed**
- Change Dockerfile line 226 to: `pipx install './execution-specs'` (without `[test]`)
- If tests were needed, consider installing them separately or at a different stage
**Option 3: Pin specific versions**
- If the issue is a version mismatch, explicitly pin working versions of dependencies
- Example: `pipx install 'ethereum-execution-specs[test]==X.Y.Z'`
### Additional Context
**Build Log References:**
- Failure at step 35 of 30 (build stage: main)
- Exit code: 1
- Previous steps succeeded: Rust installation, execution-specs repository clone, Cargo build
**Related Dockerfile sections:**
```dockerfile
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal && \
. "$HOME/.cargo/env"; PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/ pipx install './execution-specs/[test]' && \
rm -rf /root/.rustup && rm -rf /root/.cargo
```
**Suggested investigation steps:**
1. Check execution-specs repository `pyproject.toml` for `[project.optional-dependencies]` section
2. Verify PyPI page: https://pypi.org/project/ethereum-execution-tests/
3. Try local reproduction: `pip install "ethereum-execution-specs[test]" -v`
4. Review recent commits to execution-specs that may have changed dependency structure
**Impact:**
- Blocks nightly Docker image builds for mega-evm-fuzzer
- Affects any CI/CD pipeline dependent on this image
Contributor guide
Assessment
This issue has not been assessed yet.