Using the MakefileΒΆ
Added in version 0.9.8.
make.bat on Windows, or the Makefile otherwise, 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.
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.
Changed in version 0.9.9: Removed makefile-usage.rst from version control. The Read the Docs build now generates it automatically.
Added in version 0.9.7: Created make.bat at the project root, such that developers on Windows can achieve a close equivalent of using the Makefile.
Changed in version 0.9.5: Used more of uv in the Makefile.
Added in version 0.9.0: Created a Makefile to simplify development chores.
If you are in powershell, make will not work directly and you must use .\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 v0.9.11.
Note
Generated by scripts/genmakefileusage.sh at 2026-06-05 13:32:27 UTC.
Available targets:
help - Show this help message
test - Run tests, allowing up to 5 failures since any more would likely mean an obvious error
test-with-badges - Run tests more strictly, once with pytest-asyncio-cooperative and once with pytest-asyncio, generating badges and coverage
respectively; use as pre-push step only to update static SVGs
clean - Clean build artifacts and caches
install - Install the package in editable mode with development dependencies; assumes a virtual environment is present
install-system - Install the package in editable mode without a virtual environment
install-silent - The above without output
venv - Create a virtual environment using uv
ruff - Run the ruff linter
watch - Watch for changes and run tests automatically; requires pytest-watch
type-check - Run ty for type checking
rmclog - Remove existing changelog file
clog - Generate changelog from git history to file named ChangeLog
publish - Publish the package to PyPI, assuming version is already bumped, regenerating help files as well
pre-commit - Run pre-commit hooks on all files
Note: Some targets require additional tools to be installed, and some other targets will automatically install the uv package manager.
More targets may be added in the future on popular demand, so do keep updated.