Replies: 2 comments 4 replies
-
I'm going to add some context in a comment:
|
Beta Was this translation helpful? Give feedback.
3 replies
-
The process makes logical sense to me! 👍 The only question I have remaining is around the time frames - which might end up being a bit short? For example if a Maintainer who intended to vote -1 on a KER happened to be on holiday and out of contact for 1 week (which seems possible), then a vote might sneak through despite their intended veto? haha Should the voting period perhaps be extended to longer than a week? |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
What is a KEP?
KEP stands for Kedro Enhancement Proposal and is similar to a product requirement document commonly used in product management. The purpose of a KEP is to inform and involve the user community in major improvements to the Kedro codebase throughout the development process, to increase the likelihood that user needs are met.
KEPs should be used for significant user-facing or cross-cutting changes, not small incremental improvements. When in doubt, if a maintainer thinks a change needs an KEP, it does.
A KEP:
Who participates in a KEP?
Any community member can help by discussing whether a KEP is likely to meet their needs, and by proposing KEPs.
Committers can help by discussing whether a KEP is likely to be technically feasible.
Maintainers can help by discussing whether a KEP aligns with long-term project goals, and by shepherding KEPs.
KEP Author is any community member who authors a KEP and is committed to pushing the change through the entire process. KEP authorship can be transferred.
KEP Shepherd is a Kedro maintainer who is committed to shepherding the proposed change throughout the entire process. Although the shepherd can delegate or work with other committers in the development process, the shepherd is ultimately responsible for the success or failure of the KEP. Responsibilities of the shepherd include, but are not limited to:
What is the KEP process?
Proposing a KEP
Anyone may propose a KEP using the document template below. Please only submit an KEP if you are willing to help, at least with discussion.
If an KEP is too small or incremental and should have been done through the normal issue process, a committer should convert the discussion to an issue.
KEP document template
A KEP document is a short document with a few questions, inspired by the Heilmeier Catechism:
Q1. What are you trying to do? Articulate your objectives using absolutely no jargon.
Q2. What problem is this proposal NOT designed to solve?
Q3. How is it done today, and what are the limits of current practice?
Q4. What is new in your approach and why do you think it will be successful?
Q5. Who cares? If you are successful, what difference will it make?
Q6. What are the risks?
Q7. How long will it take?
Q8. What are the mid-term and final "exams" to check for success?
Appendix A. Proposed API Changes. Optional section defining APIs changes, if any. Backward and forward compatibility must be taken into account.
Appendix B. Optional Design Sketch: How are the goals going to be accomplished? Give sufficient technical detail to allow a contributor to judge whether it’s likely to be feasible. Note that this is not a full design document.
Appendix C. Optional Rejected Designs: What alternatives were considered? Why were they rejected? If no alternatives have been considered, the problem needs more thought.
Discussing a KEP
All discussion of a KEP should take place in a public forum. Any discussions that happen offline should be made available online for the public via meeting notes summarizing the discussions, to the extent possible.
During this discussion, one or more shepherds should be identified among maintainers.
Once the discussion settles, the shepherd(s) should call for a vote on the PEP moving forward in the
#kedro-tsc
channel on the Kedro Slack organisation. The vote should be open for at least one week and passes upon consensus (at least 3 +1 votes from maintainers and no -1 votes from maintainers).kedro-tsc
should be notified of the vote result.If there does not exist at least one maintainer that is committed to shepherding the change within a month, the KEP is rejected.
If a maintainer does not think a KEP aligns with long-term project goals, or is not practical at the point of proposal, the maintainer should -1 the KEP explicitly and give technical justifications.
Implementing a KEP
Implementation should take place via the standard process for code changes. Changes that require KEPs typically also require design documents to be written and reviewed.
1 vote ·
Beta Was this translation helpful? Give feedback.
All reactions