Files
gh-devkade-collaborator-ski…/assets/templates/pr-checklist-template.md
2025-11-29 18:19:43 +08:00

8.2 KiB

PR Submission Checklist

Issue: #[number] PR Title: [Type]: [Brief description] Branch: [branch-name] Date: [date]


Pre-Submission Checklist

Code Quality

  • All tests pass locally

    [test command]
    # Output: [all passing]
    
  • Linting passes

    [lint command]
    # Output: [no errors]
    
  • Build succeeds

    [build command]
    # Output: [success]
    
  • Type checking passes (if applicable)

    [type check command]
    # Output: [no errors]
    
  • No compiler warnings

    • Checked: Yes / No / N/A

Functionality

  • All requirements implemented

    • Requirement 1:
    • Requirement 2:
    • Requirement 3:
  • Edge cases handled

    • Empty input:
    • Null/undefined:
    • Large data:
    • Invalid input:
  • Error handling complete

    • Error messages clear
    • Graceful degradation
    • No crashes
  • Manual testing done

    • Tested on: [environment]
    • Test scenarios: [list]
    • Results: [all passed]

Testing

  • New tests added

    • Unit tests: [count] added
    • Integration tests: [count] added
    • Test coverage: [percentage]
  • Test quality

    • Tests are meaningful (not just for coverage)
    • Tests follow project conventions
    • Tests have clear names
    • Tests are independent
  • Existing tests still pass

    • All passing: Yes
    • Any skipped: No
    • Any modified: [list with reason]

Documentation

  • Code comments added

    • Complex logic explained
    • Public APIs documented
    • TODOs addressed or tracked
  • README updated (if needed)

    • New features documented
    • Examples added
    • Installation updated
  • CHANGELOG entry added

    ## [Unreleased]
    ### [Added/Fixed/Changed]
    - [Description] (#[issue])
    
  • API docs updated (if applicable)

    • Parameters documented
    • Return values documented
    • Examples provided

Git Hygiene

  • Branch is up to date with main

    git fetch origin
    git rebase origin/main
    # Conflicts resolved: Yes/No
    
  • Commits are clean

    • Logical commits: Yes
    • Clear messages: Yes
    • No merge commits: Yes (or rebased)
  • No sensitive data

    • No API keys
    • No passwords
    • No personal data
    • No secrets in history
  • No unintended changes

    • No debug code
    • No commented code
    • No formatting-only changes (unless intended)
    • No temp files

Self-Review

  • Reviewed entire diff

    • Read through all changes
    • Checked for issues
    • Verified quality
  • Code is clear

    • Variable names are descriptive
    • Functions have single responsibility
    • Logic is straightforward
    • Comments where needed
  • Follows conventions

    • Naming matches project style
    • Formatting is consistent
    • Patterns match existing code
    • No new paradigms introduced
  • No obvious bugs

    • Logic is correct
    • Edge cases handled
    • No potential null errors
    • No off-by-one errors

Completeness

  • All acceptance criteria met

  • Issue fully resolved

    • Nothing left to do
    • No half-implemented features
    • No TODOs left unaddressed
  • No scope creep

    • Only issue requirements addressed
    • No unrelated changes
    • Additional ideas tracked separately

PR Description Draft

Title

[Type]: [Clear, concise description (50-70 chars)]

Description

## Summary
[2-3 sentences: what, why, how]

## Changes Made
- [Change 1]
- [Change 2]
- [Change 3]

## Type of Change
- [x] [Selected type]

## Related Issue
Fixes #[issue-number]

## How to Test
1. [Step 1]
2. [Step 2]
3. [Verify result]

## Screenshots (if applicable)
[Add screenshots or remove section]

## Checklist
- [x] Code follows style guidelines
- [x] Self-reviewed
- [x] Commented hard-to-understand areas
- [x] Documentation updated
- [x] No new warnings
- [x] Tests added and passing

## Additional Notes
[Any context, tradeoffs, or future work]

CI/CD Preparation

Expected CI Checks

  • Tests - Should pass
  • Linting - Should pass
  • Type checking - Should pass
  • Build - Should succeed
  • Coverage - Should meet threshold ([X]%)
  • [Other checks] - [Expected result]

If CI Fails

Plan:

  1. Check logs immediately
  2. Reproduce locally
  3. Fix and push update
  4. Don't wait for reviewer if CI failing

Communication Plan

Before Creating PR

  • Comment on issue "Submitted PR #[number] to address this issue"

  • Tag appropriately (if permissions)

    • Type label (bug, enhancement, etc)
    • Status label (ready for review, etc)

After Creating PR

  • Monitor CI

    • Checks all passing
    • Fix any failures immediately
  • Request review (if needed)

    • Specific reviewer requested
    • Or wait for maintainer assignment
  • Be responsive

    • Check for comments daily
    • Respond within 24-48 hours
    • Make requested changes promptly

Review Readiness

Making Reviewer's Job Easy

  • PR is focused

    • Single concern
    • Reasonable size (< 500 lines if possible)
    • Clear purpose
  • Context provided

    • Clear description
    • Test instructions
    • Screenshots if UI change
  • Quality is high

    • No obvious issues
    • Well-tested
    • Follows conventions
  • Ready for feedback

    • Open to suggestions
    • Will respond promptly
    • Willing to iterate

Potential Review Comments

Prepare for:

  • Style/convention feedback → Will fix
  • Architectural suggestions → Open to discuss
  • Test coverage requests → Will add
  • Documentation requests → Will improve
  • Bug concerns → Will investigate

Submission Commands

Push Branch

# Ensure branch is up to date
git fetch origin
git rebase origin/main

# Push to remote
git push -u origin [branch-name]

# If rebased and need to force push
git push -f origin [branch-name]

Create PR

Via GitHub CLI:

gh pr create \
  --title "[Type]: [Description]" \
  --body-file pr-description.md \
  --label [label] \
  --assignee @me

Via Web:

  1. Go to repository on GitHub
  2. Click "Pull requests"
  3. Click "New pull request"
  4. Select your branch
  5. Fill in title and description
  6. Create pull request

Post-Submission

Immediate Actions

  • Verify PR created successfully

    • URL: [PR URL]
    • All info present
    • CI triggered
  • Comment on issue "Submitted PR #[number]"

  • Monitor CI

    • All checks running
    • Fix if any fail

Ongoing

  • Respond to comments

    • Check daily
    • Reply within 24-48 hours
    • Be constructive
  • Make requested changes

    • Address feedback
    • Push updates
    • Mark comments resolved
  • Keep updated with main

    • Rebase if requested
    • Resolve conflicts promptly

Merge Preparation

Before Merge

  • All reviews approved

    • Required approvals received
    • No unresolved comments
  • CI passing

    • All checks green
    • No failures
  • Up to date with main

    • No merge conflicts
    • Latest changes incorporated
  • Final review

    • Re-check changes
    • Verify quality
    • Confirm ready

After Merge

  • Update local repository

    git checkout main
    git pull origin main
    
  • Delete feature branch

    git branch -d [branch-name]
    git push origin --delete [branch-name]
    
  • Close related issues (if not auto-closed)

    • Issue #[number] closed
  • Celebrate! 🎉

    • Contribution merged
    • Value added to project
    • Experience gained

Troubleshooting

Common Issues

CI Failing:

  • Check logs carefully
  • Reproduce locally
  • Fix and push update
  • Don't wait for reviewer

Merge Conflicts:

  • Rebase on main
  • Resolve conflicts
  • Test still passes
  • Force push if needed

Review Taking Long:

  • Be patient
  • Maintainers are busy
  • Polite ping after 1-2 weeks
  • Don't take personally

Changes Requested:

  • Thank reviewer
  • Ask questions if unclear
  • Make changes promptly
  • Push updates

Notes

[Personal notes, reminders, or considerations]

Lessons Learned: [Note anything learned during this contribution for future reference]