Skip to content

Commit 7a374b2

Browse files
Nissan Powclaude
andcommitted
Update GSoC contributor guide with clearer contribution expectations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6ae30e3 commit 7a374b2

1 file changed

Lines changed: 53 additions & 9 deletions

File tree

docs/internals/gsoc-2026-contributor-guide.md

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -191,17 +191,46 @@ Your PR does not have to be merged — what matters is that it demonstrates you
191191
can read the codebase, write reasonable code, and engage with code review
192192
feedback.
193193

194-
### What makes a good starter PR
194+
### Finding an issue to work on
195195

196-
Start with an existing issue — look through the
197-
[open issues](https://github.com/Netflix/metaflow/issues) for ones tagged
198-
`good first issue`, or ask in #gsoc if you're having trouble finding one that
199-
fits. A well-scoped bug fix or small improvement tied to a real issue tells us
200-
far more than a large, unsolicited feature.
196+
**Do not create new issues** without discussing them with the team in #gsoc
197+
first. We want to make sure any new issue is worth tackling before effort goes
198+
into it.
201199

202-
**Before you start coding**, check whether someone else is already working on
203-
the issue (look for linked PRs or comments claiming it). If there's no
204-
activity, leave a comment saying you plan to work on it.
200+
**Only work on issues tagged `gsoc`.** These are issues we've vetted as
201+
meaningful, appropriately scoped, and ready for contribution. If you're not
202+
sure what to pick, ask in #gsoc and we'll point you to something that fits
203+
your skills.
204+
205+
Multiple people may work on the same issue — this is expected. The best PR
206+
wins. If you want to mention in #gsoc that you're working on something,
207+
that's fine for coordination, but it doesn't reserve the issue.
208+
209+
### Working on bug fixes
210+
211+
When you pick up a bug fix, **reproduce the issue first.** Write a test that
212+
demonstrates the bug exists under normal conditions — not some pathological
213+
edge case. If you can't reproduce it, comment on the issue and ask for
214+
clarification before writing a fix.
215+
216+
Your test should be a real **end-to-end test**, not just a unit test. Unit
217+
tests that mock out the system under test don't give us confidence that the
218+
fix actually works in practice. Look at the
219+
[integration test suite](https://github.com/Netflix/metaflow/tree/master/test/core)
220+
for examples of the level of testing we expect — your fix should include a
221+
test at this level that fails before the fix and passes after.
222+
223+
### Review burden
224+
225+
Every PR takes mentor time to review. We want to spend that time where it
226+
counts — actually helping you do meaningful work, not triaging PRs we can't
227+
use.
228+
229+
**A contribution should be worth more to the project than the time it takes to
230+
review it.** Maintainer bandwidth is finite. PRs where the review effort
231+
exceeds the benefit to the project — bulk low-quality submissions, verbose
232+
AI-generated walls of text, or drive-by fixes — shift the validation burden
233+
onto us, and that's not sustainable.
205234

206235
### What to avoid
207236

@@ -219,6 +248,11 @@ activity, leave a comment saying you plan to work on it.
219248
has an open PR for it. Multiple people independently building the same
220249
feature wastes everyone's time.
221250

251+
- **Unit-test-only PRs.** A fix accompanied only by unit tests that mock
252+
the internals does not demonstrate that the fix works. Include an
253+
end-to-end test using the
254+
[integration test framework](https://github.com/Netflix/metaflow/tree/master/test/core).
255+
222256
- **Docs PRs to the wrong repo.** Documentation lives in
223257
[metaflow-docs](https://github.com/Netflix/metaflow-docs), not the main
224258
Metaflow repo.
@@ -234,6 +268,16 @@ If you use AI tools (LLMs, code generators, copilots, etc.) for any part of
234268
your contribution or proposal, you must disclose it and be able to explain
235269
every line you submit. This applies to both code and written proposals.
236270

271+
**Human in the loop.** You must review and fully understand every line before
272+
submitting. You need to be able to explain and defend your changes
273+
independently.
274+
275+
**Do not use an LLM to respond to review feedback.** When we ask a question
276+
about your code, we are evaluating whether *you* understand it. Responses that
277+
are clearly LLM-generated — whether copied verbatim or lightly edited — tell
278+
us you don't. If you can't engage with review feedback in your own words, the
279+
PR is not ready and will be closed.
280+
237281
Proposals or PRs that appear to be unreviewed AI output will be rejected.
238282
Using AI to assist your work is fine; using it to replace your understanding
239283
is not.

0 commit comments

Comments
 (0)