Contributor Guide
Overview¶
You will need to set up a Python environment to develop ReactPy-Django.
Note
Looking to contribute features that are not Django specific?
Everything within the reactpy-django
repository must be specific to Django integration. Check out the ReactPy Core documentation to contribute general features such as components, hooks, and events.
Creating a development environment¶
If you plan to make code changes to this repository, you will need to install the following dependencies first:
Once you finish installing these dependencies, you can clone this repository:
git clone https://github.com/reactive-python/reactpy-django.git
cd reactpy-django
Executing test environment commands¶
By utilizing hatch
, the following commands are available to manage the development environment.
Tests¶
Command | Description |
---|---|
hatch test | Run Python tests using the current environment's Python version |
hatch test --all | Run tests using all compatible Python versions |
hatch test --python 3.9 | Run tests using a specific Python version |
hatch test --include "django=5.1" | Run tests using a specific Django version |
hatch test -k test_object_in_templatetag | Run only a specific test |
hatch test --ds test_app.settings_multi_db | Run tests with a specific Django settings file |
hatch run django:runserver | Manually run the Django development server without running tests |
What other arguments are available to me?
The hatch test
command is a wrapper for pytest
. Hatch "intercepts" a handful of arguments, which can be previewed by typing hatch test --help
.
Any additional arguments in the test
command are directly passed on to pytest. See the pytest documentation for what additional arguments are available.
Linting and Formatting¶
Command | Description |
---|---|
hatch fmt | Run all linters and formatters |
hatch fmt --check | Run all linters and formatters, but do not save fixes to the disk |
hatch fmt --linter | Run only linters |
hatch fmt --formatter | Run only formatters |
hatch run javascript:check | Run the JavaScript linter/formatter |
hatch run javascript:fix | Run the JavaScript linter/formatter and write fixes to disk |
hatch run python:type_check | Run the Python type checker |
Configure your IDE for linting
This repository uses hatch fmt
for linting and formatting, which is a modestly customized version of ruff
.
You can install ruff
as a plugin to your preferred code editor to create a similar environment.
Documentation¶
Command | Description |
---|---|
hatch run docs:serve | Start the mkdocs server to view documentation locally |
hatch run docs:build | Build the documentation |
hatch run docs:linkcheck | Check for broken links in the documentation |
hatch fmt docs --check | Run linter on code examples in the documentation |
Environment Management¶
Command | Description |
---|---|
hatch build --clean | Build the package from source |
hatch env prune | Delete all virtual environments created by hatch |
hatch python install 3.12 | Install a specific Python version to your system |
Check out Hatch for all available commands!
This documentation only covers commonly used commands.
You can type hatch --help
to see all available commands.