👋 Hey there! Thanks for considering taking the time to contribute to
git-bug
. This page contains some general guidelines, and instructions for
getting started as a contributor to this project.
Clone this repository to your system in a way you're comfortable with. Below, we
show a command that [clones the repository][how-to-clone] using SSH, and places
it in ~/code/git-bug
.
git clone [email protected]:git-bug/git-bug ~/code/git-bug
Important
If you wish to clone the repository to another location on disk, change
~/code/git-bug
to your desired path. The rest of this documentation will
refer to ~/code/git-bug
in all instances, so make sure you change them
there, too.
While you can install Golang and hack on this project on your own, you're likely to have a better experience if you install the following software.
nix
is used in this repository to provide a common development
shell, with a complete set of the appropriate version of the tools used to work
on git-bug
.
You can install nix
by following the official instructions, but
we recommend adding some additional flags in order to enable some (technically
experimental, but largely stable) configuration options:
curl -L https://nixos.org/nix/install | sh -s -- --daemon --nix-extra-conf-file <( \
cat << EOF | sed -e 's/^ *//'
experimental-features = nix-command flakes
EOF
)
Tip
Make sure you read the prompts from the installation script carefully. After installation, you'll need to start a new shell.
direnv
is used to automatically activate the development
shell (because of the .envrc
in the root of this repository).
Important
If you are not comfortable with nix
, we recommend [installing direnv
without nix][install/install-direnv-without-nix].
nix --extra-experimental-options 'flakes nix-command' profile install nixpkgs\#direnv
There's a second step that is critical -- be sure to configure your shell.
You can install direnv
by following the official
instructions. There's a second step that is critical -- be sure
to configure your shell.
After installation, you'll need to start a new shell.
If you install direnv
, it is recommended to set the following configuration
options to improve your user experience. At the time of writing, these go in
~/.config/direnv/direnv.toml
.
This configuration, namely, the whitelist.exact
property, will ensure that
direnv
always automatically sources the .envrc
in this repository.
hide_env_diff = true
warn_timeout = 0
[whitelist]
exact = ["~/code/git-bug/.envrc"]
Important
Make sure you change the ~/code/git-bug
portion of the string to the
appropriate path (the path that you cloned this repository to on your system).