Contributing to wspr-ai-lite¶
Thank you for your interest in contributing! This project is open to contributions from the ham radio and open source community.
Development Setup¶
-
Clone the repo:
git clone git@github.com:KI7MT/wspr-ai-lite.git cd wspr-ai-lite
-
Create a virtual environment:
python3 -m venv .venv source .venv/bin/activate
-
Install development dependencies:
make setup-dev
-
Run tests:
make test
Contribution Workflow¶
- Fork the repository.
- Create a feature branch:
git checkout -b feature/my-new-feature
- Commit your changes:
- Follow conventional commits when possible (
fix:
,feat:
,docs:
, etc.). - Ensure pre-commit hooks and tests pass:
pre-commit run --all-files make test
- Push your branch and open a Pull Request.
Code Style & Checks¶
- Code is formatted with black and isort.
- Docstrings are required (enforced with
interrogate
). - Pre-commit hooks run automatically:
- Trailing whitespace
- EOF fixes
- YAML/JSON/TOML validation
- Docstring coverage
- Artifact blocking (no
site/
, DuckDB, etc. in commits)
Smoke Tests¶
Before tagging a release, please run:
make smoke-test
Commit Message Guidelines¶
We follow the Conventional Commits standard for commit messages. This makes it easier to understand project history and automatically generate changelogs.
Format¶
- type → what kind of change this is.
- scope (optional) → area of the codebase (e.g.,
ui
,ingest
,tools
,docs
). - summary → concise description (imperative, no period).
Common Types¶
- feat → new feature
example:
feat(ui): add reciprocal heard analysis panel
- fix → bug fix
example:
fix(ingest): correct band_code mapping for MF range
- docs → documentation only
example:
docs(schema): add canonical WSPR spots schema doc
- style → formatting, whitespace, linter (no logic change)
- refactor → code restructuring without behavior change
- perf → performance improvement
- test → add or update tests
- build → build system or dependency changes
- ci → CI/CD workflows or pipelines
- chore → maintenance tasks, version bumps, release prep
example:
chore(release): cut v0.3.6 tag
- revert → undo a previous commit
Examples¶
feat(tools): add verify --strict and --explain options
fix(ui): handle missing rx_version gracefully
docs: update roadmap for v0.4.0 planning
chore(release): prepare v0.3.6
💡 Tip: Keep summaries short (≤72 chars). Add details in a commit body if needed.
This ensures the package builds, installs, ingests, and launches the UI end-to-end.
👥 Contributors¶
See CONTRIBUTORS.md for a list of people who have helped shape this project.
📜 License¶
By contributing, you agree that your contributions will be licensed under the LICENSE of this repository.