Skip to content

Commit 64a5a5a

Browse files
authored
docs: contributing.md (#95)
add contributing.md
1 parent eb1cb52 commit 64a5a5a

File tree

1 file changed

+112
-4
lines changed

1 file changed

+112
-4
lines changed

CONTRIBUTING.md

Lines changed: 112 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,118 @@
11
# How about contributing to Vanus
22

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).
46

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.
69

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 -->
828

9-
### TODO
29+
## Before you get started
1030

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

Comments
 (0)