Development

Development

Notes specific to cfxdb: development setup, running the tests, and supported runtimes. The contribution workflow shared by all WAMP projects — GitHub issue first, red → green tests, and the AI-assistance disclosure — is in CONTRIBUTING.md.

Reporting bugs

In addition to what CONTRIBUTING.md asks for, please include:

  • the cfxdb version: python -c "import cfxdb; print(cfxdb.__version__)"

  • the zLMDB / LMDB version, if relevant

Development setup

Development is driven by just and uv; run just to list all recipes. Every recipe takes the name of a managed virtual environment: cpy314, cpy313, cpy312, cpy311 (CPython) or pypy311 (PyPy).

git clone https://github.com/crossbario/cfxdb.git
cd cfxdb
git submodule update --init --recursive
just create cpy314
just install-dev cpy314

Running the tests

just test cpy314            # the test suite
just test pypy311           # the same on PyPy
just check cpy314           # formatting, typing and the other checks

Supported runtimes: CPython 3.11–3.14 and PyPy 3.11.

Code style

ruff enforces formatting and linting (just check-format cpy314); the line length is 119. Add docstrings for public APIs, and type hints for new code (just check-typing cpy314).

Documentation

The documentation is reStructuredText, built with Sphinx: just docs cpy314.