Local Development Instructions
To install the ethstaker-deposit-cli, follow these steps:
Prerequisites
Ensure you have the following software installed on your system:
- Git: Version control system to clone the repository. Download Git
- Supported Python version: The required version is declared in
pyproject.toml. Download Python - pip: Package installer for Python, which is included with Python 3.
On Windows, you'll need:
- Git for Windows: Version control system to clone the repository. Configure it to associate
.shfiles withbash. Download GfW - Windows Terminal: Optional but recommended command line console. Configure GfW to install a Git Bash profile. Download Windows Terminal
- Supported Python version: The required version is declared in
pyproject.toml. Download Python - Visual Studio C++: The compiler required to build some of the dependencies of the tool. Download VS C++
Local Development Steps
-
Clone the Repository
git clone https://github.com/ethstaker/ethstaker-deposit-cli.git -
Navigate to the Project Directory
cd ethstaker-deposit-cli -
Setup virtualenv (optional)
Install
venvif not already installed, e.g. for Debian/Ubuntu:sudo apt update && sudo apt install python3-venvCreate a new virtual environment:
python3 -m venv .venv source .venv/bin/activate -
Install Dependencies
python3 -m pip install -r requirements.txt -
Run the CLI
You can now run the CLI tool using the following command:
python3 -m ethstaker_deposit [OPTIONS] COMMAND [ARGS] -
Use pre-commit for PRs
Install
pre-commitif not already installed, e.g. for Debian/Ubuntu:sudo apt update && sudo apt install pre-commitEnable it for your
git commitworkflow:pre-commit installIf you are using
uv, you can also install it using:uv sync --all-extras uv run pre-commit install
To execute tests, you will need to install the test dependencies:
python3 -m pip install -r requirements.txt -r requirements_test.txt
python3 -m pytest tests
Building Local Binaries
The standalone binary targets use Python 3.14, matching the official release workflow and the Python version supported by the pinned PyInstaller toolchain.
Build a Linux or macOS binary with:
make build_linux
make build_macos
These targets look for python3.14, create or reuse the venv/ environment with that interpreter, and install the pinned build dependencies. If an existing venv/ was created with another Python version, it is recreated automatically.
If Python 3.14 is installed under a non-standard path, provide it explicitly:
make BUILD_PYTHON=/path/to/python3.14 build_linux
The general development targets, such as venv_test and venv_lint, use python3 by default. That interpreter must satisfy the requires-python range in pyproject.toml; override it with PYTHON when needed:
make PYTHON=python3.14 venv_test
The official release workflow builds binaries with Python 3.14. Windows binaries are currently built by GitHub Actions using build_configs/windows/build.spec.