Installation¶
Quick Start¶
Further explanation, troubleshooting, and alternative installation paths are below.
Prerequisites¶
The tools provided by execution-specs use uv (docs.astral.sh/uv) to manage dependencies and the virtual environment.
It's recommended to use the latest version of uv, which can be installed via curl (recommended; can self-update via uv self update) or pip (requires Python, can't self-update):
When installed via curl, uv can also download Python for your platform if a required version (Python 3.11–3.14) is not already installed.
Installing Python and Python Dependencies¶
Clone ethereum/execution-specs and install the project dependencies. Python 3.11–3.14 are supported; Python 3.12 tends to be the smoothest for local setup because pre-built wheels are available across the dependency set.
The following commands use uv to install Python 3.12 and pin it for all commands run within the execution-specs directory:
Testing Your Python Environment¶
The following command can be used to verify that the environment is set up correctly. By targeting a single test subdirectory, it generates only a small subset of test vectors:
Installing the just Task Runner¶
The ethereum/execution-specs repository uses just to run common tasks locally and in CI. Tasks range from static code checks to generating test vectors from the spec.
ethereum/execution-specs requires just 1.43+. Note that the version currently distributed in Ubuntu 24.04 is too old; many other methods are available in the installation docs.
just can be installed directly with uv from the rust-just package.
Testing Your just Installation¶
To explore which tasks (recipes) are available, simply run just within the execution-specs directory:
Then try running the available static code checks:
Configuring Shell Completion¶
just supports tab completion for recipes. Run the following command for help on how to enable this feature for your shell:
More background is available in the just documentation.
Installation Troubleshooting¶
If you run into problems, see Installation Troubleshooting.