Thanks for your interest in improving SWEEP. This guide covers the minimum you need to know to set up a development environment and submit a change.
Clone the repository and install in editable mode. The compiled CUDA extension is optional for most documentation and Python-level changes:
git clone https://github.com/DeepWave-KAUST/sweep.git
# or, if you have an SSH key registered with GitHub:
# git clone git@github.com:DeepWave-KAUST/sweep.git
cd sweep
pip install -e .For the compiled C++ / CUDA extension (needed when working on the
impl="c" path):
SWEEP_BUILD_CUDA=1 pip install -v -e ".[cuda]" --no-build-isolationSee Installation for CUDA-architecture configuration if the build cannot detect your GPU automatically.
- Active development happens on
dev. Do not commit directly todev. - Feature work and refactors live on
feat/<slug>branches cut fromdev. - Bug fixes live on
fix/<slug>branches cut fromdev. - Pull requests target
dev.
Before opening a PR, please confirm:
- The change builds and the relevant tests pass locally.
- Documentation under
docs/is updated if user-facing behavior changed. - New public Python API has NumPy-style docstrings consistent with the
existing modules under
src/sweep/. - The PR description explains why the change is needed; reviewers should not have to reconstruct intent from the diff.
Use the GitHub issue tracker at https://github.com/DeepWave-KAUST/sweep/issues. A good bug report includes:
- Your platform (OS, Python version, PyTorch / JAX version, CUDA version)
- The smallest snippet that reproduces the problem
- The full traceback or unexpected output
- What you expected to happen
For usage questions rather than bugs, please open a GitHub Discussion.
- Python: PEP 8, NumPy-style docstrings, type hints where they aid clarity.
- C++ / CUDA: follow the conventions already in
src/sweep/csrc/.
The documentation lives under docs/ and is built with
MkDocs Material. Preview
locally before submitting documentation PRs:
pip install mkdocs-material
mkdocs serve # http://127.0.0.1:8000Run a strict build to catch broken links and warnings:
mkdocs build --strictBy contributing you agree that your contributions will be licensed under the project's MIT License.