Skip to content

Latest commit

 

History

History
84 lines (59 loc) · 2.76 KB

File metadata and controls

84 lines (59 loc) · 2.76 KB

git2cpp

GithubActions Documentation Status Codecov

This is a C++ wrapper of libgit2 to provide a command-line interface (CLI) to git functionality. The intended use is in WebAssembly in-browser terminals (see cockle and JupyterLite terminal projects) but it can be compiled and used on any POSIX-compliant system.

See overview.md for further details.

Development workflow

Build

Developer's workflow using micromamba to manage the dependencies:

micromamba create -f dev-environment.yml
micromamba activate git2cpp-dev
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
cd build
make -j8

The git2cpp executable can then be run, e.g. ./git2cpp -v.

Test

The CLI is tested using python. From the top-level directory:

pytest -v

Some tests access the private repository at https://github.com/QuantStack/git2cpp-test-private using a fine-grained github Personal Access Token (PAT). These tests are skipped by default. To run them you will need to obtain the PAT from one of the maintainers, and run the tests as follows:

GIT2CPP_TEST_PRIVATE_TOKEN=<this-is-the-personal-access-token> pytest -v

pre-commit

pre-commit runs automatically on git commit. To run it manually use:

pre-commit run --all-files

WebAssembly build and deployment

The wasm directory contains everything needed to build the local git2cpp source code as an WebAssembly Emscripten-forge package, create local cockle and JupyterLite terminal deployments that run in a browser, and test the WebAssembly build.

See the README.md in the wasm directory for further details.

The latest cockle and JupyterLite terminal deployments using git2cpp are available at https://quantstack.net/git2cpp

Documentation

The project documentation is generated from the git2cpp help pages. To build the documentation locally first build git2cpp as usual as described above, then install the documentation dependencies:

micromamba install myst-parser sphinx sphinx-book-theme

and build the documentation:

cd docs
make html

The top-level documentation page will be docs/_build/html/index.html