diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..30512e9db --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,107 @@ +# Contribution Guide + +* [Before you get started](#before-you-get-started) + * [Code of Conduct](#code-of-conduct) +* [Your First Contribution](#your-first-contribution) + * [Find a good first topic](#find-a-good-first-topic) +* [Setting up your development environment](#setting-up-your-development-environment) + * [Fork the project](#fork-the-project) + * [Clone the project](#clone-the-project) + * [New branch for a new code](#new-branch-for-a-new-code) + * [Test](#test) + * [Commit and push](#commit-and-push) + * [Create a Pull Request](#create-a-pull-request) + * [Sign the CLA](#sign-the-cla) + * [Get a code review](#get-a-code-review) + +## Before you get started + +### Code of Conduct + +Please make sure to read and observe our [Code of Conduct](./CODE_OF_CONDUCT.md). + +## Your First Contribution + +### Find a good first topic + +You can start by finding an existing issue with the +[good first issue](https://github.com/dgraph-io/badger/labels/good%20first%20issue) or [help wanted](https://github.com/dgraph-io/badger/labels/help%20wanted) labels. These issues are well suited for new contributors. + + +## Setting up your development environment + +Badger uses [`Go Modules`](https://github.com/golang/go/wiki/Modules) +to manage dependencies. The version of Go should be **1.12** or above. + +### Fork the project + +- Visit https://github.com/dgraph-io/badger +- Click the `Fork` button (top right) to create a fork of the repository + +### Clone the project + +```sh +$ git clone https://github.com/$GITHUB_USER/badger +$ cd badger +$ git remote add upstream git@github.com:dgraph-io/badger.git + +# Never push to the upstream master +git remote set-url --push upstream no_push +``` + +### New branch for a new code + +Get your local master up to date: + +```sh +$ git fetch upstream +$ git checkout master +$ git rebase upstream/master +``` + +Create a new branch from the master: + +```sh +$ git checkout -b my_new_feature +``` + +And now you can finally add your changes to project. + +### Test + +Build and run all tests: + +```sh +$ ./test.sh +``` + +### Commit and push + +Commit your changes: + +```sh +$ git commit +``` + +When the changes are ready to review: + +```sh +$ git push origin my_new_feature +``` + +### Create a Pull Request + +Just open `https://github.com/$GITHUB_USER/badger/pull/new/my_new_feature` and +fill the PR description. + +### Sign the CLA + +Click the **Sign in with Github to agree** button to sign the CLA. [An example](https://cla-assistant.io/dgraph-io/badger?pullRequest=1377). + +### Get a code review + +If your pull request (PR) is opened, it will be assigned to one or more +reviewers. Those reviewers will do a code review. + +To address review comments, you should commit the changes to the same branch of +the PR on your fork. diff --git a/README.md b/README.md index ab0a03f29..2a220915b 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ For more details on our version naming schema please read [Choosing a version](# + [Comparisons](#comparisons) + [Benchmarks](#benchmarks) * [Projects Using Badger](#projects-using-badger) + * [Contributing](#contributing) * [Frequently Asked Questions](#frequently-asked-questions) ## Getting Started @@ -787,6 +788,10 @@ Below is a list of known projects that use Badger: If you are using Badger in a project please send a pull request to add it to the list. +## Contributing + +If you're interested in contributing to Badger see [CONTRIBUTING.md](./CONTRIBUTING.md). + ## Frequently Asked Questions ### My writes are getting stuck. Why?