Skip to content

Contributing

Contributions are welcome. The best contributions are small, tested, and easy to review.

Set Up a Development Environment

git clone https://github.com/Jianhua-Wang/credtools.git
cd credtools
uv sync

If you do not use uv:

python -m pip install -e ".[dev]"

Run Tests

uv run pytest

Run a smaller test file while developing:

uv run pytest tests/test_qc.py

Format and Lint

Use the project configuration in pyproject.toml and setup.cfg.

uv run black credtools tests
uv run isort credtools tests
uv run flake8 credtools tests

Build the Docs

uv run mkdocs build

Docs should be written in clear English. Prefer tutorial language over academic language. Introduce a concept before asking the reader to use it.

Pull Request Checklist

  • The change is scoped to one clear problem.
  • Tests cover the behavior change.
  • CLI behavior is documented when a command changes.
  • New public functions have docstrings.
  • The docs build with mkdocs build.

Reporting Issues

Open an issue on GitHub and include:

  • CREDTOOLS version,
  • Python version,
  • operating system,
  • command you ran,
  • short input description,
  • the relevant log or traceback.

Small reproducible examples are the fastest to debug.