From 9359c71565c91f5ee9b4d5dd103df5d65ba26d68 Mon Sep 17 00:00:00 2001 From: Ben Hawkins Date: Mon, 29 Jul 2024 13:59:34 -0600 Subject: [PATCH] Update SIMD-0001 (#157) * update simd-0001 * fix some types and improve wording simd-0001 * update line length for CI * update linting; add README.md update; update mermaid plot on SIMD-0001 * Update README.md to conform to linting rules * fixed linting errors and confirmed locally * add mermaid chart line from Accepted to Withdrawn * add blank line after ### Implemented * do not allow Draft status SIMDs into the repo * roll back removal of Draft in customRules as a valid status. Will add back in after all SIMD's have been updated * Apply suggestions from code review Co-authored-by: Jacob Creech <82475023+jacobcreech@users.noreply.github.com> Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> * make linter happy :) --------- Co-authored-by: Jacob Creech <82475023+jacobcreech@users.noreply.github.com> Co-authored-by: Trent Nelson <490004+t-nelson@users.noreply.github.com> --- .github/linter/customRules.ts | 3 +- README.md | 52 ++++++++++++++++++++++++++++++++-- proposals/0001-simd-process.md | 25 +++++++++++++--- 3 files changed, 73 insertions(+), 7 deletions(-) diff --git a/.github/linter/customRules.ts b/.github/linter/customRules.ts index 0239fb8c5..97d03d34d 100644 --- a/.github/linter/customRules.ts +++ b/.github/linter/customRules.ts @@ -281,12 +281,13 @@ export const metadataStatusIsValid = { const validStatus = [ "Idea", - "Draft", + "Draft", "Review", "Accepted", "Stagnant", "Withdrawn", "Implemented", + "Activated", ] if (!validStatus.includes(status)) { diff --git a/README.md b/README.md index 551b42fbb..bb507fd54 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,50 @@ -# Solana Improvement Documents -Solana IMprovement Documents (SIMD) describe proposed and accepted changes to the Solana protocol. +# Solana Improvement Documents (SIMDs) + +The goal of the SIMD project is to standardize and provide high-quality +documentation for Solana and its ecosystem. This repository tracks past and +ongoing improvements to Solana in the form of Solana Improvement Documents +(SIMDs). +[SIMD-0001](https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0001-simd-process.md) +governs the SIMD process. + +## SIMD Types + +SIMDs can be divided into the following categories: + +- **Standard SIMDs**: + Describe changes that affect most or all Solana implementations, such as: + - **Core**: + Changes affecting consensus or substantial changes to the validator. + - **Networking**: + Changes or substantial improvements to network protocol specifications. + - **Interfaces**: + Breaking changes around the client JSON RPC API specifications and standards. +- **Meta SIMDs**: + Describe a process surrounding Solana or propose a change to (or an event in) + a process. + +## Before You Begin + +Before you write a SIMD, ideas MUST be thoroughly discussed and vetted on the +[ideas section](https://github.com/solana-foundation/solana-improvement-documents/discussions/categories/ideas) +within this +[repo's disucssion page](https://github.com/solana-foundation/solana-improvement-documents/discussions). +Read and review [SIMD-0001](https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0001-simd-process.md), +which describes the SIMD process in detail. + +This repository is for documenting standards and not for implementation help. +For specific questions and concerns regarding SIMDs, it's best to discuss them +in the [questions section](https://github.com/solana-foundation/solana-improvement-documents/discussions/categories/questions) +of this [repo's disucssion page](https://github.com/solana-foundation/solana-improvement-documents/discussions). + +## Access Policy + +The SIMD repository has three levels of access, as detailed in +[SIMD-0007](https://github.com/solana-foundation/solana-improvement-documents/blob/main/proposals/0007-access-policy.md): + +1. Triage +2. Write +3. Maintain + +To request access or report misuse, please follow the procedures outlined in +SIMD-0007. \ No newline at end of file diff --git a/proposals/0001-simd-process.md b/proposals/0001-simd-process.md index 2966352ea..21684caf0 100644 --- a/proposals/0001-simd-process.md +++ b/proposals/0001-simd-process.md @@ -3,6 +3,7 @@ simd: '0001' title: Solana Proposal Process authors: - Jacob Creech (Solana Foundation) + - Ben Hawkins (Solana Foundation) category: Meta type: Meta status: Living @@ -83,6 +84,7 @@ The stages in a lifecycle of a proposal are as follows: - Stagnant - Withdrawn - Implemented +- Activated ```mermaid flowchart LR @@ -102,7 +104,10 @@ flowchart LR Idea ---> Draft; Draft ---> Review; Review ---> Accepted; + Accepted ---> Implemented; + Implemented ---> Activated; Review ---> Living; + Accepted ---> Withdrawn; Draft ---> Stagnant; Review ---> Stagnant; @@ -116,9 +121,10 @@ proposal author -- the reviewers, and the Solana Core Contributors. Before you begin writing a formal proposal, you should vet your idea. Ask the Solana core community first if an idea is original to avoid wasting time on -something that will be rejected based on prior research. It is thus recommended -to discuss the proposal on the Solana Tech Discord under the #core-technology -channel. +something that will be rejected based on prior research. Be sure to post your +ideas to the +[SIMD ideas discussion page](https://github.com/solana-foundation/solana-improvement-documents/discussions/categories/ideas) +and gather feedback before making your formal Proposal ### Draft @@ -130,7 +136,8 @@ is descriptive) - Fill in the proposal. Put care into the details: proposals that do not present convincing motivation, demonstrate lack of understanding of the design's impact, or are disingenuous about the drawbacks or alternatives tend -to be poorly received. +to be poorly received. Low quality proposals with limited engagement will be +closed by SIMD repository maintainers. - Submit a pull request. - Now that your proposal has an open pull request, use the issue number of the PR to update the `XXXX-` prefix to the number. @@ -160,6 +167,16 @@ far the most effective way to see a proposal through to completion: authors should not expect that other project developers will take on responsibility for implementing their accepted feature. +### Implemented + +When all relevant teams have completed development of the SIMD's feature, the +SIMD is "Implemented". + +### Activated + +A proposal will have the status Activated once it has been implemented, +tested, and finally activated on mainnet beta. + ### Living A special status for SIMDs that are designed to be continually updated and not