Development¶
uv is a required package to develop.
Clone:
$ git clone https://github.com/tony/django-slugify-processor.git
$ cd django-slugify-processor
Install packages:
$ uv sync --all-extras --dev
Tests¶
uv run py.test
Helpers: just test
Automatically run tests on file save¶
just start(via pytest-watcher)just watch-test(requires installing entr(1))
Documentation¶
Default preview server: http://localhost:8034
sphinx-autobuild will automatically build the docs, watch for file changes and launch a server.
From home directory: just start-docs
From inside docs/: just start
Manual documentation (the hard way)¶
cd docs/ and just html to build. just serve to start http server.
Helpers:
just build-docs, just serve-docs
Rebuild docs on file change: just watch-docs (requires entr(1))
Rebuild docs and run server via one terminal: just dev-docs
Formatting / Linting¶
ruff¶
The project uses ruff to handle formatting, sorting imports and linting.
uv:
$ uv run ruff
If you setup manually:
$ ruff check .
$ just ruff
$ just watch-ruff
requires entr(1).
uv:
$ uv run ruff check . --fix
If you setup manually:
$ ruff check . --fix
ruff format¶
ruff format is used for formatting.
uv:
$ uv run ruff format .
If you setup manually:
$ ruff format .
$ just ruff-format
mypy¶
mypy is used for static type checking.
Releasing¶
uv handles virtualenv creation, package requirements, versioning, building, and publishing. Therefore there is no setup.py or requirements files.
Update __version__ in __about__.py and pyproject.toml::
git commit -m 'build(django-slugify-processor): Tag v0.1.1'
git tag v0.1.1
git push
git push --tags