Development documentation¶
Sandbox¶
Use those commands to set up a development sandbox and install the project in editable mode.
git clone https://github.com/crate/cratedb-mcp
cd cratedb-mcp
uv venv --python 3.13 --seed .venv
source .venv/bin/activate
uv pip install --upgrade --editable='.[develop,test]'
Software tests¶
The project uses the poethepoet task runner, which provides convenience entry points for invoking linters and software tests. The top-level one-shot command will invoke both and is also used on CI/GHA.
poe check
To invoke individual software tests for working on the spot, use a
traditional pytest invocation. Examples:
pytest --no-cov tests/test_knowledge.py
pytest --no-cov -k query
Release¶
The project uses versioningit so you don’t need to do any version bumping within files because the version number will be derived from the Git tag.
However, you need to designate the new release within the CHANGES.md file, and commit it. The release procedure currently looks like this:
git commit -m 'Release v0.0.1'
git tag v0.0.1
git push && git push --tags