Contributing

Testing

CL-Git uses FiveAM as the testing harness and inferior shell to call lsof to check for file descriptor leaks.

follow the Roswell install documentation.

install lsof:

apt install lsof

install SBCL and run tests.:

ros install sbcl

./run-tests.lisp

CI Builds

CI builds are done with Earthly it bulids and tests using buildkit (either docker or podman containers), once it is installed, you can list the build targets like this:

% earthly ls
+base
+build
+deps
+libgit2
+test-libgit2-0.27-sbcl
+test-libgit2-0.28-sbcl
+test-libgit2-1.0-sbcl
+test-libgit2-1.1-sbcl
+test-libgit2-1.2-sbcl
+test-libgit2-1.3-sbcl
+test-libgit2-1.4-sbcl
+test-libgit2-1.5-ccl
+test-libgit2-1.5-clasp
+test-libgit2-1.5-ecl
+test-libgit2-1.5-sbcl
+test-libgit2-ccl
+test-libgit2-clasp
+test-libgit2-ecl
+test-libgit2-sbcl

All the targets with the format test-libgit2-<version>-<lisp> can be executed to test that version combination.

To run a build you would use a command like:

earthly +test-libgit2-1.5-sbcl

Currently SBCL is the only working Lisp, but others are there in case we want to extend our support to them.

Documentation

To build the documentation you need sphinxcontrib.cldomain which depends on:

build documentation:

./doc/build.sh

The compiled documentation is output into doc/build/html.