Skip to content

Commit dceb0a6

Browse files
docs(project): add project contributor specific files and github templates (#78)
Signed-off-by: prateekpandey14 <[email protected]>
1 parent bc57079 commit dceb0a6

10 files changed

+467
-0
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug encountered while operating on cstor-csi volumes
4+
labels: kind/bug
5+
6+
---
7+
8+
<!-- Please use this template while reporting a bug and provide as much info as possible.
9+
Not doing so may result in your bug not being addressed in a timely manner. Thanks!
10+
-->
11+
12+
**Describe the bug:** A clear and concise description of what the bug is.
13+
14+
**Expected behaviour:** A concise description of what you expected to happen
15+
16+
**Steps to reproduce the bug:**
17+
Steps to reproduce the bug should be clear and easily reproducible to help people gain an understanding of the problem
18+
19+
**The output of the following commands will help us better understand what's going on**:
20+
<!-- (Pasting long output into a [GitHub gist](https://gist.github.com) or other [Pastebin](https://pastebin.com/) is fine.) -->
21+
22+
* `kubectl get cstorvolume <pv-name> -n <openebs_namespace> -o yaml`
23+
* `kubectl get cstorvolumeconfig <pv-name> -n <openebs_namespace> -o yaml`
24+
* `kubectl logs sts/openebs-cstor-csi-controller -n kube-system -c openebs-csi-plugin`
25+
* `kubectl logs ds/openebs-cstor-csi-node -n kube-system -c openebs-csi-plugin`
26+
* `kubectl get pods -n <openebs_namespace>`
27+
28+
**Anything else we need to know?:**
29+
Add any other context about the problem here.
30+
31+
**Environment details:**
32+
- OpenEBS version (use `kubectl get po -n openebs --show-labels`):
33+
- Kubernetes version (use `kubectl version`):
34+
- Cloud provider or hardware configuration:
35+
- OS (e.g: `cat /etc/os-release`):
36+
- kernel (e.g: `uname -a`):
37+
- others:
+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea to improve cstor-csi driver
4+
labels: Enhancement
5+
6+
---
7+
8+
**Describe the problem/challenge you have**
9+
[A description of the current limitation/problem/challenge that you are experiencing.]
10+
11+
12+
**Describe the solution you'd like**
13+
[A clear and concise description of what you want to happen.]
14+
15+
16+
**Anything else you would like to add:**
17+
[Miscellaneous information that will assist in solving the issue.]
18+
19+
20+
**Environment:**
21+
- OpenEBS version (use `kubectl get po -n openebs --show-labels`):
22+
- Kubernetes version (use `kubectl version`):
23+
- Cloud provider or hardware configuration:
24+
- OS (e.g: `cat /etc/os-release`):
25+
- kernel (e.g: `uname -a`):
26+
- others:

.github/pull_request_template.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!-- Thanks for sending a pull request! Before submitting:
2+
3+
1. Read our CONTRIBUTING.md guide for detailed contributing guidelines.
4+
2. Rebase your PR if it gets out of sync with master
5+
-->
6+
7+
**What this PR does**:
8+
9+
**Which issue(s) this PR fixes**:
10+
Fixes #<issue number>
11+
12+
13+
**Special notes for your reviewer**:
14+
15+
**Checklist**
16+
- [ ] PR messages has document related information
17+
- [ ] Labelled this PR & related issue with `documentation` tag
18+
- [ ] PR messages has breaking changes related information
19+
- [ ] PR messages has upgrade related information
20+
- [ ] Labelled this PR & related issue with `requires-upgrade` tag
21+
- [ ] Tests updated

CODE_OF_CONDUCT.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Community Code of Conduct
2+
3+
This project follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).

CONTRIBUTING.md

+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# Contributing to CStor-csi driver
2+
3+
CStor-csi driver is an open-source project, and follows the standard GitHub pull requests process to review and accept contributions.
4+
5+
You can contribute to cstor-csi driver by filling an issue at [openebs/cstor-csi](https://github.com/openebs/cstor-csi/issues) or submitting a pull request to this repository.
6+
7+
* If you want to file an issue for bug or feature request, please see [Filing an issue](#filing-an-issue)
8+
* If you are a first-time contributor, please see [Steps to Contribute](#steps-to-contribute) and code standard(code-standard.md).
9+
* If you would like to work on something more involved, please connect with the OpenEBS Contributors. See [OpenEBS Community](https://github.com/openebs/openebs/tree/master/community)
10+
11+
## Filing an issue
12+
### Before filing an issue
13+
14+
If you are unsure whether you have found a bug, please consider asking in the [Slack](https://kubernetes.slack.com/messages/openebs) first. If
15+
the behavior you are seeing is confirmed as a bug or issue, it can easily be re-raised in the [issue tracker](https://github.com/openebs/cstor-csi/issues).
16+
17+
### Filing issue
18+
19+
When filing an issue, make sure to answer these seven questions:
20+
21+
1. What version of cstor-csi are you using?
22+
2. What version of OpenEBS are you using?
23+
5. What did you expect to see?
24+
6. What did you see instead?
25+
7. Logs of `csi-controller/openebs-csi-plugin` pod in kube-system namespace and `cvc-operator` pod in openebs namespace.
26+
27+
#### For maintainers
28+
* We are using labeling for the issue to track it more effectively. The following are valid labels for the issue.
29+
- **Bug** - If the issue is a **bug to existing feature**
30+
- **Enhancement** - If the issue is a **feature request**
31+
- **Maintenance** - If the issue is not related to production code. **build, document or test related issues fall into this category**
32+
- **Question** - If the issue is about **querying information about how the product or build works, or internal of product**.
33+
- **Documentation** - If the issue is about **tracking the documentation work for the feature**. This label should not be applied to the issue of a bug in documentations.
34+
- **Good First Issue** - If the issue is easy to get started with. Please make sure that the issue should be ideal for beginners to dive into the codebase.
35+
- **Design** - If the issue **needs a design decision prior to code implementation**
36+
- **Duplicate** - If the issue is **duplicate of another issue**
37+
38+
* We are using following labels for issue work-flow:
39+
- **Backlog** - If the issue has **not been planned for current release cycle**
40+
- **Release blocker** - If the issue is **blocking the release**
41+
- **Priority: high** - issue with this label **should be resolved as quickly as possible**
42+
- **Priority: low** - issue with this label **won’t have the immediate focus of the core team**
43+
44+
**If you want to introduce a new label then you need to raise a PR to update this document with the new label details.**
45+
46+
## Steps to Contribute
47+
CStor-csi is an Apache 2.0 Licensed project and all your commits should be signed with Developer Certificate of Origin. See [Sign your work](#sign-your-work).
48+
49+
For setting up a development environment on your local machine, see the detailed instructions [here](docs/developer-setup.md).
50+
51+
* Find an issue to work on or create a new issue. The issues are maintained at [openebs/cstor-csi](https://github.com/openebs/cstor-csi/issues). You can pick up from a list of [good-first-issues](https://github.com/openebs/cstor-csi/labels/good%20first%20issue).
52+
* Claim your issue by commenting your intent to work on it to avoid duplication of efforts.
53+
* Fork the repository on GitHub.
54+
* Create a branch from where you want to base your work (usually master).
55+
* Commit your changes by making sure the commit messages convey the need and notes about the commit.
56+
* Please make sure than your code is aligned with the standard mentioned at [code-standard](docs/code-standard.md).
57+
* Verify that your changes pass `make lint` and `make test`
58+
* Push your changes to the branch in your fork of the repository.
59+
* Submit a pull request to the original repository. See [Pull Request checklist](#pull-request-checklist)
60+
61+
## Pull Request Checklist
62+
* Rebase to the current master branch before submitting your pull request.
63+
* Commits should be as small as possible. Each commit should follow the checklist below:
64+
- For code changes, add tests relevant to the fixed bug or new feature.
65+
- Commit header (first line) should convey what changed
66+
- Commit body should include details such as why the changes are required and how the proposed changes help
67+
- DCO Signed, please refer [signing commit](code-standard.md/sign-your-commits)
68+
* If your PR is about fixing an issue or new feature, make sure you add a change-log. Refer [Adding a Change log](code-standard.md/adding-a-changelog)
69+
* PR title must follow convention: `<type>(<scope>): <subject>`.
70+
71+
For example:
72+
```
73+
feat(metrics): support for raw block device metrics
74+
^--^ ^-----^ ^-----------------------^
75+
| | |
76+
| | +-> PR subject, summary of the changes
77+
| |
78+
| +-> scope of the PR, i.e. component of the project this PR is intend to update
79+
|
80+
+-> type of the PR.
81+
```
82+
83+
Most common types are:
84+
* `feat` - for new features, not a new feature for the build script
85+
* `fix` - for bug fixes or improvements, not a fix for the build script
86+
* `chore` - changes not related to production code
87+
* `docs` - changes related to documentation
88+
* `style` - formatting, missing semicolons, linting fix, etc; no significant production code changes
89+
* `test` - adding missing tests, refactoring tests; no production code change
90+
* `refactor` - refactoring production code, eg. renaming a variable or function name, there should not be any significant production code changes
91+
* `cherry-pick` - if PR is merged in the master branch and raised to release branch(like v1.9.x)
92+
93+
## Code Reviews
94+
All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult [GitHub Help](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) for more information on using pull requests.
95+
96+
* If your PR is not getting reviewed or you need a specific person to review it, please reach out to the OpenEBS Contributors. See [OpenEBS Community](https://github.com/openebs/openebs/tree/master/community)
97+
98+
* If PR is fixing any issues from [github-issues](github.com/openebs/cstor-csi/issues) then you need to mention the issue number with a link in PR description. like: _fixes https://github.com/openebs/cstor-csi/issues/56_
99+
100+
* If PR is for bug-fix and release branch(like v1.9.x) is created then cherry-pick for the same PR needs to be created against the release branch. Maintainer of the Project needs to make sure that all the bug fixes after RC release are cherry-picked to release branch.
101+
102+
### For maintainers
103+
* We are using labeling for PR to track it more effectively. The following are valid labels for the PR.
104+
- **Bug** - if PR is a **bug to existing feature**
105+
- **Enhancement** - if PR is a **feature request**
106+
- **Maintenance** - if PR is not related to production code. **build, document or test related PR falls into this category**
107+
- **Documentation** - if PR is about **tracking the documentation work for the feature**. This label should not be applied to the PR fixing bug in documentations.
108+
109+
* We are using the following label for PR work-flow:
110+
- **DO NOT MERGE** - if PR is about critical changes and no scope of testing before release branch creation
111+
- **On Hold** - if PR doesn't have sufficient changes, all the scenarios are not covered or changes are requested from contributor
112+
- **Release blocker** - if PR is created for the issue having label **Release blocker**
113+
- **Priority: high** - if PR is created for the issue having label **Priority: high**
114+
- **Priority: low** - if PR is created for the issue having label **Priority: low**
115+
116+
* Maintainer needs to make sure that appropriate milestone and project tracker is assigned to the PR.
117+
118+
**If you want to introduce a new label then you need to raise a PR to update this document with the new label details.**

GOVERNANCE.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This is a OpenEBS sub project and abides by the
2+
[OpenEBS Project Governance](https://github.com/openebs/openebs/blob/master/GOVERNANCE.md).
3+

MAINTAINERS

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Official list of OpenEBS Maintainers.
2+
#
3+
# Names added to this file should be in the following format:
4+
# Individual's name,@githubhandle, Company Name
5+
#
6+
# Please keep the below list sorted in ascending order.
7+
#
8+
#Maintainers
9+
"Kiran Mova",@kmova,MayaData
10+
"Payes Anand",@payes,MayaData
11+
"Prateek Pandey",@prateekpandey14,MayaData
12+
"Vishnu Itta",@vishnuitta,MayaData
13+
14+
#Reviewers
15+
"Kiran Mova",@kmova,MayaData
16+
"Payes Anand",@payes,MayaData
17+
"Prateek Pandey",@prateekpandey14,MayaData
18+
"Utkarsh Mani Tripathi",@utkarshmani1997,MayaData
19+
"Vishnu Itta",@vishnuitta,MayaData

RELEASE.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Release Process
2+
CStor-csi follows a monthly release cadence. The scope of the release is determined by contributor availability. The scope is published in the [Release Tracker Projects](https://github.com/orgs/openebs/projects).
3+
4+
## Release Candidate Verification Checklist
5+
6+
Every release has release candidate builds that are created starting from the third week into the release. These release candidate builds help to freeze the scope and maintain the quality of the release. The release candidate builds will go through:
7+
- Platform Verification
8+
- Regression and Feature Verification Automated tests.
9+
- Exploratory testing by QA engineers
10+
- Strict security scanners on the container images
11+
- Upgrade from previous releases
12+
- Beta testing by users on issues that they are interested in.
13+
- Dogfooding on OpenEBS workload and e2e infrastructure clusters.
14+
15+
If any issues are found during the above stages, they are fixed and a new release candidate builds are generated.
16+
17+
Once all the above tests are completed, a main release tagged image is published.
18+
19+
## Release Tagging
20+
21+
CStor-csi is released as a container image with a versioned tag.
22+
23+
Before creating a release, the repo owner needs to create a separate branch from the active branch, which is `master`. Name of the branch should follow the naming convention of `v.1.9.x` if the release is for v1.9.0.
24+
25+
Once the release branch is created, changelog from `changelogs/unreleased` needs to be moved to release specific folder `changelogs/v1.9.x`, if release branch is `v1.10.x` then folder will be `changelogs/v1.10.x`.
26+
27+
The format of the release tag is either "Release-Name-RC1" or "Release-Name" depending on whether the tag is a release candidate or a release. (Example: v1.9.0-RC1 is a GitHub release tag for the cstor-csi release build. v1.9.0 is the release tag that is created after the release criteria are satisfied by the cstor-csi builds.)
28+
29+
Once the release is triggered, Travis build process has to be monitored. Once Travis build is passed images are pushed to docker hub and quay.io. Images can be verified by going through docker hub and quay.io. Also the images shouldn't have any high-level vulnerabilities.
30+
31+
Images are published at the following location:
32+
https://quay.io/repository/openebs/cstor-csi?tab=tags
33+
https://hub.docker.com/r/openebs/cstor-csi/tags
34+
35+
Once a release is created, update the release description with the changelog mentioned in `changelog/v1.9.x`. Once the changelogs are updated in the release, the repo owner needs to create a PR to `master` with the following details:
36+
1. update the changelog from `changelog/v1.9.x` to `cstor-csi/CHANGELOG.md`
37+
2. If a release is not an RC tag then PR should include the changes to remove `changelog/v1.9.x` folder.
38+
3. If a release is an RC tag then PR should include the changes to remove the changelog from `changelog/v1.9.x` which are already mentioned in `cstor-csi/CHANGELOG.md` as part of step number 1.

docs/code-standard.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Code Standards
2+
3+
## Sign your commits
4+
5+
We use the Developer Certificate of Origin (DCO) as an additional safeguard for the OpenEBS projects. This is a well established and widely used mechanism to assure that contributors have confirmed their right to license their contribution under the project's license. Please read [dcofile](https://github.com/openebs/openebs/blob/master/contribute/developer-certificate-of-origin). If you can certify it, then just add a line to every git commit message:
6+
7+
````
8+
Signed-off-by: Random J Developer <[email protected]>
9+
````
10+
11+
Use your real name (sorry, no pseudonyms or anonymous contributions). The email id should match the email id provided in your GitHub profile.
12+
If you set your `user.name` and `user.email` in git config, you can sign your commit automatically with `git commit -s`.
13+
14+
## Verifying code style
15+
16+
We are using [golangci-lint](https://github.com/golangci/golangci-lint) to verify the linting errors. Make sure that your changes pass linting check by executing `make lint`.
17+
18+
## Adding a changelog
19+
If PR is about adding a new feature or bug fix then the Author of the PR is expected to add a changelog file with their pull request. This changelog file should be a new file created under the `changelogs/unreleased` folder. Name of this file must be in `pr_number-username` format and contents of the file should be the one-liner text which explains the feature or bug fix.
20+
21+
```sh
22+
cstor-csi/changelogs/unreleased <- folder
23+
14-github_user_name <- file
24+
```

0 commit comments

Comments
 (0)