Here’s how you can get started:
-
Find Issues to Work On:
- Explore our Priority Issues.
- Check out the Good First Issues for new contributors.
- Browse the list of Confirmed Bugs to help us squash those bugs.
-
Set Up Your AWSCTL dev Environment: Follow the Development Guide to get started.
We follow the Conventional Commits specification for commit messages. This helps maintain clarity and consistency in the commit history and supports automated release tooling.
- Use the imperative mood in the summary (e.g., "add logging", not "added logging" or "adds logging").
- Example:
fix: handle invalid AWS profile error
Tip: You can add a scope to clarify the area affected, e.g.,
feat(rds): add multi-AZ support
| Type | Description |
|---|---|
| feat | A new feature (correlates with MINOR in SemVer) |
| fix | A bug fix (correlates with PATCH in SemVer) |
| docs | Documentation-only changes |
| style | Code style changes (formatting, white-space, etc., no code logic impact) |
| refactor | Code changes that neither fix a bug nor add a feature |
| perf | Code changes that improve performance |
| test | Adding or correcting tests |
| build | Changes to the build system or dependencies (e.g., Go modules, Docker) |
| ci | Changes to CI configuration files and scripts (e.g., GitHub Actions) |
| chore | Routine tasks or maintenance (e.g., dependency updates, lint fixes) |
| revert | Reverts a previous commit |
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 AWSCTL is a collaborative effort, so let's keep the process respectful and constructive.
Together, we can make AWSCTL the best it can be!