Skip to content

Contributor Guide

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:

1
2
git clone https://github.com/Archmonger/ServeStatic.git
cd ServeStatic

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 and Django 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_get_js_static_file Run only a specific test
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 precommit:check Run all pre-commit checks configured within this repository
hatch run precommit:update Update the pre-commit hooks configured within this repository
hatch run pyproject:format Format the pyproject.toml file using pyproject-fmt
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 run scripts\validate_changelog.py Check if the changelog meets the Keep A Changelog specification

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 for ServeStatic.

You can type hatch --help to see all available commands.