The purpose of this document is to describe the expected workflow for receiving and adopting new proposals for the Kubeflow community.
The Kubeflow community's primary goals for a proposal workflow are:
- Provide enough structure to maintain a repeatable workflow from submission to resolution
- Be lightweight enough for community members to learn easily, and ensure that this new community remains agile
- Leave a durable record of proposals, community feedback, and final decision on acceptance
- Inform the community roadmap
Proposals are expected for any significant modifications to the Kubeflow project, for example:
- Adding a new subproject, application, dependency or component
- Any large-scale refactoring of existing subprojects or applications
- Substantial changes to a public API, UX or UI
A proposal is a Markdown (*.md
) file and will be expected to have the following
structure:
- Motivation: high level description of the problem or opportunity being addressed
- Goals: specific new functionalities or other changes
- Non-Goals: issues or changes not being addressed by this proposal
- UI or API: New interfaces or changes to existing interfaces. Backward compatibility must be considered
- Design: Description of new software design and any major changes to existing software. Should include figures or diagrams where appropriate
- Alternatives Considered: Description of possible alternative solutions and the reasons they were not chosen.
This structure is also exemplified by a template. In order to support the goal of keeping the proposal process lightweight, proposals will have a recommended 2-page limit.
The workflow for submitting and reviewing a new proposal is as follows:
- A Markdown file (
*.md
) will be drafted for the proposal. - A pull request (PR) will be filed against this repository (
kubeflow/community
), which adds this Markdown file to theproposals
directory. This PR will also include adding a link to the proposal from the accepted-proposals.md file. The PR title should match the proposal title. - The proposal will be announced on the kubeflow-discuss group, and at one of the weekly meetings, so that community members will be aware of it.
- There will be a two week period for comment and review. Review and feedback take place on the PR, in standard PR review fashion.
- At the end of the review period, a vote will be held. This vote will also take place on the PR. If a proposal receives 3 binding
+1
votes from Kubeflow project Approvers, and no binding-1
votes, the proposal will be accepted, and added to the community repo. The PR will be merged, and the labelaccepted-proposal
will be added to the PR. - If a proposal is voted down, the PR will be left unmerged, and the label
tabled-proposal
will be added to the PR.