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.