Every new feature require a JIRA ticket and depending on the complexity of the feature it will also require a specification document following the template available at <wiki/pdf>. Make sure to detail the tests executed for your change to an existing class or add test coverage for a new feature.
Before starting to work on the feature, open a discussion on the dev list or at least state that you will be working on such feature for major, larger features or public API changes.
Follow the criteria for code submission <wiki>
After implementation and tests are complete, please request a review on ReviewBoard (reviews.apache.org) following <ReviewProcess> guidelines.
Make sure to also ask on the dev list for a review or mentoring of a domain expert of the component that is being modified if you are unsure or consider your change complex or significant enough. It’s always good to have some feedback or almost any code and it helps the overall quality process of the project and code.
For every single feature/patch or change in the code, please make sure that performance and backward compatibility concerns were addressed, since they’re core principles of the project.
Make sure you have followed the branching model and have <feature-name>-feature branch for your feature.