|
1 | 1 | # How about contributing to Vanus |
2 | 2 |
|
3 | | -## Guides |
| 3 | +Thanks for your focus on how to contribute to Vanus, we expect meet to you in Vanus Community. Any contributions including but |
| 4 | +not only like submit issue/codebase/docs/tests/blogs are welcomed. Contributions to Vanus project are expected to adhere our |
| 5 | +[Code of Conduct](CODE-OF-CONDUCT.md). |
4 | 6 |
|
5 | | -### CLA |
| 7 | +This document outlines some conventions about development workflow, commit message formatting, contact points and other |
| 8 | +resources to make it easier to get your contribution accepted. |
6 | 9 |
|
7 | | -You must sign the Contributor License Agreement(TODO) in order to contribute. |
| 10 | +<!-- TOC --> |
| 11 | +- [How about contributing to Vanus](#how-about-contributing-to-vanus) |
| 12 | +- [Before you get started](#before-you-get-started) |
| 13 | + - [Sign the CLA](#sign-the-cla) |
| 14 | + - [Setting up your development environment(optional)](#setting-up-your-development-environmentoptional) |
| 15 | +- [Issues](#issues) |
| 16 | + - [Choosing](#choosing) |
| 17 | + - [First Contribution](#first-contribution) |
| 18 | + - [Further Contributions](#further-contributions) |
| 19 | + - [Submit an Issue](#submit-an-issue) |
| 20 | +- [Pull Requests](#pull-requests) |
| 21 | + - [Style](#style) |
| 22 | + - [Descriptions](#descriptions) |
| 23 | + - [Testings](#testings) |
| 24 | + - [CI Checking](#ci-checking) |
| 25 | + - [Code Review](#code-review) |
| 26 | +- [Reward](#reward) |
| 27 | +<!-- /TOC --> |
8 | 28 |
|
9 | | -### TODO |
| 29 | +## Before you get started |
10 | 30 |
|
| 31 | +### Sign the CLA |
| 32 | +Click [here](https://cla-assistant.io/linkall-labs/) to sign the CLA, and click the `Sign in with GitHub to agree` button to sign. |
| 33 | + |
| 34 | +What is [CLA](https://en.wikipedia.org/wiki/Contributor_License_Agreement). |
| 35 | + |
| 36 | +### Setting up your development environment(optional) |
| 37 | +If you want to contribute to the codebase of Vanus, it's better to set up a development environment in local first. |
| 38 | + |
| 39 | +1. Install Go version 1.17 or above. Refer to [How to Write Go Code](https://go.dev/doc/code) for more information. |
| 40 | +2. Install [minikube](#)(Users from China mainland may have network issues that need to be addressed for using minikube). |
| 41 | +Vanus is a k8s based project. |
| 42 | +3. Learning [QuickStart](#) how to deploy the Vanus to k8s. Deploying a specified component to minikube for testing. |
| 43 | +Click [here](#) for details. |
| 44 | + |
| 45 | +## Issues |
| 46 | +After set up done, the next step is to choose an issue to address. Issues are all problems of Vanus that need to be addressed. |
| 47 | + |
| 48 | +### Choosing |
| 49 | +You can find all issues in [vanus-issues](https://github.com/linkall-labs/vanus/issues) and choose one which isn't |
| 50 | +assigned to someone. |
| 51 | + |
| 52 | +#### First Contribution |
| 53 | +You can start by finding existing issues with the |
| 54 | +[good-first-issue](https://github.com/linkall-labs/vanus/issues?q=is%3Aopen+is%3Aissue+label%3Agood-first-issue) label. |
| 55 | +These issues are well suited for a new contributor. |
| 56 | + |
| 57 | +#### Further Contributions |
| 58 | +After your first contribution was done, you cloud choose other issues you are interested in to continue contributing. You also |
| 59 | +could create a PR directly to Vanus for fixing or improving. |
| 60 | + |
| 61 | +### Submit an Issue |
| 62 | +Submitting an issue to Vanus is a pretty important contribution. Each issue whatever which about bug/feature request/improvement/ |
| 63 | +blog/looking for help/confusing is ESSENTIAL for making Vanus greater. |
| 64 | + |
| 65 | +You could click the `New issue` button in (issues sub-page)[https://github.com/linkall-labs/vanus/issues] of Vanus project to |
| 66 | +submit an issue for us. |
| 67 | + |
| 68 | +## Pull Requests |
| 69 | +After your work is done, you can create a `Pull Request` by clicking the `New pull request` button in |
| 70 | +[pull requests](https://github.com/linkall-labs/vanus/pulls) page to submit your contribution to Vanus. |
| 71 | +More about `Pull Request` you can find [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests). |
| 72 | + |
| 73 | +There are some constraints that in order to save reviewer's time you need to pay attention to. |
| 74 | + |
| 75 | +### Style |
| 76 | +We strictly check PR title's style. The PR's title follow [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) |
| 77 | + |
| 78 | +- feat: A new feature |
| 79 | +- fix: A bug fix |
| 80 | +- docs: Documentation only changes |
| 81 | +- style: Changes that do not affect the meaning of the code (white space, formatting, missing semi-colons, etc) |
| 82 | +- refactor: A code change that neither fixes a bug nor adds a feature |
| 83 | +- perf: A code change that improves performance |
| 84 | +- test: Adding missing tests or correcting existing tests |
| 85 | +- build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) |
| 86 | +- ci: Changes to CI configuration files and scripts |
| 87 | +- chore: Other changes that don't modify src or test files |
| 88 | +- revert: Reverts a previous commit |
| 89 | + |
| 90 | +Examples: |
| 91 | + |
| 92 | +```text |
| 93 | +test: fix unstable ut of wait.go |
| 94 | +feat: waiting for ack of append from raft |
| 95 | +``` |
| 96 | + |
| 97 | +### Descriptions |
| 98 | +We provide the template for each PR and expect you could explain your PR for what/why/how in detail. |
| 99 | +If the PR wants to address one issue, please link to it. |
| 100 | + |
| 101 | +### Testings |
| 102 | +We hope you can test well your PR before starting the Code Review. If the PR is about a new feature, refactor or bugfix, the related |
| 103 | +Unit tests will be required. |
| 104 | + |
| 105 | +### CI Checking |
| 106 | +There are some automated tasks to ensure each PR's reach high quality in Vanus. These tasks are: |
| 107 | +- License checker: check if a new source code file includes the 'Apache License 2.0' Header. The auto-generated file isn't required. |
| 108 | +- golang-lint: run lint checker to analyze code to find the hidden risk in code. |
| 109 | +- CLA checker: checkout if the contributor signed the Contributor License Agreement. |
| 110 | +- codecov: run all unit tests and generate unit test report. If any case failed or the coverage number is down, the task will be failed. |
| 111 | +- e2e testing: run the e2e testing. Any case that failed will cause the task to failed. |
| 112 | + |
| 113 | +### Code Review |
| 114 | +The Code Review can be started until all checking were passed. Each PR will automatically assign reviewers. After getting |
| 115 | +at least one `Approve` from reviewers, the PR can be merged. |
| 116 | + |
| 117 | +## Reward |
| 118 | +Once your PR has been merged, you become a Vanus Contributor. Thanks for your contribution! please fill the [form](#) to get you reward |
0 commit comments