Contributing to NullAway ======================= Uber welcomes contributions of all kinds and sizes. This includes everything from from simple bug reports to large features. Workflow -------- We love GitHub issues! For small feature requests, an issue first proposing it for discussion or demo implementation in a PR suffice. For big features, please open an issue so that we can agree on the direction, and hopefully avoid investing a lot of time on a feature that might need reworking. Small pull requests for things like typos, bug fixes, etc are always welcome. DOs and DON'Ts -------------- * DO format your code using Google Java Format. An appropriate Git pre-commit hook is automatically installed the first time you run `./gradlew`. * DO include tests when adding new features. When fixing bugs, start with adding a test that highlights how the current behavior is broken. * DO keep the discussions focused. When a new or related topic comes up it's often better to create new issue than to side track the discussion. * DON'T submit PRs that alter licensing related files or headers. If you believe there's a problem with them, file an issue and we'll be happy to discuss it. Guiding Principles ------------------ * We allow anyone to participate in our projects. Tasks can be carried out by anyone that demonstrates the capability to complete them * Always be respectful of one another. Assume the best in others and act with empathy at all times * Collaborate closely with individuals maintaining the project or experienced users. Getting ideas out in the open and seeing a proposal before it's a pull request helps reduce redundancy and ensures we're all connected to the decision making process