Developer Setup — Cloning and Installing for Development
This page is for developers who want to modify Waveflow, contribute changes, or run the bundled examples and tests. If you only want to use Waveflow as a library in your own project, see User Setup — you don’t need to clone the repository.
1. Clone the repository
git clone https://github.com/sdrangan/waveflow.git
The repository is updated frequently. To fetch the latest and discard any local changes:
git fetch origin
git reset --hard origin/main
2. Create and activate a virtual environment
Use a virtual environment to isolate the project’s dependencies (see
User Setup for what a virtual environment is and why). From the directory
just outside waveflow:
python -m venv env
.\env\Scripts\Activate.ps1 # Windows PowerShell (.bat for cmd; `source env/bin/activate` on macOS/Linux)
On Windows PowerShell, if activation is blocked as “not digitally signed”, run
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass first.
3. Install in editable mode with the dev tools
From the repository root, with the environment active:
(env) pip install -e ".[dev]"
This installs waveflow editable — your source edits take effect immediately, no
reinstall — plus the development extras (pytest, ruff, black, mypy). You only
need to do this once per environment.
Verify, then run the tests:
(env) python -c "import waveflow; print(waveflow.__file__)"
(env) pytest -m "not vitis" # the fast suite (skips the Vitis HLS integration tests)
The Vitis HLS integration tests run under pytest -m vitis and require a Vitis
installation — see Synthesis.
Maintaining the requirements files
Runtime and dev dependencies live in pyproject.toml; pip install -e ".[dev]" reads
them directly, so you normally don’t touch requirements*.txt. The repo keeps pinned
requirements*.txt files for reproducibility. To regenerate them after changing
dependencies:
python -m pip freeze > requirements.txt
sed 's/[<>=~!].*//' requirements.txt > requirements-loose.txt # version-stripped
PowerShell equivalent for the loose file:
(Get-Content requirements.txt) -replace "[<>=~!].*","" | Set-Content requirements-loose.txt
When editing requirements.txt, drop these lines if present:
pywin32==...— Windows-only; remove it for cross-platform installs.-e git+https://github.com/sdrangan/waveflow.git@...#egg=...— not needed; you’ve already installed Waveflow editable.