-
Notifications
You must be signed in to change notification settings - Fork 9
Improvement proposals
Hunchworks Improvement Proposals (HIP) are the formal mechanism used to manage any sort of major change to Hunchworks. While the definition of "major" is subject to interpretation, examples of changes which are managed by the HIP process include:
- Redesign or implementation of major features
- Code re-architecture
- Changes to Hunchworks process or project policy
Only committers may submit a Hunchworks Improvement Proposal. Non-commiters are encouraged to find a committer to sponsor their idea and guide them through the process. If there is ever a question as to whether a proposal should be written, please ask on the list.
Unlike the patch review process, the Improvement Proposal process has no special treatment for committers or even for Project Steering Committee members. The reason for this is that improvement proposal review serves another purpose besides ensuring changes made are acceptable to the community: it also gives Hunchworks stakeholders time to consider and plan for large changes before they happen.
The Patch Review Process is related. While the Improvement Proposal process is intended to promote coordinated design and feedback for far-reaching modification such as core architectural changes, the code review process protects code quality in the Hunchworks project at a fine granularity.
##How a HIP works
The typical life cycle of a GNIP is as follows:
-
Developer has an intent to perform a major change
-
Developer communicates with the community about the change
-
Developer goes off and implements the change
-
Developer writes a HIP and presents it to the community for feedback
-
The PSC votes on the HIP. If the HIP author is also a member of the PSC, he should still vote.
-
Developer commits changes upon receiving a positive vote
##Voting on a HIP
One of the duties of the Hunchworks Project Steering Committee is to vote on HIPs. The voting process works as follows:
- The voting system used is the Apache consensus system. Each PSC member gets a single vote, which can be one of +1, -1, 0.
- Any PSC member that votes negatively against a proposal must provide a reasonable explanation as to why. In general, reasonable negative votes should be based on criteria listed in Review Criteria.
- Any PSC member that votes negatively against a proposal has a limited time to provide constructive feedback as to how the vote can be turned
- The HIP author must incorporate any reasonable feedback into the proposal
- Any negative vote is reviewed to determine if criteria has been met to turn it to a positive vote
- The proposal is considered successful after a majority of positive votes is a achieved and all feedback from any negative votes has been addressed
Non-PSC members of the Hunchworks community are encouraged to participate in HIP review, but a negative vote does not block the realization of the proposal unless it comes from a steering committee member.
##Implementing a HIP
In order to maintain records of design discussions, proposals must be submitted as pages on the Hunchworks wiki. To make a proposal:
- Log in to the wiki and create a new page.
- Name the new page "HIP ## -" where:
- is the title of the HIP
- Fill in the information in the page template, and click Save when complete.
- Link to the new page from the Proposals Under Discussion page.