Minio
community welcomes your contribution. To make the process as seamless as possible, we recommend you read this contribution guide.
Start by forking the Minio GitHub repository, make changes in a branch and then send a pull request. We encourage pull requests to discuss code changes. Here are the steps in details:
Fork Minio upstream source repository to your own personal repository. Copy the URL of your Minio fork (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
$ cd $GOPATH/src/github.com/minio/minio
$ git remote add upstream https://github.com/minio/minio
$ git fetch upstream
$ git merge upstream/master
...
Before making code changes, make sure you create a separate branch for these changes
$ git checkout -b my-new-feature
After your code changes, make sure
- To add test cases for the new code. If you have questions about how to do it, please ask on our Slack channel.
- To run
make verifiers
- To squash your commits into a single commit.
git rebase -i
. It's okay to force update your pull request. - To run
go test -race ./...
andgo build
completes.
After verification, commit your changes. This is a great post on how to write useful commit messages
$ git commit -am 'Add some feature'
Push your locally committed changes to the remote origin (your fork)
$ git push origin my-new-feature
Pull requests can be created via GitHub. Refer to this document for detailed steps on how to create a pull request. After a Pull Request gets peer reviewed and approved, it will be merged.
Minio
manages its dependencies using govendor. To add a dependency
- Run
go get foo/bar
- Edit your code to import foo/bar
- Run
make pkg-add PKG=foo/bar
from top-level directory
To remove a dependency
- Edit your code to not import foo/bar
- Run
make pkg-remove PKG=foo/bar
from top-level directory
Minio
is fully conformant with Golang style. Refer: Effective Go article from Golang project. If you observe offending code, please feel free to send a pull request or ping us on Slack.