If you do not have a working Golang environment setup please follow Golang Installation Guide.
Setup your Minio Github Repository
Fork Minio upstream source repository to your own personal repository. Copy the URL for minio from your personal github repo (you will need it for the
git clone command below).
$ mkdir -p $GOPATH/src/github.com/minio $ cd $GOPATH/src/github.com/minio $ git clone <paste saved URL for personal forked minio repo> $ cd minio
Compiling Minio from source
Makefile to wrap around some of redundant checks done through command line.
$ make Checking if proper environment variables are set.. Done ... Checking dependencies for Minio.. Done Installed govet Building Libraries ... ...
Setting up git remote as
$ cd $GOPATH/src/github.com/minio/minio $ git remote add upstream https://github.com/minio/minio $ git fetch upstream $ git merge upstream/master ... ... $ make Checking if proper environment variables are set.. Done ... Checking dependencies for Minio.. Done Installed govet Building Libraries ...
Minio community welcomes your contribution. To make the process as seamless as possible, we ask for the following:
Go ahead and fork the project and make your changes. We encourage pull requests to discuss code changes.
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
If you have additional dependencies for
Miniomanages its dependencies using govendor
go get foo/bar
- Edit your code to import foo/bar
make pkg-add PKG=foo/barfrom top-level directory
If you have dependencies for
Miniowhich needs to be removed
- Edit your code to not import foo/bar
make pkg-remove PKG=foo/barfrom top-level directory
When you're ready to create a pull request, be sure to:
- Have test cases for the new code. If you have questions about how to do it, please ask in your pull request.
- Squash your commits into a single commit.
git rebase -i. It's okay to force update your pull request.
- Make sure
go test -race ./...and
Read Effective Go article from Golang project
Minioproject is fully conformant with Golang style
- if you happen to observe offending code, please feel free to send a pull request