Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a hera proposal process #1031

Merged
merged 2 commits into from
Apr 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions hep/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Hera Enhancement Proposals (HEP)

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-<proposal-name>.md` (where `<proposal-name>` 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.
93 changes: 93 additions & 0 deletions hep/proposals/0000-template.md
Original file line number Diff line number Diff line change
@@ -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](https://en.wikipedia.org/wiki/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?
Loading