Skip to content

Contributing

Thanks for your interest in improving db2md.

Development setup

Requirements: Python ≥ 3.14 and uv.

git clone https://github.com/edwinalkins/db2md.git
cd db2md
uv sync --all-extras --group dev

Checks

Run the same checks as CI before opening a pull request:

uv run ruff check src tests
uv run ruff format src tests
uv run mypy src
uv run pytest

Documentation

uv sync --group docs
uv run mkdocs serve

Then open http://127.0.0.1:8000.

uv run mkdocs build --strict

Guidelines

  • Keep the public API small (list_databases, generate_schema_markdown, export_schemas, models).
  • Prefer dialect-aware behaviour in inspector.py / urls.py over special cases in the CLI.
  • Add or update tests for behaviour changes.
  • Use conventional commits (feat, fix, docs, test, chore, …).

Pull requests

  1. Fork and create a focused branch.
  2. Make sure the checks above pass.
  3. Describe the change and how you tested it.

Releasing (PyPI)

Publishing runs on GitHub Release via Trusted Publishing (publish.yml).

  1. Configure a trusted publisher on PyPI for db2md → owner edwinalkins, workflow publish.yml, environment pypi.
  2. Create a GitHub Environment named pypi.
  3. Bump the version, update the changelog, publish a GitHub Release (e.g. tag v0.1.0).

Security

See SECURITY.md for private vulnerability reporting.