...
Now start coding! As you are writing your patch, please keep the following things in mind:
First, try to follow best practices for coding and design (see Effective Coding Practices for guidelines).
Second, please follow the Impala style guide. We are sticklers for adherence to the guide (with a couple of exceptions), and we won’t accept any patch that needs work in this regard. For Java and Python we do not have formal guides yet (writing one would be an excellent contribution!); please try to follow the standards set by existing code. We will help you with this when your patch is reviewed.
You can use clang-format or clang-format-diff to format the whitespace of the C++ parts of your patch using the file .clang-format included in the git repository, which is tuned to match our current coding style as closely as possible. When you submit a clang-formatted patch, please do not reformat the entire file you are working on, but only the parts of it you are changing.
SecondThird, please include tests with your patch. If your patch does not include tests, it will not be accepted. If you are unsure how to write tests for a particular component, please ask on the impala-dev mailing list for guidance.
ThirdFourth, run all the existing Impala test to ensure your fix doesn't introduce any new issues. See How to load and run Impala tests for more details.
FourthFifth, please keep your patch narrowly targeted to the problem described by the JIRA. It’s better for everyone if we maintain discipline about the scope of each patch. In general, if you find a bug while working on a specific feature, file a JIRA for the bug, check if you can assign it to yourself and fix it independently of the feature. This helps us to differentiate between bug fixes and features and allows us to build stable maintenance releases.
...