|
| 1 | +_model: page |
| 2 | +--- |
| 3 | +title: Sprint Guide |
| 4 | +--- |
| 5 | +hide_from_index: yes |
| 6 | +--- |
| 7 | +body: |
| 8 | + |
| 9 | +Welcome to the BeeWare Sprints! |
| 10 | +=============================== |
| 11 | + |
| 12 | +Welcome! We're so excited you've decided to join us! If you haven't already |
| 13 | +introduced yourself to one of the Bee Team, please do so. Once you've done that, |
| 14 | +head back here to get started. |
| 15 | + |
| 16 | +What is a sprint? |
| 17 | +------------------ |
| 18 | + |
| 19 | +A sprint is an unstructured opportunity to spend a few hours or days working |
| 20 | +collaboratively on an Open Source project. They're often tied to a conference; a |
| 21 | +sprint after a conference provides an opportunity to turn the energy, enthusiasm |
| 22 | +and interest that a conference has generated into improvements in the software |
| 23 | +we use on a daily basis. |
| 24 | + |
| 25 | +Sprints are also an opportunity to introduce people to the process of |
| 26 | +contributing to the project. Our hope is that you'll have so much fun |
| 27 | +contributing during the sprint that you'll go home and keep contributing! |
| 28 | + |
| 29 | +`It doesn't matter how much experience you've got |
| 30 | +</contributing/first-time/imposter-syndrome/>`__. At past sprints, we've merged |
| 31 | +contributions from people at all levels of experience - high-school students, |
| 32 | +recent bootcamp graduates, people who don't consider themselves programmers, and |
| 33 | +seasoned developers. No matter your experience level - we can find a way for you |
| 34 | +to contribute. |
| 35 | + |
| 36 | +Code isn't the only way you can contribute, either. A project like BeeWare is |
| 37 | +much more than just the code - we need people to write, proof-read and translate |
| 38 | +documentation; we need people to improve the design of web pages; even the |
| 39 | +process of going through bugs that were reported years ago and determining that |
| 40 | +they've been fixed along the way is a valuable contribution. |
| 41 | + |
| 42 | +The Initial Questions |
| 43 | +---------------------- |
| 44 | + |
| 45 | +To get you started, we're going to ask a few questions so we can gauge your |
| 46 | +interests and experience. This will help us find the best way for you to |
| 47 | +contribute. Work through the questions, take notes, and then find a member of |
| 48 | +the Bee Team and share your answers. If you don't understand the question being |
| 49 | +asked - don't worry about that! Let us know what you do know, and we'll work |
| 50 | +together to figure it out from there. |
| 51 | + |
| 52 | +1. **Have you used BeeWare before?** |
| 53 | + |
| 54 | + If you haven't, start by working through the `BeeWare Tutorial |
| 55 | + <https://docs.beeware.org/en/latest/>`_. It will give you an introduction |
| 56 | + for what the BeeWare project is, and how the pieces of the project fit |
| 57 | + together. If you hit any problems doing the tutorial, take notes - because |
| 58 | + ensuring nobody else has the same problem is a great topic for a first |
| 59 | + contribution! |
| 60 | + |
| 61 | + Once you've finished the tutorial up to at least step 4, move on to the next |
| 62 | + question. |
| 63 | + |
| 64 | +2. **What computing equipment do you have with you?** |
| 65 | + |
| 66 | + The equipment you have with you puts practical limits on what you can |
| 67 | + contribute to. For example, if you have a Windows laptop, you're not going to |
| 68 | + be able to work on anything to do with iOS. Does your laptop run Windows, |
| 69 | + macOS, Linux, or something else? Is your phone an iOS or Android device? Have |
| 70 | + your devices been provided by your employer, or are they your own personal |
| 71 | + devices? |
| 72 | + |
| 73 | +3. **How much experience do you have writing Python code?** |
| 74 | + |
| 75 | + Are you new to programming? A Python veteran? A coding veteran who has |
| 76 | + only just started learning Python? A fresh graduate of a bootcamp program? |
| 77 | + We want to find a problem that is a good match for your level experience. |
| 78 | + |
| 79 | +4. **Are you familiar with Github contribution processes?** |
| 80 | + |
| 81 | + Do you use GitHub (or a similar code-sharing site) for hosting your own code |
| 82 | + or contributing to others' projects? Do you |
| 83 | + know what CI (continuous integration) is? Have you contributed to a project that has |
| 84 | + pre-commit hooks? If I asked you to "rebase your PR against main", would you |
| 85 | + know what to do? |
| 86 | + |
| 87 | +5. **Have you contributed to an Open Source project before?** |
| 88 | + |
| 89 | + Have you attended a sprint in the past? Have you ever submitted a PR (pull |
| 90 | + request) to an Open Source project? Are you familiar with how to use Github |
| 91 | + to create a pull request? |
| 92 | + |
| 93 | +6. **Do you have any other special skills that might be useful?** |
| 94 | + |
| 95 | + Are you familiar with a GUI API (such as Winforms, Cocoa, or GTK)? Do you |
| 96 | + have deep knowledge of the internals of a particular operating system? Are |
| 97 | + you an expert in a programming language other than Python? If you don't have |
| 98 | + any special skills, that's not a problem - but if we've got a Windows Guru on |
| 99 | + our hands, we want to make sure those skills are being put to good use. |
| 100 | + |
| 101 | +7. **Why did you join us and what are you interested in?** |
| 102 | + |
| 103 | + "You sounded like a friendly project" is a perfectly fine answer. However, if |
| 104 | + there's more to why you joined us today, let us know. Are you interested in |
| 105 | + mobile or desktop development? Packaging? Websites? Console apps? If you |
| 106 | + don't have a specific interest - what seems most interesting based on what |
| 107 | + you've seen about BeeWare so far? |
| 108 | + |
| 109 | +Now, find a member of the Bee Team to share your answers. They might ask some |
| 110 | +follow up questions; but then they'll point you in the direction of a area where |
| 111 | +you should be able to make a contribution. |
| 112 | + |
| 113 | +Find Your Issue |
| 114 | +---------------- |
| 115 | + |
| 116 | +If you've spoken to a member of the Bee Team, they have probably pointed you at |
| 117 | +a part of the BeeWare project where you can contribute; they might have even |
| 118 | +suggested a specific issue to work on. If they haven't given you as specific |
| 119 | +issue, they've probably pointed you at the "Good First Issues" for that project. |
| 120 | +What does that mean? |
| 121 | + |
| 122 | +GitHub provides a list of issues that allows BeeWare (and other projects) to |
| 123 | +keep track of all the problems that have been reported - that includes explicit |
| 124 | +bugs, unexpected behavior that *might* be a bug, requests for new features, requests |
| 125 | +for more documentation - anything that might be a way that BeeWare could be |
| 126 | +improved. As new issues are reported, the Bee Team will flag some of them as |
| 127 | +issues that are well suited to a first time contributor - issues that don't |
| 128 | +demand an *immediate* fix, but are well defined or easy to reproduce, and |
| 129 | +probably have a good lead on the underlying cause. These issues are tagged "good |
| 130 | +first issue" to make them easier to find. |
| 131 | + |
| 132 | +To filter a GitHub issue list by the "good first issue" label, follow these steps: |
| 133 | + |
| 134 | +1. Click on the "Labels" button above the list of issues to activate the drop-down menu. |
| 135 | +2. Type the word "good" into the search box at the top of the drop-down menu. |
| 136 | +3. Click on "good first issue" in the filtered list. |
| 137 | + |
| 138 | +.. figure:: ./github-good-first-issue-filter.png |
| 139 | + :width: 100% |
| 140 | + :alt: The GitHub issue label filter drop-down menu activated with a search for the word "good" to filter down to "good first issue". |
| 141 | + |
| 142 | + *Filtering GitHub issues by the "good first issue" label.* |
| 143 | + |
| 144 | +Once you've found an issue that looks interesting, read through any comments on |
| 145 | +the post, and post a comment in the discussion saying that you're looking into |
| 146 | +the issue (e.g., "Looking into this at the PyCon US 2025 sprints"). BeeWare |
| 147 | +doesn't explicitly "assign" issues - we accept contributions from anyone. |
| 148 | +However, in a sprint situation, we need to make sure that we don't end up with |
| 149 | +two people working on the same issue - leaving a comment is a light-weight way |
| 150 | +to coordinate between contributors. |
| 151 | + |
| 152 | +If you still can't find anything you'd like to do, find a Bee Team member and |
| 153 | +they'll help you narrow down to a specific issue. |
| 154 | + |
| 155 | +Set up a development environment |
| 156 | +--------------------------------- |
| 157 | + |
| 158 | +Once you've found an issue, you'll need to set up your development environment |
| 159 | +so you can work on a fix. Each BeeWare project has it's own contribution guide: |
| 160 | + |
| 161 | +* `Briefcase <https://briefcase.readthedocs.io/en/latest/how-to/contribute/index.html>`__ |
| 162 | +* `Toga <https://toga.readthedocs.io/en/latest/how-to/contribute/index.html>`__ |
| 163 | +* `Rubicon ObjC <https://rubicon-objc.readthedocs.io/en/latest/how-to/contribute/index.html>`__ |
| 164 | + |
| 165 | +If the project isn't on this list, check the project README for details on how |
| 166 | +to get set up. If any of the instructions don't make sense (or you can't find |
| 167 | +those instructions), find a member of the Bee Team, and they'll get you unstuck. |
| 168 | +And - if you think you can improve the instructions so other people won't hit the |
| 169 | +same problem, improving the contribution guide is a valuable contribution! |
| 170 | + |
| 171 | +Now you can start working on your issue! |
| 172 | + |
| 173 | +What happens after I submit my PR? |
| 174 | +---------------------------------- |
| 175 | + |
| 176 | +Once you've submitted your pull request, and the pull request is passing all the |
| 177 | +automated checks, you're ready for a review. Let one of the core team know that |
| 178 | +you've got a PR ready for review, and they'll take a look. |
| 179 | + |
| 180 | +If this is your first PR, it's quite likely the review will find some problems. |
| 181 | +That might be an edge case you didn't consider, or a code convention that you |
| 182 | +haven't followed. Don't be discouraged! Nobody - not even the core team - gets |
| 183 | +PRs 100% correct on the first try. |
| 184 | + |
| 185 | +Once the PR passes review, your reviewer will merge the PR - and you're done! |
| 186 | +Congratulations - you've contributed to BeeWare! If this is your very first |
| 187 | +BeeWare contribution, you've also earned your `BeeWare Challenge Coin |
| 188 | +</contributing/challenge-coins>`__ - find a member of the core team, and they |
| 189 | +will give you a coin! |
| 190 | + |
| 191 | +Help! I'm stuck! |
| 192 | +----------------- |
| 193 | + |
| 194 | +If you get stuck at any point along the way, find a member of the Bee Team. |
| 195 | +Don't be afraid to ask *any* question. If you're stuck, we want to get you |
| 196 | +unstuck. If you're confused, it's because the topic is complicated, and we |
| 197 | +haven't explained it well enough. We're eager to help - and we want to make sure |
| 198 | +you have a successful sprint. |
| 199 | + |
| 200 | +--- |
| 201 | +gutter: |
| 202 | + |
| 203 | +The Bee Team is always available to answer questions. If you're in doubt... ask! |
| 204 | +Don't be afraid to ask *any* question. If you're stuck, we want to get you |
| 205 | +unstuck. If you're confused, it's because the topic is complicated, and we |
| 206 | +haven't explained it well enough. We're eager to help - and we want to make sure |
| 207 | +you have a successful sprint. |
| 208 | + |
| 209 | +**This guide is new!** PyCon US 2025 is the first time we've used it. We want |
| 210 | +your feedback! What worked for you? What didn't? What can we do better? Please |
| 211 | +let us know. And remember: fixing a problem with this Sprint Guide counts as a |
| 212 | +contribution to BeeWare! |
| 213 | + |
| 214 | +--- |
| 215 | +summary: How to sprint with the BeeWare team |
| 216 | +--- |
| 217 | +sort_key: |
0 commit comments