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

EIP-1: Implementation section #2940

Closed
axic opened this issue Sep 4, 2020 · 4 comments
Closed

EIP-1: Implementation section #2940

axic opened this issue Sep 4, 2020 · 4 comments

Comments

@axic
Copy link
Member

axic commented Sep 4, 2020

In the current EIP-1:

Implementations - The implementations must be completed before any EIP is given status “Final”, but it need not be completed before the EIP is merged as draft. While there is merit to the approach of reaching consensus on the specification and rationale before writing code, the principle of “rough consensus and running code” is still useful when it comes to resolving many discussions of API details.

I think the main point was that Core EIPs have to have a proven implementation, but as we discovered, conflating the network upgrade and the EIP process makes life much harder, for both processes. Thus there is a goal to separate them.

For non-Core EIPs the implementation question is less clear, if that's possible. This is reinforced by two recent cases (1 and 2).

I propose the following:

  1. Remove the implementation section as a core requirement.
  2. Non-core EIPs can have this section, as it may be useful during draft mode to make discovery easier, but they are encouraged to remove them at the time of finalisation.
  3. Likewise, core EIPs can have this section during draft mode, but they should not have it when finalised. Instead, it is encouraged to include a working or psuedo-code implementing the feature.
@axic
Copy link
Member Author

axic commented Sep 4, 2020

This is just a rough idea at this point, but anyone has any better suggestions? cc @Souptacular @MicahZoltu @lightclient @nicksavers @MadeofTin

@lightclient
Copy link
Member

lightclient commented Sep 4, 2020

I like this. Should there also be some sort of link between an EIP and its status in the network upgrade process? (e.g. core EIPs have a new header field to denote whether it is "eligible for inclusion", "included", etc, which link into the eth1.0-specs repo). I imagine the implementation links would fit better in that specs repo.

@MicahZoltu
Copy link
Contributor

I support removing the Implementation section.

I'm very weakly against (2) and (3), but I would not let that dislike get in the way of getting (1) applied ASAP. I generally don't like the idea of people writing EIPs that are intended to be used for one thing while in draft, and then something different while in final. I would much rather people just write toward final EIPs and stop using EIPs as a discussion platform (that is what discussion-to is for).

I would favor an optional ## Reference Implementation section with a requirement that the implementation must be either inline in the EIP or included as an asset.

@MicahZoltu
Copy link
Contributor

Already done in #3153 and #3078. 😬

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants