When contributing not obvious change to Thanos repository, please first discuss the change you wish to make via issue or slack, or any other method with the owners of this repository before making a change.
Please follow the code of conduct in all your interactions with the project.
The philosophy of Thanos and our community is borrowing much from UNIX philosophy and the golang programming language.
Adding large new features and components to Thanos should be done by first creating a proposal document outlining the design decisions of the change, motivations for the change, and any alternatives that might have been considered.
console $ mkdir -p $GOPATH/src/github.com/thanos-io $ cd $GOPATH/src/github.com/thanos-io $ git clone https://github.com/<your_github_id>/thanos.git $ cd thanos $ git remote add upstream https://github.com/thanos-io/thanos.git $ git remote update $ git merge upstream/master $ make build $ ./thanos -h
console $ git checkout master $ git remote update $ git merge upstream/master $ git checkout -b <your_branch_for_new_pr> $ make build $ <Iterate your development> $ git push origin <your_branch_for_new_pr>
If you skip all of these, the store specific tests will be run against memory object storage only. CI runs GCS and inmem tests only for now. Not having these variables will produce auth errors against GCS, AWS, Azure or COS tests.
#thanos-prschannel on our slack for review!
The Thanos project uses Go modules to manage dependencies on external packages. This requires a working Go environment with version 1.11 or greater and git installed.
To add or update a new dependency, use the
go get command:
# Pick the latest tagged release. go get example.com/some/module/pkg # Pick a specific version. go get example.com/some/module/pkg@vX.Y.Z
Tidy up the
make deps git add go.mod go.sum git commit
You have to commit the changes to
go.sum before submitting the pull request.