Contributing

Contributions, bug reports, feature requests, and pull requests alike are welcome.

Development setup

git clone https://github.com/ibukun-brain/django-channels-spectacular.git
cd django-channels-spectacular

# With pip
pip install -e ".[dev]"

# With uv (recommended)
uv sync --extra dev

Running the tests

pytest -v

All tests must pass before a PR is merged. If you add new behaviour, include tests that cover it.

Coding style

  • Follow existing code style; no trailing comments that restate what the code says.

  • Keep functions and classes focused; prefer small named helpers over inline complexity.

  • Public API changes must be reflected in docstrings and the README.

Submitting a pull request

  1. Fork the repository.

  2. Make your changes and add tests.

  3. Open a pull request with a clear title and description.

  4. One feature or fix per PR makes review faster.

A quick cheat sheet to get you started

# fork the repo on github
git clone https://github.com/YOURGITHUBNAME/channels-spectacular
cd channels-spectacular
python -m venv venv
source venv/bin/activate
(venv) pip install -r requirements.txt
(venv) ./runtests.py  # runs tests (pytest) & linting (isort, flake8, mypy)

Reporting bugs

Open a GitHub issue with the Python / Django / Channels versions, a minimal reproduction, and the full traceback.

Requesting features

Open a GitHub issue describing the use-case you are trying to solve and any API suggestions you have in mind.