Level 8: Real Issue Contribution

This level is the transition from learner to contributor. You will pick a real open JIRA issue, reproduce it, write a patch, and go through the Apache contribution process from start to submission.

The Apache contribution loop

1. Pick an issue (JIRA)          → identify something you can fix
2. Understand the context         → read related code, existing tests, comments
3. Reproduce the bug              → write a failing test or reproduce steps
4. Implement the fix              → minimum change that passes all tests
5. Format the patch               → `git diff > TEZ-NNNN.001.patch`
6. Upload to JIRA                 → attach the patch, set status to "Patch Available"
7. Respond to review comments     → iterate, upload TEZ-NNNN.002.patch etc.
8. Patch committed                → a committer votes +1 and commits

Choosing the right issue

Good first contributions:

TypeDifficultyAcceptance rate
Missing test coverageLowHigh
Wrong error messageLowHigh
Javadoc improvementLowHigh
Logging improvementLowHigh
NPE in edge caseMediumHigh
Performance regression (small)MediumMedium
New featureHighLow (needs design discussion first)

Rule: Start with "Minor" or "Trivial" priority JIRAs. Do not attempt "Blocker" or "Critical" until you have 3+ committed patches.

What this level covers

TopicLab
Find and reproduce a real open JIRA issueLab 8.1
Implement a fix, write the test, format the patchLab 8.2
Write better error messages for failed DAGsLab 8.3