Contributions are welcomed and encouraged. There are four steps...
Before Square can accept your code, you must sign the Individual Contributor License Agreement (CLA). If you already signed it for other Square projects, let us know. It only needs to be signed once.
Create an issue to describe the bug fix, feature change, or new feature you want to contribute. Wait for confirmation from a Square engineer before writing code to ensure that the contribution will be accepted if it meets criteria in the next step and passes PR review.
Reproducible bugs are an exception. If you can reliably reproduce a bug, especially by writing a test case for it, then feel free to start writing code after creating an issue; don't wait for us.
Fork the repository and make your changes. Code must meet these criteria:
- Pass all tests
- Be documented
- Be formatted with
go fmt
- Maintain backward compatibility
- Follow existing conventions and style
- Address only one issue (small PRs)
Other criteria may apply on an issue-by-issue basis.
When you are done, submit a pull request (PR). If you want to submit a PR before the code is ready for review, prefix the PR description with "[WIP]" and we will ignore it. Else, we consider all PR ready for review.
A Square engineer will review the PR and check it against the criteria listed above. When everything is ready, we will merge the code and close the issue.