Makefile Guide — wspr-ai-lite¶
The Makefile
provides common shortcuts for developers and users of wspr-ai-lite.
It helps set up the environment, run the app, ingest data, clean up, and reset the project.
Instead of typing long commands, you can run:
make <target>
Example:
make setup-dev
make run
Targets Overview¶
help
¶
Prints a list of all available targets.
setup-dev
¶
Creates a fresh Python virtual environment (.venv
) and installs all dependencies from requirements.txt
.
Use this the first time you clone the repo, or after running make distclean
.
make setup-dev
venv
¶
Creates the virtual environment (.venv
) only, without installing packages.
make venv
install
¶
Installs dependencies into an existing .venv
.
Useful if you updated requirements.txt
.
make install
run
¶
Runs the Streamlit dashboard.
make run
Then open http://localhost:8501 in your browser.
ingest
¶
Ingests WSPRNet data into DuckDB. By default, it pulls July 2014 as a test dataset:
make ingest
This fetches monthly archives (or uses the cache), parses them, and writes to data/wspr.duckdb
.
test
¶
Runs the test suite using pytest
.
The PYTHONPATH
is set automatically so pipelines/
is found.
make test
clean
¶
Removes temporary files, caches, test outputs, and local DuckDB databases:
__pycache__/
.pytest_cache/
.cache/
,.cache_history.json
data/*.duckdb
(local DB)- Coverage reports
make clean
distclean
¶
Runs clean
plus removes all development artifacts:
.venv/
.streamlit/
- Temporary archives (
*.tar.gz
,*.zip
) tmp/
,temp/
make distclean
Use this before pushing to GitHub or when you want a completely clean repo.
reset
¶
Performs a full rebuild from scratch:
- Runs
distclean
- Creates
.venv
- Installs dependencies
- Ingests a sample dataset (2014-07)
make reset
Afterwards, you can launch the app immediately:
make run
Common Workflows¶
-
First-time setup
make setup-dev make ingest make run
-
Run tests before pushing
make test
-
Clean your repo before committing/pushing
make distclean
-
Start completely fresh (new venv + sample data)
make reset
This Makefile is designed to make development repeatable, reliable, and fast.