From c824f9203d8a2b244e75bc3d72c3467dd1c424f9 Mon Sep 17 00:00:00 2001 From: David Justice Date: Wed, 20 Nov 2024 07:25:06 -0500 Subject: [PATCH] create the hyperlight proposal process (#25) Signed-off-by: David Justice Co-authored-by: Dan Chiarlone --- proposals/0000-hip-process/README.md | 38 ++++++ proposals/NNNN-hip-template/README.md | 177 ++++++++++++++++++++++++++ proposals/README.md | 25 ++++ 3 files changed, 240 insertions(+) create mode 100644 proposals/0000-hip-process/README.md create mode 100644 proposals/NNNN-hip-template/README.md create mode 100644 proposals/README.md diff --git a/proposals/0000-hip-process/README.md b/proposals/0000-hip-process/README.md new file mode 100644 index 00000000..7bec13fa --- /dev/null +++ b/proposals/0000-hip-process/README.md @@ -0,0 +1,38 @@ +# Hyperlight Improvement Process + + +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) + + +## Summary + +Hyperlight Improvement Proposals, otherwise known as HIPs, are largely influenced by the Kubernetes +Enhancement Proposal (KEP) process which provides a standardized development process for Hyperlight +enhancements. You can read more about the +[KEP process in 0000-kep-process here](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md). + +## Motivation + +### Goals + +1. Since Hyperlight is a smaller project than Kubernetes and has a smaller community of contributors, the +needs are slightly different from that of the Kubernetes project. HIPs do not strive to meet the rigor +of their inspiration in Kubernetes, but rather, to provide a means for communication of intent and a +historical record for the motivations that drove the improvement. + +### Non-goals + +1. To have all changes require a HIP. Only significantly impacting work should be stated as a HIP, e.g. +a large refactoring, significant feature enhancements, breaking APIs, etc. +2. We will omit the use of KEP like metadata that is associated with KEPs. + +## Proposal + +We propose creating a standardized improvement proposal process for Hyperlight modeled after the Kubernetes +Enhancement Proposal process. + + diff --git a/proposals/NNNN-hip-template/README.md b/proposals/NNNN-hip-template/README.md new file mode 100644 index 00000000..b6ca1622 --- /dev/null +++ b/proposals/NNNN-hip-template/README.md @@ -0,0 +1,177 @@ +# HIP NNNN - SKIP NAME + + +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) + - [User Stories (Optional)](#user-stories-optional) + - [Story 1](#story-1) + - [Story 2](#story-2) + - [Notes/Constraints/Caveats (Optional)](#notesconstraintscaveats-optional) + - [Risks and Mitigations](#risks-and-mitigations) +- [Design Details](#design-details) + - [Test Plan](#test-plan) + - [Unit tests](#unit-tests) + - [Integration tests](#integration-tests) + - [e2e tests](#e2e-tests) +- [Implementation History](#implementation-history) +- [Drawbacks](#drawbacks) +- [Alternatives](#alternatives) + + +## Summary + + + +## Motivation + + + +### Goals + + + +### Non-Goals + + + +## Proposal + + + +### User Stories (Optional) + + + +#### Story 1 + +#### Story 2 + +### Notes/Constraints/Caveats (Optional) + + + +### Risks and Mitigations + + + +## Design Details + + + +### Test Plan + + + +##### Unit tests + + + +##### Integration tests + + + +##### e2e tests + + + +## Implementation History + + + +## Drawbacks + + + +## Alternatives + + diff --git a/proposals/README.md b/proposals/README.md new file mode 100644 index 00000000..918bd311 --- /dev/null +++ b/proposals/README.md @@ -0,0 +1,25 @@ +# Hyperlight Improvement Proposals (HIPs) + +Hyperlight Improvement Proposals, otherwise known as HIPs, are largely influenced by the Kubernetes +Enhancement Proposal (KEP) process which provides a standardized development process for Hyperlight +enhancements. You can read more about the +[KEP process in 0000-kep-process here](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md). + +## Authoring a HIP +When you have a new enhancement that is more than a relatively trivial enhancement or bug fix, the +change should be first socialized as a HIP. To help authors to get started a HIP template is located in +[NNNN-hip-template](./NNNN-hip-template/README.md). + +1. Create a new directory under [the proposals directory](../proposals) in the form of `NNNN-hip-${hip_name}` + where `NNNN` is the next HIP number available. For example, if HIP 0001 is currently the highest number HIP and + your enhancement is titled "Make Me a Sandwich", then your HIP would be `0002-hip-make-me-a-sandwich`. +2. Within your `NNNN-hip-${hip_name}` directory create a file named `README.md` containing a copy of the HIP + template. +3. Author the content of the template. Not all sections are necessary. Please consider filling out the + summary, motivation, and proposal sections first to gather early feedback on the desirability of the + enhancement through a draft pull request. +4. After socializing the proposal and integrating early feedback, continue with the rest of the sections. +5. Update the pull request with the rest of the sections and remove the draft status from the pull request. +6. Address any feedback to the proposal and get it merged. +7. Implement the enhancement. +