Thank you for your interest in making RAG pipelines safer!
The project uses uv for dependency management. It is extremely fast and manages Python versions automatically.
-
Install
uv:# On macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # On Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
-
Clone the repository:
git clone https://github.com/deconvolute-labs/deconvolute.git cd deconvolute -
Create the environment and install all dependencies (including dev tools):
uv sync --all-extras
-
Activate the environment:
# macOS/Linux source .venv/bin/activate # Windows .venv\Scripts\activate
-
Verify installation:
# Should run without errors pytest --version python -c "import deconvolute; print(deconvolute.__version__)"
TODO
We enforce high code quality using Ruff (linting/formatting) and Mypy (static typing).
These checks run in CI, so please run them locally before pushing. You can run tools directly via uv run (no activation needed) or inside the activated shell.
Ruff checks for bugs, security issues, and formatting violations.
# Check for errors (Read-only)
uv run ruff check .
# Auto-fix simple errors and format code
uv run ruff check --fix .
uv run ruff format .Mypy ensures you aren't passing the wrong types to functions.
uv run mypy .# Run all tests
uv run pytest
# Run tests with coverage report
uv run pytest --cov=deconvoluteWe follow Conventional Commits. This allows us to generate changelogs automatically.
feat: add new scanner (Adds functionality)fix: handle empty PDF inputs (Fixes a bug)docs: update README quickstart (Documentation only)chore: update dependencies (Maintenance)test: add regression vectors (Tests only)
-
Generate Changelog: Run the following command locally to generate the changelog for the new version (e.g.
0.1.0):uv run git-cliff --tag 0.1.0 --output CHANGELOG.md
-
Bump Version: Update
__version__string insrc/deconvolute/__init__.py. -
Verify MCP SDK Version: Check the latest version. If necessary, update it in the
__mcp_supported_version__string insrc/deconvolute/__init__.pyand in theReadme.mdbadge. -
Commit & Push: Commit the
CHANGELOG.mdand__init__.pyfiles, then push tomain.git commit -am "chore(release): prepare v0.1.0" git push origin main -
Trigger Release:
- Go to the Actions tab on GitHub.
- Select Release to TestPyPI (or Release to PyPI once configured).
- Click Run workflow and enter the version number (e.g.
0.1.0).