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:
| Type | Difficulty | Acceptance rate |
|---|---|---|
| Missing test coverage | Low | High |
| Wrong error message | Low | High |
| Javadoc improvement | Low | High |
| Logging improvement | Low | High |
| NPE in edge case | Medium | High |
| Performance regression (small) | Medium | Medium |
| New feature | High | Low (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
| Topic | Lab |
|---|---|
| Find and reproduce a real open JIRA issue | Lab 8.1 |
| Implement a fix, write the test, format the patch | Lab 8.2 |
| Write better error messages for failed DAGs | Lab 8.3 |