-
Notifications
You must be signed in to change notification settings - Fork 5.3k
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 EIP: Network Upgrade Inclusion Stages #8662
Merged
Merged
Changes from 4 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
494ed5a
Add CFI EIP
timbeiko 1796644
Add ethmag link
timbeiko 480d960
name fix
timbeiko e519536
Whitespace
timbeiko fa1aad7
Add EIP number, clarifications
timbeiko d173b5e
Filename
timbeiko 68aa6d7
language tweak
timbeiko aa7f8ce
Update EIPS/eip-7723.md
timbeiko File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
--- | ||
Check failure on line 1 in EIPS/eip-cfi.md GitHub Actions / EIP Walidatorpreamble is missing header(s): `eip`
|
||
title: Network Upgrade Inclusion Stages | ||
description: Overview of the various stages Core EIPs go through before their activation in network upgrades. | ||
author: Tim Beiko (@timbeiko) | ||
discussions-to: https://ethereum-magicians.org/t/eip-xxxx-network-upgrade-inclusion-stages/20281 | ||
timbeiko marked this conversation as resolved.
Show resolved
Hide resolved
|
||
status: Draft | ||
type: Meta | ||
created: 2024-06-12 | ||
--- | ||
|
||
## Abstract | ||
|
||
Define the stages that Core EIPs go through in the process of planning network upgrades: `Proposed for Inclusion`, `Considered for Inclusion`, `Scheduled for Inclusion`, and `Included`. | ||
|
||
## Motivation | ||
|
||
When planning network upgrades, EIPs go through the `Considered for Inclusion` and `Included` stages. However, definitions for these terms are either outdated or non-existent. | ||
|
||
Additionally, there isn't a formalized way for the Ethereum community to signal which EIPs they'd like to see included in a network upgrade, or for implementation teams to keep track of these. | ||
|
||
This EIP proposes definitions for each of the following stages: `Proposed for Inclusion`, `Considered for Inclusion`, `Scheduled for Inclusion`, and `Included`. It also provides context and guidelines around when and how EIPs should be moved from one stage to the next. | ||
|
||
## Specification | ||
|
||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. | ||
|
||
### Context: Upgrade Meta EIPs | ||
|
||
When planning a network upgrade, an Upgrade Meta EIP **MUST** be drafted to list EIPs in various stages of consideration. This Meta EIP **SHOULD** include three categories in its specification section: `Proposed for Inclusion`, `Considered for Inclusion` and `Scheduled for Inclusion`. Even if a category is empty, it **SHOULD** be included in the initial draft for clarity. | ||
|
||
When the Upgrade Meta EIP is moved to `Last Call`, the `Proposed for Inclusion` and `Considered for Inclusion` lists **SHOULD** be removed, leaving only `Scheduled for Inclusion`. | ||
|
||
Before the Upgrade Meta EIP is moved to `Final`, the `Scheduled for Inclusion` stage **MUST** be renamed to `Included` and contain only EIPs that were activated in the upgrade. | ||
|
||
### Proposed for Inclusion | ||
|
||
To formally propose the inclusion of a Core EIP in a network upgrade, someone **MUST** open a pull request against the Upgrade Meta EIP to add the EIP in the `Proposed for Inclusion` section. The pull request **SHOULD** be merged in a timely fashion by the Upgrade Meta EIP author. | ||
|
||
At this stage, implementation teams **SHOULD** review the EIP in the context of including it in the next upgrade. | ||
|
||
Note that EIPs must be `Proposed for Inclusion` for each network upgrade. In other words, proposals do not "carry over" to the next upgrade if an EIP is not included in the one it was first proposed for. | ||
|
||
### Considered for Inclusion | ||
|
||
Once client developers have reviewed an EIP which was `Proposed for Inclusion`, they **MAY** move it to the `Considered for Inclusion` stage. Once a decision is made by client teams to move an EIP to `Considered for Inclusion`, the Upgrade Meta EIP **MUST** be updated to reflect this. | ||
|
||
`Considered for Inclusion` signals that client developers are generally positive towards the EIP, and that, assuming it meets all the requirements for mainnet deployment, it **MAY** be included in the network upgrade. This stage is similar to "concept ACK" in other open source projects, and is not sufficient to result in deployment to mainnet. | ||
|
||
### Scheduled for Inclusion | ||
|
||
When client developers decide to work on an EIP as part of a network upgrade, the EIP **SHOULD** move to the `Scheduled for Inclusion` stage, and the Upgrade Meta EIP **MUST** be updated to reflect this. | ||
|
||
|
||
`Scheduled for Inclusion` signals that implementation and testing work are underway, and that, assuming no issues arise as part of this process, the EIP **SHOULD** be included in the network upgrade. | ||
|
||
### Included | ||
|
||
Once a network upgrade has been activated, all EIPs that were part in the upgrade **MUST** be moved to `Included` in the Upgrade Meta EIP, and the `Proposed for Inclusion`, `Considered for Inclusion` and `Scheduled for Inclusion` lists **MUST** be removed from the Meta EIP. | ||
|
||
`Included` signals that the EIPs have been activated as part of the network upgrade. | ||
|
||
## Rationale | ||
|
||
Formalizing the `Proposed for Inclusion`, `Considered for Inclusion`, `Scheduled for Inclusion`, and `Included` stages provides better legibility to both Ethereum protocol maintainers and the community at large. | ||
|
||
The specification tries to minimize steps which **MUST** be followed to align with Ethereum's "rough consensus" governance model. | ||
|
||
Assuming it is adopted, the process outlined in this EIP should be used for at least one full network upgrade cycle before moving to `Last Call` and at least two full network upgrades cycles before moving to `Final`. This way, the EIP can be updated to reflect changes made to the process over time. | ||
|
||
## Backwards Compatibility | ||
|
||
This EIP does not directly change the Ethereum protocol. It extends and formalizes the current process of planning network upgrades. | ||
|
||
## Security Considerations | ||
|
||
None. | ||
|
||
## Copyright | ||
|
||
Copyright and related rights waived via [CC0](../LICENSE.md). |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assigning next sequential EIP/ERC/RIP number.
Please also update the filename.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.