From 494ed5a666d0694d9a8750f987ad01c7060524d3 Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Wed, 12 Jun 2024 14:55:27 -0700 Subject: [PATCH 1/8] Add CFI EIP Signed-off-by: Tim Beiko <9390255+timbeiko@users.noreply.github.com> --- EIPS/eip-cfi.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 EIPS/eip-cfi.md diff --git a/EIPS/eip-cfi.md b/EIPS/eip-cfi.md new file mode 100644 index 00000000000000..a9050d84921e86 --- /dev/null +++ b/EIPS/eip-cfi.md @@ -0,0 +1,80 @@ +--- +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: +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). From 17966440d342a6e72e04455f1836e0a9e9d7dea0 Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Wed, 12 Jun 2024 14:56:54 -0700 Subject: [PATCH 2/8] Add ethmag link Signed-off-by: Tim Beiko <9390255+timbeiko@users.noreply.github.com> --- EIPS/eip-cfi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-cfi.md b/EIPS/eip-cfi.md index a9050d84921e86..72d13728d924d2 100644 --- a/EIPS/eip-cfi.md +++ b/EIPS/eip-cfi.md @@ -2,7 +2,7 @@ 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: +discussions-to: https://ethereum-magicians.org/t/eip-xxxx-network-upgrade-inclusion-stages/20281 status: Draft type: Meta created: 2024-06-12 From 480d960416da197cf20998a8dad1d262e1e9630b Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Wed, 12 Jun 2024 15:02:23 -0700 Subject: [PATCH 3/8] name fix Signed-off-by: Tim Beiko <9390255+timbeiko@users.noreply.github.com> --- EIPS/eip-cfi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-cfi.md b/EIPS/eip-cfi.md index 72d13728d924d2..52f90af720bdf4 100644 --- a/EIPS/eip-cfi.md +++ b/EIPS/eip-cfi.md @@ -1,7 +1,7 @@ --- 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> +author: Tim Beiko (@timbeiko) discussions-to: https://ethereum-magicians.org/t/eip-xxxx-network-upgrade-inclusion-stages/20281 status: Draft type: Meta From e519536a303503c8f82e56ba4878bcbf60333d8f Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Wed, 12 Jun 2024 15:02:52 -0700 Subject: [PATCH 4/8] Whitespace Signed-off-by: Tim Beiko <9390255+timbeiko@users.noreply.github.com> --- EIPS/eip-cfi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-cfi.md b/EIPS/eip-cfi.md index 52f90af720bdf4..4fe2a04c40a64c 100644 --- a/EIPS/eip-cfi.md +++ b/EIPS/eip-cfi.md @@ -1,6 +1,6 @@ --- title: Network Upgrade Inclusion Stages -description: Overview of the various stages Core EIPs go through before their activation in network upgrades. +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 status: Draft From fa1aad70c361a44bd64302153717a03fdda87d00 Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Thu, 13 Jun 2024 06:01:53 -0700 Subject: [PATCH 5/8] Add EIP number, clarifications Signed-off-by: Tim Beiko <9390255+timbeiko@users.noreply.github.com> --- EIPS/eip-cfi.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/EIPS/eip-cfi.md b/EIPS/eip-cfi.md index 4fe2a04c40a64c..07669e6d01dbf9 100644 --- a/EIPS/eip-cfi.md +++ b/EIPS/eip-cfi.md @@ -1,8 +1,9 @@ --- +eip: 7723 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 +discussions-to: https://ethereum-magicians.org/t/eip-7723-network-upgrade-inclusion-stages/20281 status: Draft type: Meta created: 2024-06-12 @@ -34,7 +35,7 @@ Before the Upgrade Meta EIP is moved to `Final`, the `Scheduled for Inclusion` s ### 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. +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. Reasonable pull requests **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. @@ -44,14 +45,13 @@ Note that EIPs must be `Proposed for Inclusion` for each network upgrade. In oth 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. +`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. An EIP **MAY** be removed from `Considered for Inclusion` if client teams are generally against including the EIP in the network upgrade. ### 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. +`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. An EIP **MAY** be removed from `Scheduled for Inclusion` if client teams are generally against including the EIP in the network upgrade. ### Included From d173b5e1541a8aaa347af2ef1ad752a194a0b45c Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Thu, 13 Jun 2024 11:36:27 -0700 Subject: [PATCH 6/8] Filename --- EIPS/{eip-cfi.md => eip-7723.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename EIPS/{eip-cfi.md => eip-7723.md} (100%) diff --git a/EIPS/eip-cfi.md b/EIPS/eip-7723.md similarity index 100% rename from EIPS/eip-cfi.md rename to EIPS/eip-7723.md From 68aa6d7286f6d0d8f8cac5998a75d71f6a7298ac Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Mon, 17 Jun 2024 08:58:45 -0700 Subject: [PATCH 7/8] language tweak --- EIPS/eip-7723.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7723.md b/EIPS/eip-7723.md index 07669e6d01dbf9..01c3f2dcc49c00 100644 --- a/EIPS/eip-7723.md +++ b/EIPS/eip-7723.md @@ -49,7 +49,7 @@ Once client developers have reviewed an EIP which was `Proposed for Inclusion`, ### 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. +When client teams 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. An EIP **MAY** be removed from `Scheduled for Inclusion` if client teams are generally against including the EIP in the network upgrade. From aa7f8ce42fb711dfc9185c0268c25a911e627f53 Mon Sep 17 00:00:00 2001 From: Tim Beiko <9390255+timbeiko@users.noreply.github.com> Date: Tue, 18 Jun 2024 07:22:34 -0700 Subject: [PATCH 8/8] Update EIPS/eip-7723.md Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com> --- EIPS/eip-7723.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-7723.md b/EIPS/eip-7723.md index 01c3f2dcc49c00..bc285e2e70ced5 100644 --- a/EIPS/eip-7723.md +++ b/EIPS/eip-7723.md @@ -55,7 +55,7 @@ When client teams decide to work on an EIP as part of a network upgrade, the EIP ### 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. +Once a network upgrade has been activated, all EIPs that were part of 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.