|
| 1 | +# Contributing to MayaStor |
| 2 | + |
| 3 | +We're excited to have you interested in contributing to MayaStor! |
| 4 | + |
| 5 | +> *Disclaimer:* MayaStor is a **beta** project, and contributors at this stage of the project |
| 6 | +> lifecycle may experience minor hurdles to contribution. |
| 7 | +> |
| 8 | +> **We want to overcome these. Please report them.** |
| 9 | +
|
| 10 | +If you have any questions, our ecosystem can be connected with over [Discord][mayastor-discord] |
| 11 | +(for development) and [Slack][mayastor-slack] ([invite][mayastor-slack-inviter], for support). |
| 12 | + |
| 13 | +Our interactions here are governed by the [CNCF Code of Conduct](CODE-OF_CONDUCT.md). |
| 14 | + |
| 15 | +## Development Environment |
| 16 | + |
| 17 | +Consult the [`doc/build.md`](doc/build.md) for a complete guide to getting started contributing |
| 18 | +to MayaStor. |
| 19 | + |
| 20 | +## Issues & Pull Requests |
| 21 | + |
| 22 | +### Reporting Bugs |
| 23 | + |
| 24 | +You would be **the best** if you reported complete, well described, reproducable bugs to us. If |
| 25 | +you can't, that's ok. Do your best. |
| 26 | + |
| 27 | +Our [Bug Report][issue-bug-report] template includes instructions to get the the information we |
| 28 | +need from you. |
| 29 | + |
| 30 | +### Requesting new features |
| 31 | + |
| 32 | +You are invited to open *complete, well described* issues proposing new features. While MayaStor |
| 33 | +has no formal RFC process at this time, the [Rust RFC template][rust-rfc-template] is an |
| 34 | +excellent place to derive your issue description from. |
| 35 | + |
| 36 | +**You should indicate if you are able to complete and support features you propose.** |
| 37 | + |
| 38 | +### Committing |
| 39 | + |
| 40 | +Start work off the `develop` branch. **Not `master`.** |
| 41 | + |
| 42 | +[bors][bors] will merge your commits. We do not do [*squash merges*][squash-merges]. |
| 43 | + |
| 44 | +Each commit message must adhere to [Conventional Commits][conventional-commits]. You can use |
| 45 | +[`convco`][tools-convco] if you would prefer a tool to help. |
| 46 | + |
| 47 | +It is absolutely fine to force push your branch if you need. Feel free to rewrite commit history |
| 48 | +of your pull requests. |
| 49 | + |
| 50 | +### Reviews |
| 51 | + |
| 52 | +The review process is governed by [bors][bors]. |
| 53 | + |
| 54 | +Pull requests require at least 1 approval from maintainer or SIG member. |
| 55 | + |
| 56 | +Once review is given, Maintainers and SIG members may indicate merge readiness with the comment |
| 57 | +`bors merge`. |
| 58 | + |
| 59 | +**Please do not hit the 'Update Branch' button.** The commit message is not conventional, |
| 60 | +[bors][bors] will yell at you. Let [bors][bors] handle it, or rebase it yourself. |
| 61 | + |
| 62 | +## Organization |
| 63 | + |
| 64 | +Our maintainers are: |
| 65 | + |
| 66 | +* [@gila][members-gila] - [@mayadata-io][maya-data] |
| 67 | +* [@jkryl][members-jkryl] - [@mayadata-io][maya-data] |
| 68 | +* [@GlennBullingham][members-GlennBullingham] - [@mayadata-io][maya-data] |
| 69 | + |
| 70 | +Our Special Interest Groups (SIGs) are: |
| 71 | + |
| 72 | +* Dataplane |
| 73 | + + [@hoverbear][members-hoverbear] - [@mayadata-io][maya-data] & |
| 74 | + [@Hoverbear-Consulting](https://github.com/Hoverbear-Consulting) |
| 75 | + + [@mtzaurus][members-mtzaurus] - [@mayadata-io][maya-data] |
| 76 | + + [@jonathan-teh][members-jonathan-teh] - [@mayadata-io][maya-data] |
| 77 | +* e2e-testing |
| 78 | + + [@chriswldenyer][members-chriswldenyer] - [@mayadata-io][maya-data] |
| 79 | + + [@blaisedias][members-blaisedias] - [@mayadata-io][maya-data] |
| 80 | +* Control Plane |
| 81 | + + [@tiagolobocastro][members-tiagolobocastro] - [@mayadata-io][maya-data] |
| 82 | + + [@paulyoong][members-paulyoong] - [@mayadata-io][maya-data] |
| 83 | + |
| 84 | +Former SIGs (and their members) are: |
| 85 | + |
| 86 | +* None, yet! |
| 87 | + |
| 88 | +### Organization FAQs |
| 89 | + |
| 90 | +* **What is a *Maintainer*?** |
| 91 | + |
| 92 | + Maintainers are the project architects. They have the final say on what features get accepted, |
| 93 | + what code gets merged, when releases are cut, and how the project evolves. |
| 94 | + |
| 95 | + Maintainers **must** make decisions unanimously, no majorities, no votes. |
| 96 | + |
| 97 | +* **What is a *Special Interest Group (SIG)*?** |
| 98 | + |
| 99 | + SIGs are small ephemeral teams (max 7) working on a general topic. |
| 100 | + |
| 101 | + They may change at any time, and have no strict definition. |
| 102 | + |
| 103 | + SIGs may be created, empowered, and destroyed by the maintainers at any time. |
| 104 | + |
| 105 | +* **Are there other levels/roles/organization structure?** |
| 106 | + |
| 107 | + No. We want to focus on building MayaStor. |
| 108 | + |
| 109 | + It's preferable that we flow like water as opposed to become a rue goldberg machine of rules. |
| 110 | + |
| 111 | +* **May I join a SIG? Become a maintainer?** |
| 112 | + |
| 113 | + Of course, we'd love that! |
| 114 | + |
| 115 | + Once you have a bit of contribution history with the project you will probably already find |
| 116 | + yourself working with a SIG, so ask, and they'll include you. |
| 117 | + |
| 118 | + Once you have acted as part of multiple SIGs, contributed at least one major feature, and |
| 119 | + resolved multiple bug reports, our maintainers may choose to include you in their midst. |
| 120 | + |
| 121 | +[maya-data]: https://github.com/mayadata-io/ |
| 122 | +[mayastor-discord]: https://discord.gg/nhpyMeJCHE |
| 123 | +[mayastor-slack]: https://kubernetes.slack.com/messages/openebs |
| 124 | +[mayastor-slack-inviter]: https://slack.k8s.io/ |
| 125 | +[members-gila]: https://github.com/gila |
| 126 | +[members-jkryl]: https://github.com/jkryl |
| 127 | +[members-GlennBullingham]: https://github.com/GlennBullingham |
| 128 | +[members-hoverbear]: https://github.com/hoverbear |
| 129 | +[members-tiagolobocastro]: https://github.com/tiagolobocastro |
| 130 | +[members-mtzaurus]: https://github.com/mtzaurus |
| 131 | +[members-jonathan-teh]: https://github.com/jonathan-teh |
| 132 | +[members-paulyoong]: https://github.com/paulyoong |
| 133 | +[members-chriswldenyer]: https://github.com/chriswldenyer |
| 134 | +[members-blaisedias]: https://github.com/blaisedias |
| 135 | +[rust-rfc-template]: https://github.com/rust-lang/rfcs/blob/master/0000-template.md |
| 136 | +[issue-bug-report]: https://github.com/openebs/Mayastor/issues/new?labels=new&template=bug_report.md |
| 137 | +[bors]: https://bors.tech/ |
| 138 | +[squash-merges]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-request-merges#squash-and-merge-your-pull-request-commits |
| 139 | +[conventional-commits]: https://www.conventionalcommits.org/en/v1.0.0/ |
| 140 | +[tools-convco]: https://convco.github.io/ |
0 commit comments