git-bug/CONTRIBUTING.md
sudoforge 2004fa79e6
feat: update references to the git-bug organization (#1249)
The repository was recently moved to the git-bug organization on github.
This change refactors references to the repository to ensure that they
use the updated owner URI.

Closes: #1243
Change-Id: I799712354c6ba25cdd8b06286275850c52efe6ff
2024-08-24 08:08:00 -07:00

3.4 KiB

Contributing

👋 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.

Get the source code

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 git@github.com: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.

Software recommendations

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).

With nix

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.

Without nix

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).