Skip to content

Latest commit

 

History

History
94 lines (59 loc) · 3.37 KB

CONTRIBUTING.md

File metadata and controls

94 lines (59 loc) · 3.37 KB

Contributing

gopass uses GitHub to manage reviews of pull requests.

Steps to Contribute

Should you wish to work on an issue, please claim it first by commenting on the GitHub issue you want to work on it. This will prevent duplicated efforts from contributors.

Please check the help-wanted label to find issues that need help. If you have questions about one of the issues please comment on them and one of the maintainers will try to clarify it.

Pull Request Checklist

  • Use that latest stable Go release

  • Branch from master and, if needed, rebase to the current master branch before submitting your pull request. If it doesn't merge cleanly with master you will be asked to rebase your changes.

  • Commits should be as small as possible, while ensuring that each commit is correct independently.

  • Add tests relevant to the fixed bug or new feature.

Building & Testing

  • Build via go build to create the binary file ./gopass.
  • Run unit tests with: make test
  • Run meta tests with: make codequality
  • Run integration tests make test-integration

If any of the above don't work check out the troubleshooting section.

Troubleshooting

Vendoring

This project use dep to manage it's dependencies. See this gist for a quick overview.

Docker Approach

gopass ships a ready to use Dockerfile based on Alpine. It allows to run tests and build gopass without having to setup a Go stack on the host.

cd $GOPATH/src/github.com/justwatchcom/gopass
make docker-test

You can also run an interactive shell inside the container via:

docker run --rm -ti gopass sh

It is also possible mount a local directory into the container to copy files in and out of it, but please pay attention to permissions.

docker run -it -v "$PWD":/go/src/github.com/justwatchcom/gopass -w /go/src/github.com/justwatchcom/gopass gopass sh

Please note that it is not recommended to actually use gopass inside Docker as there are issues with random number generation in general and GnuPG.

Setup of your local environment

Quick Start:

  • mkdir -p $HOME/go/src
  • export GOPATH=$HOME/go
  • go get -u github.com/justwatchcom/gopass
  • Set $GOROOT depending on your OS and Go installation method:
    • MacOS, Go installed via brew: export GOROOT=/usr/local/opt/go/libexec/
  • Now you should be able to build from the gopass dir:
    • cd $GOPATH/src/github.com/justwatchcom/
    • go build -v