Thanks for your interest in contributing to waveorder!
Please see the following steps for our workflow.
Please read the README for an overview of the project, and how you can install and use the package.
We use issues to track bug reports, feature requests, and provide user support.
Before opening a new issue, please first search existing issues (including closed ones), to see if there is an existing discussion about it.
If you have push permission to the repository, clone the repository (the code blocks below are shell commands):
cd # to the directory you want to work in
git clone https://github.com/mehta-lab/waveorder.gitOtherwise, you can follow these instructions to fork the repository.
Next, create a virtual environment and install the package with all dev dependencies:
cd waveorder/
uv sync --group dev --extra visualCheck that the tests pass:
uv run pytestFinally, make the changes and track them with Git.
Dependency groups:
--group test— pytest, hypothesis, napari test deps--group docs— sphinx and documentation deps--group dev— includes bothtestanddocs--extra visual— napari, PyQt6, and visualization deps
We use pre-commit to lint with ruff automatically prior to each commit. Install pre-commit in your environment:
pre-commit installTo manually check formatting and linting:
uvx ruff check .
uvx ruff format --check .Documentation infrastructure is built using Markdown (.md) and reStructuredText (.rst) files. Sphinx utilizes these to build highly customization .html pages for User Guides, API References and Examples rendered directly from source code files.
cd waveorder/
uv sync --group docs
cd docs/
uv run sphinx-build -M html ./ ./buildGenerated HTML documentation can be found in the build/html directory. Open build/html/index.html to view the home page for the documentation.
Automated building of docs is done via read-the-docs which will automatically pull commits to the main branch and host them here: https://waveorder.readthedocs.io
If you find that any documentation in this project is incomplete, inaccurate, or ambiguous, please open an issue. We welcome contributions to the documentation from users, particularly user guides that we can collaboratively edit.