Using the MakefileΒΆ

make.bat on Windows, or Makefile on *nix, is often a handy companion in development. It makes development less dry, repetitive and error-prone, and the process as a whole more smooth-sailing. Tasks are effectively automated using the make <target> syntax.

This is partly also to compensate for the lack of a setup.py after adaptation of the standardized pyproject.toml; see PEP 621 and the official PyPA guide for more. Note that the Makefile is not intended to be used by end users, but rather by developers, and it obviously requires GNU Make.

If you are in PowerShell, make will not work directly and you must run .\make or .\make.bat instead, which is more verbose; thus, you are strongly advised to develop in cmd.exe, the traditional command prompt.

Below is the Makefile help as of asyncutils v1.1.0:

Available targets:
 audit-deps     - Run a security audit on all (optional) dependencies using uv
 build-docs     - Build a preview of the documentation in docs/build/html, exiting with a non-zero status on any warning
 changelog      - Generate a compact changelog from Git history and print it in the terminal with colour
 clean          - Clean development artifacts and caches, including the __pycache__, build and dist directories, generated files, and coverage results
 gen-badges     - Run the test suite twice, exiting on any failure; generate static badges on success
 gen-baseline   - Regenerate the detect-secrets baseline at the project root
 help           - Show this help message
 install        - Install the package in editable mode with development dependencies; assumes a virtual environment is present
 install-silent - Install without output
 pre-commit     - Run pre-commit hooks on all files, assuming the executable pre-commit on PATH points to pre-commit
 release        - Call the GitHub CLI (gh) to make an release interactively
 ruff           - Run the ruff linter
 spellcheck     - Run CSpell
 test           - Run tests, allowing up to AUTILSTESTMAXFAIL failures (default 3) since any more would likely mean an obvious error
 type-check     - Run ty for type checking
 venv           - Create a virtual environment using uv
 watch          - Watch for changes and run tests automatically using pytest-watch, assuming it is installed
Note: Some targets will automatically install or update the uv package manager. Targets may be added on popular demand.

Note

Generated by scripts/unix/genmakefileusage.sh in Read the Docs latest build at 2026-07-11 10:54:00 UTC.