From 86a7372af7866844a4dfb34943cde41cd99bded4 Mon Sep 17 00:00:00 2001 From: Sambhav Kothari Date: Thu, 11 Apr 2024 14:44:07 +0100 Subject: [PATCH 1/2] Add a hera proposal process Signed-off-by: Sambhav Kothari --- hep/README.md | 23 +++++++++ hep/proposals/0000-template.md | 93 ++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 hep/README.md create mode 100644 hep/proposals/0000-template.md diff --git a/hep/README.md b/hep/README.md new file mode 100644 index 00000000..d172c36d --- /dev/null +++ b/hep/README.md @@ -0,0 +1,23 @@ +# Hera Enhancement Proposals (HEP) + +This folder is used to manage Hera Enhancement Proposals (HEPs). An enhancement proposal is recommend for any significant change, including new features and enhancements. + +## HEP Process + +To get a significant feature into Hera, first, a HEP needs to be approved and merged into the hera repo. Once it is merged, it's considered 'Accepted' and may be 'Implemented' to be included in the project. These steps will get an HEP to be considered: + +1. Fork the hera repo: https://github.com/argoproj-labs/hera +2. Copy 0000-template.md to `proposals/0000-.md` (where '' is descriptive.). +3. Fill in the details for the HEP. Any section can be marked as "N/A" if not applicable. +4. Submit a pull request. The pull request is the time to get review of the proposal from the larger community. +5. Once the pull request is approved by a maintainer, the HEP will enter the 'Final Comment Period'. + +### Final Comment Period + +When a HEP enters the FCP the following will happen: + +1. A maintainer will apply the "Final Comment Period" label. +2. The FCP will last 7 days. If there's unanimous agreement amongst the maintainers the FCP can close early. +3. For voting, the binding votes are comprised of the maintainers. Acceptance requires ALL binding votes in favor. The absence of a vote from a party with a binding vote in the process is considered to be a vote in the affirmative. Non-binding votes are of course welcome. +4. Each maintainer gets a veto on the proposal. If there is a veto, the HEP will go back to the development phase until consensus is met. +5. If no substantial new arguments or ideas are raised, the FCP will follow the outcome decided. diff --git a/hep/proposals/0000-template.md b/hep/proposals/0000-template.md new file mode 100644 index 00000000..964dcf62 --- /dev/null +++ b/hep/proposals/0000-template.md @@ -0,0 +1,93 @@ +# Meta +[meta]: #meta +- Name: (fill in the feature name: My Feature) +- Start Date: (fill in today's date: YYYY-MM-DD) +- Update data (optional): (fill in today's date: YYYY-MM-DD) +- Author(s): (Github usernames) +- Supersedes: (put "N/A" unless this replaces an existing HEP, then link to that HEP) + +# Table of Contents +[table-of-contents]: #table-of-contents +- [Meta](#meta) +- [Table of Contents](#table-of-contents) +- [Overview](#overview) +- [Definitions](#definitions) +- [Motivation](#motivation) +- [Proposal](#proposal) + - [Terminology](#terminology) + - [Code Examples](#code-examples) + - [How to teach (OPTIONAL)](#how-to-teach-optional) +- [Implementation (OPTIONAL)](#implementation-optional) + - [Link to the Implementation PR](#link-to-the-implementation-pr) +- [Migration (OPTIONAL)](#migration-optional) +- [Drawbacks](#drawbacks) +- [Alternatives](#alternatives) +- [Prior Art](#prior-art) +- [Unresolved Questions (OPTIONAL)](#unresolved-questions-optional) + +# Overview +[overview]: #overview + +One paragraph explanation of the feature. + +# Definitions +[definitions]: #definitions + +Make a list of the definitions that may be useful for those reviewing. Include phrases and words that Hera users or other interested parties may not be familiar with. + +# Motivation +[motivation]: #motivation + +- Why should we do this? +- What use cases does it support? +- What is the expected outcome? + +# Proposal + +This provides a high level overview of the feature. + +## Terminology + +Define any new terminology. + + +## Code Examples + +Explaining the feature largely in terms of examples. + +## How to teach (OPTIONAL) + +If applicable, describe the differences between teaching this to existing users and new users. + + +# Implementation (OPTIONAL) + +This is the technical portion of the HEP, where you explain the design in sufficient detail. + +The section should return to the examples given in the previous section, and explain more fully how the detailed proposal makes those examples work. + +## Link to the Implementation PR + +# Migration (OPTIONAL) + +This section should document breaks to public API and breaks in compatibility due to this HEP's proposed changes. In addition, it should document the proposed steps that one would need to take to work through these changes. + +# Drawbacks + +Why should we **not** do this? + +# Alternatives + +- What other designs have been considered? +- Why is this proposal the best? +- What is the impact of not doing this? + +# Prior Art + +Discuss prior art, both the good and bad. + +# Unresolved Questions (OPTIONAL) + +- What parts of the design do you expect to be resolved before this gets merged? +- What parts of the design do you expect to be resolved through implementation of the feature? +- What related issues do you consider out of scope for this HEP that could be addressed in the future independently of the solution that comes out of this HEP? From 439c369527a0e4617a927fec45de5e10e046900c Mon Sep 17 00:00:00 2001 From: Sambhav Kothari Date: Thu, 11 Apr 2024 20:30:03 +0100 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Elliot Gunton Signed-off-by: Sambhav Kothari --- hep/README.md | 4 ++-- hep/proposals/0000-template.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hep/README.md b/hep/README.md index d172c36d..6910dda2 100644 --- a/hep/README.md +++ b/hep/README.md @@ -1,13 +1,13 @@ # Hera Enhancement Proposals (HEP) -This folder is used to manage Hera Enhancement Proposals (HEPs). An enhancement proposal is recommend for any significant change, including new features and enhancements. +This folder is used to manage Hera Enhancement Proposals (HEPs). An enhancement proposal is recommended for any significant change, including new features and enhancements. ## HEP Process To get a significant feature into Hera, first, a HEP needs to be approved and merged into the hera repo. Once it is merged, it's considered 'Accepted' and may be 'Implemented' to be included in the project. These steps will get an HEP to be considered: 1. Fork the hera repo: https://github.com/argoproj-labs/hera -2. Copy 0000-template.md to `proposals/0000-.md` (where '' is descriptive.). +2. Copy 0000-template.md to `proposals/0000-.md` (where `` is descriptive.). 3. Fill in the details for the HEP. Any section can be marked as "N/A" if not applicable. 4. Submit a pull request. The pull request is the time to get review of the proposal from the larger community. 5. Once the pull request is approved by a maintainer, the HEP will enter the 'Final Comment Period'. diff --git a/hep/proposals/0000-template.md b/hep/proposals/0000-template.md index 964dcf62..1eee30c1 100644 --- a/hep/proposals/0000-template.md +++ b/hep/proposals/0000-template.md @@ -84,7 +84,7 @@ Why should we **not** do this? # Prior Art -Discuss prior art, both the good and bad. +Discuss [prior art](https://en.wikipedia.org/wiki/Prior_art), both the good and bad. # Unresolved Questions (OPTIONAL)