Developer Guide#
uv#
This project uses uv as its package manager, for managing dependencies and ensuring consistent, reproducible environments. See uv’s installation instructions for details on installing it.
Installing developer dependencies#
uv sync --group dev
Building tycmd#
The bundled tycmd binary isn’t committed to this repository - it’s built from source
automatically whenever it’s needed (e.g. by uv sync, uv build, or uv run tox): the first
time, and again whenever the pinned version (_TYCMD_VERSION in tycmd/__init__.py) changes.
Building it requires git and a C++ compiler; on Linux you’ll also need libudev-dev.
Running the test suite#
Tests, linting, and type checking all run through tox (via the tox-uv plugin), across every supported Python version - uv provisions whichever interpreters are missing automatically:
uv run tox -p
Coverage report#
After running the test suite, a merged coverage report is available via:
uv run coverage report
Checking and formatting code#
uv run ruff format
uv run ruff check --fix
uv run mypy
Building the documentation#
uv run sphinx-build -b dirhtml docs/source docs/build
Building the package#
uv build