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

[update] MIP-0 : Introduce status terms and editor role #32

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
50 changes: 48 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,52 @@ MG serve to capture the **definitions** of terms introduced in the MIPs and MDs.


## Files and numbering
Each MIP, MD or MG is stored in a separate subdirectory with the a name `mip-<number>`, `md-<number>` or `mg-<number>`. The subdirectory contains a README.md file that describes the MIP, MD, or MG. All assets related to the MIP, MD or MG are stored in the same subdirectory.
Each MIP, MD or MG is stored in a separate subdirectory with the a name `mip-<number>`, `md-<number>` or `mg-<number>`. The subdirectory contains a `README.md` file that describes the MIP, MD, or MG. All assets related to the MIP, MD or MG are stored in the same subdirectory.

MIPs, MDs and MGs are assigned their PR number as soon as they are drafted. MDs that do not introduce a new MIP are also accepted. Thus, there will be gaps in the MIP number sequence. These gaps will also emerge when MIPs are deprecated or rejected.
MIPs start as Drafts. MIPs obtain a number during the review process described in [Status Terms](#status-terms).

PRs that don't introduce a new MIP are also accepted.
- MIPs can be updated. PRs that update a MIP should state so in the PR title via `[Update] .... `.

There may be gaps in the numbering, as MIPs get rejected and removed.



## Status Terms
An MIP is proposed through a PR. Each MIP-introducing PR should have a status in the name in the form `[Status] ...`.

An MIP should at all times have one of the following statuses:
- **Draft** - (set by author) An MIP that is open for consideration. (It does not yet hold an MIP number)
- **Review** - (set by author) The MIP is under peer review. The MIP should receive an **MIP number**, determined by the author.

>[!Note]
> Currently the author has to understand from the PRs what the latest MIP number is. This is suboptimal and will be fixed by a later PR.

- **Accepted** - (set by editor) An MIP that has been accepted. All technical changes requested have been addressed by the author. There may be additional non-technical changes requested by the MIP editor.
Copy link

@andygolay andygolay Oct 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One issue that may arise is: suppose an editor has a technical change that the author doesn't agree with. Is there some mechanism that we could add, to resolve such disagreements or disputes?

Likewise, if, say, editors aren't available for timely reviews (which perhaps could happen due to various circumstances), should there be a process for allowing an interim editor to assume editorial responsibilities as needed?

Copy link
Contributor Author

@apenzk apenzk Oct 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suppose an editor has a technical change that the author doesn't agree with. Is there some mechanism that we could add, to resolve such disagreements or disputes

How is this handled with PRs in other repos?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(i have addressed now the second para in the text)

Copy link

@andygolay andygolay Oct 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suppose an editor has a technical change that the author doesn't agree with. Is there some mechanism that we could add, to resolve such disagreements or disputes

How is this handled with code PRs?

For PRs, we have a minimum number of approvals needed (3 for MIPs, 2 for PRs to aptos-core and 1 for PRs to movement).

What about this solution: If an editor requests a change from an author, either the author can make the changes (tacitly approving the editorial feedback), or:

If the author doesn't agree with the rquested changes, then the editor can mandate that the author implements the changes by getting 2 upvotes on their discussion comment mentioning the changes (assuming change requests will be made in the Discussion section of the MIP PR)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds good. added this. thx!


>[!Note]
> In case the editors are not available for an unacceptable long period of time, a reviewer should assume the role of the editor interim.

After acceptance the MIP is merged into `main` and the branch should be deleted.

Addtionally, the following statuses are used for MIPs that are not actively being worked on:
- **Stagnant** - an MIP that has not been updated for 6 months.
- **Withdrawn** - an MIP that has not been updated for 6 months.

Finally, MIPs can also be updated
- **Update** - (set by author) An MIP is being updated. The titel should list the MIP number, e.g. `[Update] MIP-0 ...`.


## Editor

Currently the editors are [@apenzk](https://github.com/apenzk), [@andyjsbell](https://github.com/andyjsbell), [@l-monninger](https://github.com/l-monninger). Volunteers are welcome.
apenzk marked this conversation as resolved.
Show resolved Hide resolved

The editor is responsible for the final review of the MIPs. The editor is responsible for the following:
- Ensures a high quality of the MIPs.
- Removes content from the MIPs that is commented out. (<!- ->)
- Ensures the MIP numbering is correct, the MIP has been added to [OVERVIEW.md](./OVERVIEW.md), the MIP is in the correct status and the authors have added themselves to [CODEOWNERS](./.github/CODEOWNERS).


**Conflict resolution**: If an editor requests a change from an author that the author does not agree with and communication does not resolve the situation
- the editor can mandate that the author implements the changes by getting 2 upvotes from reviewers on their discussion comment mentioning the changes.
- Otherwise the author can request a merge without the change.