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 .sh files with bash. 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

  1. Clone the Repository

    git clone https://github.com/ethstaker/ethstaker-deposit-cli.git
    
  2. Navigate to the Project Directory

    cd ethstaker-deposit-cli
    
  3. Setup virtualenv (optional)

    Install venv if not already installed, e.g. for Debian/Ubuntu:

    sudo apt update && sudo apt install python3-venv
    

    Create a new virtual environment:

    python3 -m venv .venv
    source .venv/bin/activate
    
  4. Install Dependencies

    python3 -m pip install -r requirements.txt
    
  5. Run the CLI

    You can now run the CLI tool using the following command:

    python3 -m ethstaker_deposit [OPTIONS] COMMAND [ARGS]
    
  6. Use pre-commit for PRs

    Install pre-commit if not already installed, e.g. for Debian/Ubuntu:

    sudo apt update && sudo apt install pre-commit
    

    Enable it for your git commit workflow:

    pre-commit install
    

    If 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.