The development version

Unit tests

$ git clone git://github.com/libgit2/pygit2.git
$ cd pygit2
$ python setup.py build_ext --inplace
$ pytest test

Coding style: documentation strings

Example:

def f(a, b):
    """
    The general description goes here.

    Returns: bla bla.

    Parameters:

    a : <type>
        Bla bla.

    b : <type>
        Bla bla.

    Examples::

        >>> f(...)
    """

Building the docs

To build the documentation first you need to install sphinx-rtd-theme:

$ pip install sphinx-rtd-theme

Then you have to build pygit2 inplace:

$ make

And finally you can build the documentation:

$ make -C docs html

Running Valgrind

Step 1. Build libc and libgit2 with debug symbols. See your distribution documentation.

Step 2. Build Python to be used with valgrind, e.g.:

$ ./configure --prefix=~/Python-3.8.15 --without-pymalloc --with-pydebug --with-valgrind
$ make
$ make install
$ export PYTHONBIN=~/Python-3.8.15/bin

Step 3. Build pygit2 with debug symbols:

$ rm build -rf && $PYTHONBIN/python3 setup.py build_ext --inplace -g

Step 4. Install requirements:

$ $PYTHONBIN/python3 setup.py install
$ pip insall pytest

Step 4. Run valgrind:

$ valgrind -v --leak-check=full --suppressions=misc/valgrind-python.supp $PYTHONBIN/pytest &> valgrind.txt