The following is a breakdown of the filesystem hierarchy and what each of the module's is responsible for. Hopefully this gives you a spring board into understanding where to find certain things or where to put things if you are contributing to the project.
src
main
- command line entry point, parsing & sub command handoffcommands
- module collecting command functions with cli concernslib
- library entry point and definition of public interfaceps
- parenting module collecting Patch Stack specific modulesprivate
- internal cmds & shared functionality & utilitiespublic
- library public interfaces for the commands
In order to build git-ps-rs it needs to have the gpgme library installed including the headers, etc.
On macOS this can be installed by brew install gpgme
.
On Ubunto this can be installed by apt-get install libgpgme-dev
.
As part of the Cargo build process it will try and get the correct
configuration informating using gpgme-config
. This dependency is what enables
us to support GPG commit signing.
To build the application for local development and debug simply run the following.
cargo build
To build the application for release run the following.
cargo build --release
To run the test suite simply run the following.
cargo test