|
| 1 | +--- |
| 2 | +title: Advice for new contributors |
| 3 | +description: Are you a contributor and not sure what to do? Want to help but just don't know how to get started? This is the section for you. |
| 4 | +weight: 1 |
| 5 | +aliases: |
| 6 | +- /docs/contrib/feedback |
| 7 | +- /docs/spin-operator/support/feedback |
| 8 | +--- |
| 9 | + |
| 10 | +This page contains more general advice on ways you can contribute to SpinKube, and how to approach |
| 11 | +that. |
| 12 | + |
| 13 | +If you are looking for a reference on the details of making code contributions, see the [Writing |
| 14 | +code]({{< ref "writing-code" >}}) documentation. |
| 15 | + |
| 16 | +## First steps |
| 17 | + |
| 18 | +Start with these steps to be successful as a contributor to SpinKube. |
| 19 | + |
| 20 | +### Join the conversation |
| 21 | + |
| 22 | +It can be argued that collaboration and communication are the most crucial aspects of open source |
| 23 | +development. Gaining consensus on the direction of the project, and that your work is aligned with |
| 24 | +that direction, is key to getting your work accepted. This is why it is important to join the |
| 25 | +conversation early and often. |
| 26 | + |
| 27 | +To join the conversation, visit the `#spinkube` channel on the [CNCF |
| 28 | +Slack](https://cloud-native.slack.com/archives/C06PC7JA1EE). |
| 29 | + |
| 30 | +### Read the documentation |
| 31 | + |
| 32 | +The SpinKube documentation is a great place to start. It contains information on how to get started |
| 33 | +with the project, how to contribute, and how to use the project. The documentation is also a great |
| 34 | +place to find information on the project's architecture and design. |
| 35 | + |
| 36 | +SpinKube's documentation is great but it is not perfect. If you find something that is unclear or |
| 37 | +incorrect, please submit a pull request to fix it. See the guide on [writing documentation]({{< ref |
| 38 | +"writing-documentation" >}}) for more information. |
| 39 | + |
| 40 | +### Triage issues |
| 41 | + |
| 42 | +If an issue reports a bug, try and reproduce it. If you can reproduce it and it seems valid, make a |
| 43 | +note that you confirmed the bug. Make sure the issue is labeled properly. If you cannot reproduce |
| 44 | +the bug, ask the reporter for more information. |
| 45 | + |
| 46 | +### Write tests |
| 47 | + |
| 48 | +Consider writing a test for the bug's behavior, even if you don't fix the bug itself. |
| 49 | + |
| 50 | +issues labeled `good first issue` are a great place to start. These issues are specifically tagged |
| 51 | +as being good for new contributors to work on. |
| 52 | + |
| 53 | +## Guidelines |
| 54 | + |
| 55 | +As a newcomer on a large project, it's easy to experience frustration. Here's some advice to make |
| 56 | +your work on SpinKube more useful and rewarding. |
| 57 | + |
| 58 | +### Pick a subject area that you care about, that you are familiar with, or that you want to learn about |
| 59 | + |
| 60 | +You don't already have to be an expert on the area you want to work on; you become an expert through |
| 61 | +your ongoing contributions to the code. |
| 62 | + |
| 63 | +### Start small |
| 64 | + |
| 65 | +It's easier to get feedback on a little issue than on a big one, especially as a new contributor; |
| 66 | +the maintainters are more likely to have time to review a small change. |
| 67 | + |
| 68 | +### If you're going to engage in a big task, make sure that your idea has support first |
| 69 | + |
| 70 | +This means getting someone else to confirm that a bug is real before you fix the issue, and ensuring |
| 71 | +that there's consensus on a proposed feature before you go implementing it. |
| 72 | + |
| 73 | +### Be bold! Leave feedback! |
| 74 | + |
| 75 | +Sometimes it can be scary to put your opinion out to the world and say "this issue is correct" or |
| 76 | +"this patch needs work", but it's the only way the project moves forward. The contributions of the |
| 77 | +broad SpinKube community ultimately have a much greater impact than that of any one person. We can't |
| 78 | +do it without you! |
| 79 | + |
| 80 | +### Err on the side of caution when marking things ready for review |
| 81 | + |
| 82 | +If you're really not certain if a pull request is ready for review, don't mark it as such. Leave a |
| 83 | +comment instead, letting others know your thoughts. If you're mostly certain, but not completely |
| 84 | +certain, you might also try asking on [Slack](https://cloud-native.slack.com/archives/C06PC7JA1EE) |
| 85 | +to see if someone else can confirm your suspicions. |
| 86 | + |
| 87 | +### Wait for feedback, and respond to feedback that you receive |
| 88 | + |
| 89 | +Focus on one or two issues, see them through from start to finish, and repeat. The shotgun approach |
| 90 | +of taking on lots of issues and letting some fall by the wayside ends up doing more harm than good. |
| 91 | + |
| 92 | +### Be rigorous |
| 93 | + |
| 94 | +When we say "this pull request must have documentation and tests", we mean it. If a patch doesn't |
| 95 | +have documentation and tests, there had better be a good reason. Arguments like "I couldn't find any |
| 96 | +existing tests of this feature" don't carry much weight; while it may be true, that means you have |
| 97 | +the extra-important job of writing the very first tests for that feature, not that you get a pass |
| 98 | +from writing tests altogether. |
| 99 | + |
| 100 | +### Be patient |
| 101 | + |
| 102 | +It's not always easy for your issue or your patch to be reviewed quickly. This isn't personal. There |
| 103 | +are a lot of issues and pull requests to get through. |
| 104 | + |
| 105 | +Keeping your patch up to date is important. Review the pull request on GitHub to ensure that you've |
| 106 | +addressed all review comments. |
0 commit comments