Contributor guidelines

Developer prerequisites

pre-commit

Refer to pre-commit for installation instructions.

TL;DR:

curl -LsSf https://astral.sh/uv/install.sh | sh  # Install uv
uv tool install pre-commit  # Install pre-commit
pre-commit install  # Install pre-commit hooks

Installing pre-commit will ensure you adhere to the project code quality standards.

Code standards

ruff and doc8 will be automatically triggered by pre-commit.

ruff is configured to do the job of black and isort as well.

Still, if you want to run checks manually:

make doc8
make ruff

Requirements

Requirements are compiled using uv.

make compile-requirements

Virtual environment

You are advised to work in virtual environment.

TL;DR:

make install

Documentation

Check the documentation.

Testing

Check testing.

If you introduce changes or fixes, make sure to test them locally:

make test

In any case, GitHub Actions will catch potential errors, but testing locally catches things upfront.

Releasing

Sequence of steps:

  1. Clean and build

    make clean
    make build
    
  2. Check the build

    make check-build
    
  3. Test release on test.pypi.org. Make sure to check it before moving forward.

    make test-release
    
  4. Release

    make release
    

Pull requests

You can contribute to the project by making a pull request.

For example:

  • To fix documentation typos.

  • To improve documentation (for instance, to add new recipe or fix an existing recipe that doesn’t seem to work).

  • To introduce a new feature (for instance, add support for a non-supported file type).

Good to know:

  • This library consists of a single git_dump_diff.py module. That module is dependency free. Do not submit pull requests splitting the git_dump_diff.py module into small parts. Pull requests with external dependencies in git-dump-diff module will not be accepted either.

  • Currently, all integration tests are running in the CI against the latest version of Python.

General list to go through:

  • Does your change require documentation update?

  • Does your change require update to tests?

When fixing bugs (in addition to the general list):

  • Make sure to add regression tests.

When adding a new feature (in addition to the general list):

  • Make sure to update the documentation (check whether the installation and features require changes).

GitHub Actions

Only non-EOL versions of Python and software git-dump-diff aims to integrate with are supported.

On GitHub Actions includes tests for more than 40 different variations of Python versions and integration packages. Future, non-stable versions of Python are being tested too, so that new features/incompatibilities could be seen and adopted early.

For the list of Python versions supported by GitHub, see GitHub Actions versions manifest.

Questions

Questions can be asked on GitHub discussions.

Issues

For reporting a bug or filing a feature request, use GitHub issues.

Do not report security issues on GitHub. Check the support section.