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

docs: add Starknet Improvement Proposals (SNIPs) page #1301

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
Next Next commit
docs: add Starknet Improvement Proposals (SNIPs) page
  • Loading branch information
LordGhostX committed Jun 21, 2024
commit cffbca5b637e526fc62239f99401feb4e3587b21
6 changes: 3 additions & 3 deletions components/Starknet/antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ title: Starknet
nav:
- modules/ROOT/nav.adoc # Home
- modules/quick-start/nav.adoc # Quick start
- modules/starknet-versions/nav.adoc # What is Starknet (temporary landing page)
- modules/architecture-and-concepts/nav.adoc # Architecture and concepts
- modules/cli/nav.adoc # Starknet CLI
- modules/tools/nav.adoc # Developer tools and resources
- modules/ROOT/nav_glossary.adoc # The glossary
- modules/tools/nav.adoc # Developer tools and resources
- modules/starknet-versions/nav.adoc # Release information
- modules/ROOT/nav_glossary.adoc # Glossary
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,4 @@
*** xref:cryptography/hash-functions.adoc[Hash functions]

* xref:economics-of-starknet.adoc[The Economics of Starknet]
* xref:improvement-proposals.adoc[Starknet Improvement Proposals (SNIPs)]
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
[id="improvement_proposals"]
= Starknet Improvement Proposals (SNIPs)
:keywords: Starknet Improvement Proposals, SNIPs, SNIP process, SNIP life cycle, SNIP editors

link:https://github.com/starknet-io/SNIPs[Starknet Improvement Proposals (SNIPs)] are design documents that describe new features, improvements, and standards for the Starknet community. They include a detailed technical specification and rationale for the proposed changes and serve as the **source of truth** for the community.

[#importance_of_snips]
== Importance of SNIPs

SNIPs are important for the development and improvement of the Starknet ecosystem. Here are some of the reasons:

- **Structured Development**: SNIPs provide a formal and organized process for proposing new features, improvements, and standards, ensuring thorough review and discussion before implementation.
- **Community Involvement**: They encourage active participation from the Starknet community by allowing anyone to propose and discuss changes, leading to more robust and well-rounded development.
- **Transparency**: The SNIP process promotes transparency in decision-making, with all the proposals and discussions publicly documented and accessible.
- **Quality Assurance**: The review process for SNIPs checks for technical soundness, feasibility, and alignment with Starknet’s goals. This helps maintain the quality and reliability of new features and improvements.
- **Documentation and Standardization**: SNIPs are comprehensive documentation of all proposed and implemented changes, making integration easier for developers.
- **Future Planning**: SNIPs help shape the future of Starknet by providing a clear roadmap of proposed improvements and features, aligning and prioritizing development efforts with Starknet’s vision.

To explore existing SNIPs, stay updated on ongoing proposals, and submit your own, visit the link:https://github.com/starknet-io/SNIPs[Starknet SNIPs repository] and link:https://community.starknet.io[Community Forum].

[#writing_a_snip]
== Writing a SNIP

Writing a SNIP involves following our guidelines to ensure your proposal is well-structured, clear, and ready for community review. The SNIP process is based on the link:https://eips.ethereum.org/EIPS/eip-1[Ethereum Improvement Proposals (EIPs) process]. Here’s how to get started:

1. Review and familiarize yourself with link:https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-1.md[SNIP-1]
2. Fork the link:https://github.com/starknet-io/SNIPs[SNIPs repository]
3. Use the link:https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-template.md[SNIP template] to create your SNIP.
4. Submit a pull request (PR) to the link:https://github.com/starknet-io/SNIPs[SNIPs repository] when your draft is complete.

Your first PR should be a draft of the final SNIP and must meet all formatting criteria, especially the correct metadata in the header. An editor reviews the PR, assigns it a number, and then merges it. Make sure you include a `discussions-to` header with the URL to a link:https://community.starknet.io/[forum] or link:https://github.com/starknet-io/SNIPs/issues/new/choose[GitHub issue] for community discussions.

[TIP]
====
Before you start writing your SNIP, it can be helpful to review well-crafted proposals from other ecosystems as they can provide insights into the structure, clarity, and detail needed to make your proposal effective.

It can also be helpful to engage with the community to receive feedback before formalizing your idea into a SNIP.
====

[#snip_life_cycle]
== SNIP life cycle

To understand the stages your SNIP goes through from idea to finalization, check out the link:https://github.com/starknet-io/SNIPs?tab=readme-ov-file#snip-life-cycle[SNIP Life Cycle]. The life cycle includes stages such as Draft, Review, Last Call, and Final, as shown in the diagram below:

image:SNIP-process-update.jpg[SNIP life cycle overview]

[#snip_editors]
== SNIP editors

SNIP editors are community members or StarkWare staff overseeing the administrative process of SNIPs. Their responsibilities include:

- Ensuring link:https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-1.md#snip-formats-and-templates[correct formatting] of submitted SNIPs
- Maintaining the link:https://github.com/starknet-io/SNIPs[SNIPs repository]
- Reviewing SNIPs for technical soundness and feasibility
- Gathering opinions from StarkWare core teams for protocol changes

For more details, see the link:https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-1.md#snip-editor-responsibilities[SNIP Editor Responsibilities]. The current SNIP editors are:

[#contributing_and_support]
== Contributing and support

Contributions are essential to the Starknet community, fostering learning, inspiration, and innovation. Your involvement benefits everyone and is greatly appreciated. Everyone is welcome to create a SNIP. Here’s how you can contribute and get support:

- **Create a SNIP**: Anyone can propose a SNIP. Ensure it follows the guidelines in link:https://github.com/starknet-io/SNIPs/blob/main/SNIPS/snip-1.md[SNIP-1].
- **Engage with the Community**: As the author, engage in discussions on the link:https://community.starknet.io/[Community Forum] and the link:https://discord.com/invite/starknet-community[Starknet Discord].
- **Seek Feedback**: Ask for feedback from the community on the link:https://community.starknet.io/[forum], link:https://discord.com/invite/starknet-community[Discord], or link:https://github.com/starknet-io/SNIPs/issues[GitHub issues] to refine your proposal.
- **Promote SNIPs**: Tweet about and write articles on link:https://github.com/starknet-io/SNIPs/tree/main/SNIPS[SNIPs] you find interesting to raise awareness and encourage discussion.

Thank you for contributing! Your participation helps strengthen and grow the Starknet community and network.