This removes some unnecessary process details, removes some of the more
hierarchical/authoritarian elements, and adjust the language to reflect
a more open process.
@ -15,36 +15,41 @@ Follow either of the two links above to access the appropriate CLA and instructi
***NOTE***: Only original source code from you and other people that have signed the CLA can be accepted into the main repository.
***NOTE***: Only original source code from you and other people that have signed the CLA can be accepted into the main repository.
## Order of Development
## Development Lifecycle
The project uses a combination of milestones and priority labels on GitHub issues to help development flow smoothly. While exceptions may be required on occasion, the team observes the following guidelines:
The project uses a combination of milestones and priority labels on GitHub issues to help development flow smoothly. While exceptions may be required on occasion, the team observes the following guidelines:
* PRs should only be submitted for issues in the current milestone. PRs for other milestones will not be reviewed or merged until the milestone for the issue(s) they address has started.
* At appropriate intervals, the Helm team creates a milestone and assigns
* PRs should be submitted more or less in issue priority order, with the caveat that because different issues may take different amounts of time to work, PRs may arrive out of order at times. However, lower priority PRs may not be reviewed or merged until higher priority PRs have been processed, and the review or merging of lower priority PRs may be interrupted by the arrival of higher priority PRs.
issues to it. This represents the team's priorities and intent.
* PRs/Issues related to the current milestone are prioritized over other PRs.
* PRs/Issues that fix a broken master build (or meet other P0 criteria) are
prioritized over other PRs.
## How to Contribute A Patch
## How to Contribute A Patch
### Overview
### Overview
1. Submit an issue describing your proposed change to the repo in question.
1. Submit an issue describing your proposed change to the repo in question.
1. The repo owner will respond to your issue promptly.
1. A collaborator will respond to your issue.
1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
1. Fork the desired repo, develop and test your code changes.
1. Fork the desired repo, develop and test your code changes.
1. Submit a pull request.
1. Submit a pull request.
### Design Document
### Feature Proposals
If the change you are proposing is substantial, before opening a pull request, ensure you reference a design document that can be discussed in the open.
Before adding a feature or making a major change to the code, open an
issue marked as a _proposal_ and explain your idea. For complex changes,
you may be asked to produce a design document.
### Single Issue
### Single Issue
When fixing or implementing a GitHub issue, resist the temptation to refactor nearby code or to fix that potential bug you noticed. Instead, open a new pull request just for that change.
When fixing or implementing a GitHub issue, resist the temptation to refactor nearby code or to fix that potential bug you noticed. Instead, open a new pull request just for that change.
It's hard to reach agreement on the merit of a PR when it isn't focused. Keeping concerns separated allows pull requests to be tested, reviewed, and merged more quickly.
Keeping concerns separated allows pull requests to be tested, reviewed, and merged more quickly.
Squash and rebase the commit or commits in your pull request into logical units of work with `git`. Include tests and documentation changes in the same commit, so that a revert would remove all traces of the feature or fix.
Squash and rebase the commit or commits in your pull request into logical units of work with `git`. Include tests and documentation changes in the same commit, so that a revert would remove all traces of the feature or fix.
Most pull requests will reference a GitHub issue. In the PR description–not in the commit itself–include a line such as "Closes #1234". The issue referenced will then be closed when your PR is merged.
If a PR completely resolves an existing issue, this should be noted. In the PR description–not in the commit itself–include a line such as "Closes #1234". The issue referenced will then be closed when your PR is merged. If it otherwise relates to an existing issue, that should be noted in the comment as well.
### Include Tests & Documentation
### Include Tests & Documentation
@ -52,13 +57,15 @@ If you change or add functionality, your changes should include the necessary te
Pull requests that do not include sufficient tests or documentation will be rejected.
Pull requests that do not include sufficient tests or documentation will be rejected.
### Code Standards
### Coding Standards
Go code should always be run through `gofmt` on the default settings. Lines of code may be up to 99 characters long. Documentation strings and tests are required for all public methods. Use of third-party go packages should be minimal, but when doing so, vendor code using [Glide](http://glide.sh/).
Go code should always be run through `gofmt` on the default settings. Lines of code may be up to 99 characters long. Documentation strings and tests are required for all public methods. Use of third-party go packages should be minimal, but when doing so, vendor code using [Glide](http://glide.sh/).
Python code should conform to [PEP8](https://www.python.org/dev/peps/pep-0008/).
### Merge Approval
### Merge Approval
Helm collaborators may add "LGTM" (Looks Good To Me) or an equivalent comment to indicate that a PR is acceptable. Any code change (other than a simple typo fix or one-line documentation change) requires at least one LGTM. No pull requests can be merged until at least one Helm collaborator signs off with an LGTM.
Helm collaborators may add "LGTM" (Looks Good To Me) or an equivalent comment to indicate that a PR is acceptable. Any change requires at least one LGTM. No pull requests can be merged until at least one Helm collaborator signs off with an LGTM.
If the PR is from a Helm collaborator, then he or she should be the one to merge and close it. This keeps the commit stream clean and gives the collaborator the benefit of revisiting the PR before deciding whether or not to merge the changes.
If the PR is from a Helm collaborator, then he or she should be the one to merge and close it. This keeps the commit stream clean and gives the collaborator the benefit of revisiting the PR before deciding whether or not to merge the changes.
The Helm project includes two types of maintainers: collaborators and core maintainers.
The Helm project includes two types of official maintainers: collaborators and core maintainers.
### Helm Collaborators
### Helm Collaborators
@ -28,23 +28,27 @@ The duties of a collaborator include:
* Shape the Helm roadmap and lead efforts to accomplish roadmap milestones
* Shape the Helm roadmap and lead efforts to accomplish roadmap milestones
* Participate actively in feature development and bug fixing
* Participate actively in feature development and bug fixing
* Answer questions and help users
* Answer questions and help users
* Participate in planning meetings
### Helm Core Maintainers
### Helm Core Maintainers
Helm core maintainers help shape the direction of the Helm project. In addition to the duties of a Collaborator, Helm Core Maintainers also:
In addition to the duties of a Collaborator, Helm Core Maintainers also:
* Run project planning meetings
* Coordinate planning meetings
* Place GitHub issues into GitHub milestones
* Triage GitHub issues for milestone planning
* Prioritize issues within a milestone
* Escalate emergency issues (broken builds, security flaws) outside of
the normal planning process
The current core maintainers of Helm (in alphabetical order):
The current core maintainers of Helm:
* Jack Greenfield - [@jackgr](https://github.com/jackgr)
* Jack Greenfield - [@jackgr](https://github.com/jackgr)
* Matt Butcher - [@technosophos](https://github.com/technosophos)
* Matt Butcher - [@technosophos](https://github.com/technosophos)
## Project Planning
## Project Planning
The Helm core maintainers hold regular planning meetings to set the project direction, milestones, and relative prioritization of issues. Planning meetings are coordinated via the #Helm room in the [Kubernetes Slack](http://slack.kubernetes.io/). In order to solicit feedback from the community, planning meetings are run in public whenever possible.
The Helm team holds regular planning meetings to set the project direction, milestones, and relative prioritization of issues. Planning meetings are coordinated via the #Helm room in the [Kubernetes Slack](http://slack.kubernetes.io/).
In order to solicit feedback from the community, planning meetings are run in public whenever possible.