Here’s how you can get started:
-
Find Issues to Work On:
- Explore our Priority Issues.
- Check out the Good First Issues.
- Browse the list of Confirmed Bugs.
-
Set Up Your Pre-commit Hooks Environment: Follow the Development Guide to set up your developer environment.
Before submitting a PR:
- Keep It Simple:
- Focus on solving one problem per PR.
- Submit small, manageable pull requests.
- Be Thorough:
- Add detailed comments explaining your changes.
- Use semantic line breaks for documentation updates.
- Allow Maintainers to Edit: Keep the "Allow edits from maintainers" checkbox checked.
- Ensure your PR is not a draft.
- Pass:
- Validation Checks
- All Tests
- Receive 2 approving reviews from maintainers.
Each PR undergoes triage to:
- Verify all prerequisites are met.
- Assess whether the use case aligns with project goals.
- Assign reviewers.
- Design Review:
- Ensures no major conflicts with the codebase.
- Code Review:
- In-depth review and testing of code.
- May require changes or clarifications.
- Contributors are expected to be responsive to feedback.
- Merge:
- Once approved, the PR is merged automatically or manually.
⚠️ During code freezes, PRs may remain unmerged until the release is complete.
- Managed by the bot Myrmica Lobicornis:
- Verifies GitHub checks, reviews, and mergeability.
- Handles branch rebasing/merging if needed.
- Adds labels like
status/3-needs-mergeto trigger merges.
bot/no-merge: Prevents automatic merging.bot/light-review: Reduces required LGTM reviews from 2 to 1.
For more details, see the Lobicornis README.
Your PR may be closed if:
- Design Conflicts:
The work needed to make it mergeable is too extensive.
- Solution: Create an issue first and involve maintainers during the design phase.
- Out-of-Scope Enhancements:
The PR is for a feature that doesn't align with project goals.
- Solution: Always create an issue before submitting a PR.
- Inactivity: If no feedback is received from the contributor for over 90 days.
- Top Priority:
- High community engagement and broad applicability.
- Issues tagged with
contributor/wantedorbug/confirmed.
- Secondary Priority:
- Smaller enhancements or less critical fixes.
- Deprioritized:
- Large PRs that are difficult to review.
- PRs submitted without an associated issue.
🛑 No reviews are conducted during the final weeks of a milestone to reduce churn.
- Create Issues First: Discuss your proposal with the team before starting work.
- Submit Small PRs: Break large ideas into smaller, logical PRs.
- Comment Everything: Assume reviewers are unfamiliar with your perspective or approach.
- Write Tests: Include adequate tests or ask for help with them.
- Re-request a review after addressing feedback.
- Politely comment on your PR to bring visibility during triage.
- Disagreements: If you believe a requested change is unnecessary, explain your reasoning politely.
- Overwhelming Comments: Focus on feedback from the primary reviewer (assignee). If needed, ask to fork a new PR to clear outdated comments.
- How to Write a Git Commit Message - Chris Beams
- Git Commit Guidelines
- The 50/72 Rule
- A Note About Git Commit Messages - Tim Pope
Remember, common sense and courtesy go a long way. Contributing to Pre-commit Automation Tool is a collaborative effort, so let's keep the process respectful and constructive.
Together, we can make Pre-commit Automation Tool the best it can be! 💪