livepeer / LIPs

Livepeer Improvement Proposals
9 stars 13 forks source link

LIP process polling related updates #15

Closed yondonfu closed 4 years ago

yondonfu commented 4 years ago

Abstract

This proposal contains updates to the LIP process described in LIP-1 that incorporate the use of a polling application to determine whether a LIP is accepted or rejected.

Motivation

The motivation for these updates is to establish the LIP process as a pre-processing step for proposals prior to the creation of a poll about the proposal. While a poll can be created for a proposal that does not go through the LIP process the hope is that the LIP process can establish a quality standard for proposals such that proposals that do not go through the LIP process will have a lower probability of being accepted relative to proposals that do go through the LIP process.

Specification

Updated LIP Types

The following new LIP types are introduced:

Updated LIP Statuses

The following new LIP statuses are introduced:

The following existing LIP statuses are removed:

Updated LIP Work Flow

Path to Adoption

The following diagram describes the path to adoption for a LIP:

LIPAdoption

The Last Call Period

The Last Call period should typically be 14 days to give stakeholders ample time to voice objections and to request changes prior the LIP being the subject of a poll. During this time, the LIP should be publicized in various communication channels such as Discord, the forum, blog posts, etc. The rationale behind targeting 14 days for the Last Call period is that it allows someone to go offline for a week (i.e. for vacation) and still have time after returning to review the LIP before the end of the Last Call period.

Poll Usage

When a LIP is assigned the Accepted status, the expectation is that it will be immediately adopted and any required on-chain updates mentioned in the LIP should be executed by the core team. While the use of a poll is only required to move a LIP from the Proposed status to the Accepted or Rejected status, a poll can also be used to gauge sentiment around a LIP earlier in the process. Any poll created for a LIP that is not assigned the Proposed status can be considered a sentiment poll. These types of polls may be useful for assessing the chance of an LIP eventually being adopted before investing a large amount of resources for implementation and testing. The decision of whether to create a sentiment poll earlier in the process is up to the LIP champion(s).

The champion(s) of a LIP is typically expected to create a poll if the LIP is assigned the Proposed status, but the poll can also be created by someone else.

Updated LIP Template

The following optional fields in the header preamble described in the LIP-X template are introduced:

Specification Motivation

The motivation behind the structure of the updates described in this proposal is to establish greater clarity and transparency around the adoption path for a LIP.

Feedback

The thread for this issue can be used for conversation and feedback prior to the opening of a PR to include these updates as a draft meta LIP in the repo.

dob commented 4 years ago

State Change Conditions

I presume that PR's must be submitted in order to move something from Draft -> Last Call -> Proposed. I think the trigger for an editor accepting the move from Last Call to Proposed status could be that the last call time period has elapsed. But what is the trigger that an editor will use to decide whether to merge the PR from Draft -> Last Call?

I suggest it be that the champion submits the PR or signs off on it, in combination with editorial discretion that the issue is well formed.


Last call period length

The Last Call period should typically be 14 days to give stakeholders ample time to voice objections and to request changes prior the LIP being the subject of a poll

I might suggest a slightly shorter last call period. 10 days? If the current suggestion is that a poll period is 10 days, for the same reason of expecting a week of offline time as acceptable with a few more days to review and participate, then I don't think the last call period needs to be longer. We'd be looking at a ~3 week turnaround from last call to execution.


Batching LIPs into a single update

Does this process account for how one would batch a series of parameter and standards track LIPs into a single executed on chain update? Would you get all of these LIPs individually approved into Accepted state, and then vote on a standards track LIP which batches them together into Accepted state in order to be merged?

Or would you file the parameter change and standards track mini-LIPs as informational, and then use a single standards track LIP to vote on them all at once?

yondonfu commented 4 years ago

But what is the trigger that an editor will use to decide whether to merge the PR from Draft -> Last Call?

Yeah the champion can open a PR, but the LIP editor is responsible for assessing whether all concerns have been addressed prior to approving and merging the PR to assign the Last Call status to the LIP.

I might suggest a slightly shorter last call period. 10 days? If the current suggestion is that a poll period is 10 days

Agreed that the Last Call period does not need to be longer than the poll period. If the suggested poll period is ~10 days then I'm fine with suggesting the Last Call period to be 10 days as well.

Does this process account for how one would batch a series of parameter and standards track LIPs into a single executed on chain update?

What about the following:

If there is a desire to vote on multiple LIPs in a single bundle (i.e. as a part of a scheduled protocol upgrade with multiple changes) then all LIPs to be included in the bundle need to be assigned the Proposed status. A Standard Track LIP would be created that references each of the individual LIPs that are in this bundle. Once this umbrella LIP is assigned the Proposed status, a poll can be created for it. From here, the following outcomes would be possible:

dob commented 4 years ago

Sounds good on the editorial process and Last Call period. With regards to the batched LIPs, it directionally sounds right. I wonder about the last point:

The umbrella LIP is assigned the Rejected status. Each of the individual LIPs would remain in the Proposed status.

I just worry a little bit about the notion of the individual LIP's being polled, when they are really intended to be executed together as a batch. At the same time, I wouldn't want to take them all back to draft or last call, as they've already passed the bar for moving to proposed. I guess leaving them as Proposed makes sense unless anyone else has any ideas.

yondonfu commented 4 years ago

I just worry a little bit about the notion of the individual LIP's being polled, when they are really intended to be executed together as a batch.

One thought is that each LIP could also have an optional "Protocol Upgrade" field in the header preamble. If an LIP is intended to be considered as a part of a batch for a protocol upgrade, the creator(s) could specify a name (i.e. "Streamflow") in the "Protocol Upgrade" field to convey to the public that there will be an umbrella LIP for the protocol upgrade. If the umbrella LIP is rejected and there is a desire to consider an individual LIP standalone from the previously specified protocol upgrade then the champion can edit the LIP to remove the "Protocol Upgrade" field.

yondonfu commented 4 years ago

A draft LIP has been created here.

Updates in the draft LIP from the original proposal:

yondonfu commented 4 years ago

LIP-15 has just been assigned the Proposed status (via #27) which means the LIP is ready to be the subject of a poll.

yondonfu commented 4 years ago

LIP-15 has been assigned the Final status (via #29).