Before You Submit
Prerequisites
- Find or create an issue marked
triage approved - Comment on the issue to let others know you’re working on it
- Fork the repository and create a feature branch
- Make your changes following the code style guidelines
- Test your changes thoroughly
Creating a Pull Request
PR Requirements
DO when creating your PR:- Create one pull request per issue
- Link the issue in the PR description
- Write a detailed description explaining:
- Why the change is being made
- Why you chose this particular solution
- What manual testing you performed
- Keep code changes as small as possible
- Include corresponding tests whenever possible
- Check for additional occurrences of the same problem in other parts of the codebase
- Merge multiple unrelated changes into one PR
- Submit pure formatting/typo changes to code that has not been modified otherwise
- Submit without linking to an approved issue
PR Description Template
Git Workflow
Branch Management
Branch Management
Calculator uses the GitHub flow where most development happens directly on the
main branch.-
Create a feature branch from
main: - Make your changes in logical commits
-
Push to your fork:
-
Create a pull request from your fork to
microsoft/calculator:main
Commit History
If your change is complex, please clean up the branch history before submitting a pull request. You can use git rebase to group your changes into a small number of commits which we can review one at a time.When completing a pull request, we will generally squash your changes into a single commit. Please let us know if your pull request needs to be merged as separate commits.
Contributor License Agreement
Before your PR can be merged, you’ll need to sign a Contributor License Agreement (CLA).CLA Process
CLA Process
The CLA process is automated:
- When you create a PR, a bot will classify it:
cla-not-required: Trivial changes (e.g., typo fixes)cla-required: Substantive changes requiring a CLA
- For
cla-requiredPRs:- The bot will comment with instructions on how to sign
- Follow the link to sign the CLA
- Once signed, the PR will be labeled
cla-signed
- You only need to sign once for all Microsoft projects on GitHub
Review Process
After submitting a pull request, members of the Calculator team will review your code.What to Expect
- Assignment: A team member will be assigned to review your PR
- Community Review: Any community member may participate in the review
- Iterations: Multiple rounds of feedback are common
- Approval: At least one Calculator team member must approve before merging
Try looking at past pull requests to see what the review experience might be like.
Review Criteria
Reviewers will check:Code Quality
Code Quality
- Follows code style guidelines
- Code is clean, readable, and maintainable
- Appropriate comments for complex logic
- No unnecessary changes or reformatting
- Consistent with existing codebase patterns
Functionality
Functionality
- Solves the problem described in the linked issue
- Handles edge cases appropriately
- Includes proper error handling
- No unintended side effects
Testing
Testing
- Includes unit tests for new functionality
- Existing tests still pass
- Manual testing was performed
- Test coverage is adequate
Architecture
Architecture
- Fits well with existing architecture
- Doesn’t introduce unnecessary dependencies
- Follows separation of concerns
- Reuses existing components where appropriate
Responding to Feedback
When reviewers provide feedback:- Address all comments: Either make the requested change or explain why you disagree
- Push new commits: Add commits with your changes; don’t force-push during review
- Reply to comments: Let reviewers know when you’ve addressed their feedback
- Ask questions: If feedback is unclear, ask for clarification
Be patient and professional. Multiple iterations are normal, and reviewers are trying to help maintain code quality.
Technical Review for Features
New features require more thorough technical review than bug fixes. See the feature process documentation for the complete technical review checklist. Key areas for feature reviews:- Accessibility compliance
- Globalization support
- Performance impact
- Windows version compatibility
- Suspend/resume handling
- Theme support (light, dark, high contrast)
- Device family compatibility
After Approval
Once your PR is approved:- A team member will merge your changes
- Your commits will typically be squashed into a single commit
- The linked issue will be automatically closed
- Your contribution will be included in the next release
Thank you for contributing to Windows Calculator! Your efforts help make the app better for millions of users.
Troubleshooting
My PR is marked as conflicts
My PR is marked as conflicts
If your PR has merge conflicts:
Checks are failing
Checks are failing
If automated checks fail:
- Click on the failing check to see details
- Fix the issues locally
- Push new commits to your branch
- The checks will run automatically
- Build failures: Check compiler errors
- Test failures: Run tests locally
- Code style: Ensure formatting matches guidelines
No response from reviewers
No response from reviewers
If you haven’t received feedback after a week:
- Check that the PR is ready for review (not marked as draft)
- Ensure all checks are passing
- Add a polite comment asking for a review
- Be patient - reviewers are often busy with other work