You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: community/events/sprints.md
+63-40Lines changed: 63 additions & 40 deletions
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# pyOpenSci sprints
1
+
# pyOpenSci Sprints
2
2
3
3
:::{todo}
4
4
* TODO: https://github.com/actions/add-to-project?tab=readme-ov-file i think we want to set this up for all repos so this works for scipy.
@@ -7,19 +7,24 @@
7
7
:::{admonition} TL;DR
8
8
9
9
**Before a sprint**
10
-
* Go through the pyOPenSci repo issues and ensure all relevant help-wanted / sprintable issues have labels and are on the project board.
11
-
* Also ensure all issues on the project board have enough specific information for a new user to follow and complete the task needed to be done.
10
+
11
+
* pyOpenSci staff go through the pyOpenSci repo issues and ensure all relevant **help-wanted** and/or **sprintable** both have appropriated labels and have been added to the the project board in the appropriate column (beginner-friendly, python, dev-ops/ci, Python, Sphinx).
12
+
* pyOpenSci staff ensure all issues on the project board have enough **specific** information for a new user to follow and complete the task needed to be done. The more specific the issue is, the fewer questions a sprinter / contributor will ask during a sprint. This saves significant time and energy for both the sprint attendee and whomever is leading the sprint.
12
13
13
14
**During a sprint**
14
15
15
-
* label all newly submitted issues as sprint-event, sprint-name-year
16
-
* merge small PRs that are clearly typo fixes and other easy to review things
17
-
* for PRs, add contributors to the repo using the all contributors bot, with the format `@all-contributors add @githubusername for code, review`
18
-
* for an issue use review for a pr use code, review ).
19
-
* merge each all contributor PR individually and immediately to avoid merge conflicts
16
+
* Label all newly submitted issues as `sprint-event`, `sprint-name-year` (example: `sprint`, `pyconus-24`)
17
+
* Merge small PRs that are clearly mergeable without significant review. Examples might include: typo fixes and other easy-to- review contributions.
18
+
* For PRs, add contributors to the GitHub repository that they contributed to using the [All Contributors bot](https://allcontributors.org/) using the command: `@all-contributors add @githubusername for code, review` (if the contribution is a pull request) or `@all-contributors add @githubusername for review` (if the contribution is an issue
19
+
***IMPORTANT:** Merge each all-contributor-bot PR's individually and immediately after they have been opened to avoid merge conflicts
20
20
21
-
**After a Sprint**
21
+
**After a sprint**
22
22
23
+
* Triage issues and pull requests
24
+
* Make sure all contributors have been added to each repo they've contributed to using the all-contributors bot.
25
+
* Focus on replying, addressing and merging pull requests as we can. If an issue has a lingering TODO - consider tagging it with a `help-wanted` label for a future sprint.
26
+
* Send followup *thank you for participating* notes
27
+
* Collect / process / aggregate sprint metrics
23
28
:::
24
29
25
30
@@ -50,57 +55,68 @@ beneficial when we write grants and solicit sponsorships.
50
55
51
56
pyOpenSci uses a combination of GitHub project boards and user surveys to track participation and success metrics. More on that below.
52
57
53
-
## Sprint Participant Motivations
58
+
## What motivates sprint participants?
54
59
55
60
Sprint participants are often motivated by different things. Some come to:
56
61
57
62
* learn
58
63
* help and support a project they care about
59
64
* connect and build community
60
65
61
-
pyOpenSci supports and empowers all of these motivations, with an emphasis on
62
-
empowering contributors who are newer to contributing, while greatly benefiting
63
-
from more experienced sprinters who can help move the organization forward.
66
+
pyOpenSci supports and empowers all of the above motivations. We thrive on empowering new
67
+
empowering contributors to make their first (or second) contributions! This impact aligns well with our mission. We also greatly benefit
68
+
from more experienced sprinters who can help move the organization's infrastructure and needs forward.
69
+
70
+
Sprints are always a win/win for pyOpenSci.
64
71
65
72
### pyOpenSci sprints are accessible
66
73
67
74
It's important to pyOpenSci's mission that sprints are accessible to both new
68
75
and seasoned contributors. We aim to ensure that all participants have a
69
76
successful experience with our community. Some participants are new and are
70
77
submitting their first-ever issue and/or pull request to an open source project.
71
-
These participants may need help using git and GitHub, or they may feel
72
-
intimidated by their first contribution. Others are more experienced and
78
+
These participants:
79
+
80
+
* may need help using git and GitHub, or
81
+
* they may feel intimidated by their first contribution (but they want to try!).
82
+
83
+
Others are more experienced and
73
84
comfortable in a sprint environment but may have questions about more technical
74
-
open issues and the outcomes that pyOpenSci wants to see for issue solutions.
85
+
open issues and the outcomes that pyOpenSci wants to see in issue solutions.
75
86
Supporting all of these participants is crucial to our mission and can require
76
87
significant effort during a sprint event.
77
88
78
-
As such, it's important for anyone leading a sprint to come prepared! In some cases having community helpers will go along way to supporting beginner contributor success.
79
-
89
+
As such, it's important for anyone leading a sprint to come prepared! In most cases having community helpers will go along way to supporting beginner contributor success.
80
90
81
-
## Sprint Infrastructure - GitHub Project Boards
91
+
## Sprint infrastructure - GitHub projects
82
92
83
93
To efficiently manage and track contributions during sprints, pyOpenSci utilizes
84
-
GitHub project boards. These boards help us organize tasks that participants can work on. This ensures that
94
+
[GitHub projects](https://docs.github.com/en/issues/planning-and-tracking-with-projects/learning-about-projects/about-projects). We use projects to organize issues and pull requests that contributors could potentially address during or outside of a sprint. Tasks that are discrete enough to complete during a sprint are labeled with the `sprintable` label.
95
+
96
+
An organized project ensures that
85
97
contributors, whether new or experienced, can easily find and work on tasks
86
-
that suit their skills and interests. They also are used to track new contributions that we get during an event.
98
+
that suit their skills and interests.
87
99
88
-
#### Help-Wanted Board
100
+
:::{not}
101
+
We also are testing out using [event projects](https://github.com/orgs/pyOpenSci/projects/12) to to track new contributions in the form of pull requests and issues that we receive during an event such as a PyCon US or SciPy sprint.
102
+
:::
103
+
104
+
#### Help-wanted board
89
105
90
-
The pyOpenSci [**Help-Wanted project board**](https://github.com/orgs/pyOpenSci/projects/3) is an organization-level GitHub project board that provides a central place where contributors can
106
+
The pyOpenSci [**help-wanted project board**](https://github.com/orgs/pyOpenSci/projects/3) is an organization-level GitHub project board that provides a central place where contributors can
91
107
find tasks that pyOpenSci needs help with. We have two automated workflows setup
92
108
for the help-wanted project board:
93
109
94
110
* Any issue or pull request with the `help-wanted` label is automatically added to this board.
95
111
* When an issue or pull request is closed, it is automatically archived from the project board.
96
112
97
113
Tasks on this board are ideally smaller, well-defined, and can be completed or significantly advanced within the
98
-
duration of a sprint. The pyOpenSci Help-Wanted board should be updated throughout the year as new issues are opened in our organization GitHub repositories. Continual updates makes it easier for:
114
+
duration of a sprint. The pyOpenSci help-wanted board should be updated throughout the year as new issues are opened in our organization GitHub repositories. Continual updates makes it easier for:
99
115
100
116
* Contributors to jump in and start contributing and
101
117
* Sprint leaders to prepare for a sprint as the board will be more up to date.
102
118
103
-
#### Annual Sprint Project Board
119
+
#### Tracking annual contributions: the sprint project board
104
120
105
121
At the start of each year, the pyOpenSci community manager creates a new Sprint
106
122
GitHub Project Board. Here is an example of the [2024 sprint project board](https://github.com/orgs/pyOpenSci/projects/12).
@@ -114,12 +130,12 @@ The board will have several columns or statuses, each of which represents the na
114
130
115
131
By using these boards, pyOpenSci staff can easily keep tabs of sprint activities and outcomes. It also helps us ensure that all sprint issues and pull requests are addressed in a timely manner.
116
132
117
-
### Year Round Sprint tasks
133
+
### Year round sprint tasks
118
134
119
135
Below are tasks to stay on top of throughout the year. By working on
120
136
these items as they pop up, you are saving time spent in preparing for a sprint.
121
137
122
-
#### Maintain the the pyOpenSci help-wanted project board
138
+
#### Maintain the pyOpenSci help-wanted project board
123
139
124
140
pyOpenSci uses the GitHub [help-wanted project board](https://github.com/orgs/pyOpenSci/projects/3)
125
141
to keep track of tasks that volunteers can assist with. When you see an issue
@@ -168,11 +184,11 @@ If you are creating a new `help-wanted` issue, it's important to include as much
168
184
When in doubt, more information is always better!
169
185
:::
170
186
171
-
Labeling issues with `help-wanted` / `sprintable` throughout the year as they are opened will save significant preparation time when a sprint event arises. It will also make it easier for fly-by contributors to find things to help us with throughout the year.
187
+
It is important to label issues with `help-wanted` / `sprintable` throughout the year and as they are opened as we can. This will save significant when preparing for a sprint. It will also make it easier for fly-by contributors to find things to help us with throughout the year.
172
188
173
-
## Pre-Sprint Event Tasks
189
+
## Pre-sprint tasks
174
190
175
-
### Triage (Help-Wanted) Issues Across the pyOpenSci Organization
191
+
### Triage (help-wanted) issues across the pyOpenSci organization
176
192
177
193
Before a sprint begins, someone on the pyOpenSci team should go through and
178
194
triage all of the open issues in the organization to determine:
@@ -200,18 +216,22 @@ One challenge of a successful sprint is that there will be many issues and pull
200
216
The sprint template will auto-populate a `sprint-event` label on the issue or pull request when it is opened. We will then setup a GitHub action on the sprint project board for that year to auto-add any issue or pull request with the `sprint-event` label on it to the sprint project board.
201
217
202
218
:::{todo}
203
-
test this workflow: https://github.com/actions/add-to-project in a single repo
204
-
NOTE - i'm not sure this will work. i forgot that pr templates are not as straight forward as issue templates are. issue templates are easier.
219
+
NOTE: i have setup this workflow https://github.com/actions/add-to-project on most (but not all) of our repos now. so it does handle moving help-wanted issues to the project. BUT it is hard to think about events. This is because there is no easy to use pull request template. so while we could automagically update a workflow before an event we'd have to do it for every event AND it would only work on issues - not pull requests. As such my idea of automating event tags won't work.
220
+
221
+
For now - we should do that manually during the event. It would be an easy enough thing for jesse to do remotely i think? or i could do it IF the sprint slows down. it really didn't at pycon this year (2024)
205
222
:::
206
223
224
+
225
+
226
+
:::{todo}
227
+
228
+
Jesse will flesh this out when it's ready!
229
+
207
230
### Create a participant signup form
208
231
209
232
* create the form
210
233
* create a dynamic qr code that we can update (the is placed on our table top cards ) OR get a card that we can add a sticker to with the code and replace the stickers...
211
234
212
-
213
-
:::{todo}
214
-
215
235
jesse will develop this process with whatever platform we end up using...
216
236
:::
217
237
@@ -222,20 +242,23 @@ Below are tasks that should occur during a sprint event.
222
242
223
243
### Collect participant information
224
244
245
+
*This section will be fleshed out soon...*
246
+
:::{todo}
225
247
The person running the event should collect information from participants
226
248
at the event via ______**TODO insert how we do that here**_____ following the process Jesse creates above....
227
249
228
250
* dynamic qr code... that people can scan. with small table top signs?
229
251
* what do we collect?
230
252
* how do they opt out of future coms?
231
253
232
-
233
-
Metrics –
254
+
What Metrics do we collect and how?
234
255
Number of PRs
235
256
Number of issues
236
257
Who contributed
237
258
Where are the contributors from (country, place of work, other things??)
238
259
260
+
:::
261
+
239
262
### Update the sprint issue and pull request board
240
263
241
264
During the event, the remote sprint support team (either Community Manager or a volunteer), should:
@@ -247,7 +270,7 @@ During the event, the remote sprint support team (either Community Manager or a
247
270
This process, if done during the sprint, will make triaging issues and pull requests after the event, easier.
248
271
249
272
:::{todo}
250
-
We create one issue and pr template that we can use across all our repos – it has a label that automatically will be added to the board with “no status”
273
+
We create one issue and pull requesttemplate that we can use across all our repos – it has a label that automatically will be added to the board with “no status”
251
274
Jesse adds a label for the event and moves it to a column
252
275
:::
253
276
@@ -273,7 +296,7 @@ To add contributors to the repository using the All-Contributors bot:
273
296
274
297
`@all-contributors add @githubusername for <contribution types>`
275
298
276
-
If they have opened an issue only, or reviewed an open pr use:
299
+
If they have opened an issue only, or reviewed an open pull request use:
277
300
278
301
`@all-contributors add @githubusername for review`
279
302
@@ -287,7 +310,7 @@ contributors list when you call the commands above. IMPORTANT: Merge each all-Co
287
310
By recognizing contributors for their efforts, we foster a positive and inclusive
288
311
community, encouraging more participation and collaboration.
289
312
290
-
## After a Sprint tasks
313
+
## After a sprint tasks
291
314
292
315
### Issue and PR triage
293
316
The biggest effort after a sprint will be triaging & addressing issues and pull requests that have been submitted during the sprint. This could take 1-2 weeks and up to a month depending on the scope of each change submitted.
0 commit comments