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

Suggested clarifications to XIP process flow #30

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions XIPs/xip-0-purpose-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@ After vetting the idea as described above, your next responsibility is to presen

### XIP Process

- **Idea** - An idea that is pre-draft. This is not tracked within the XIP Repository.
- **Draft** - The first formally tracked stage of an XIP in development. An XIP is merged by an XIP Editor into the XIP repository when properly formatted.
- **Review** - An XIP Author marks an XIP as ready for and requesting Peer Review.
- **Last Call** - This is the final review window for an XIP before moving to `Final`. An XIP editor will assign `Last Call` status and set a review end date (`last-call-deadline`), typically 14 days later. If this period results in necessary normative changes it will revert the XIP to `Review`.
- **Final** - This XIP represents the final standard. A Final XIP exists in a state of finality and should only be updated to correct errata and add non-normative clarifications.
- **Stagnant** - Any XIP in `Draft` or `Review` or `Last Call` if inactive for a period of 6 months or greater is moved to `Stagnant`. An XIP may be resurrected from this state by Authors or XIP Editors through moving it back to `Draft` or its earlier status. If not resurrected, a proposal may stay forever in this status.
- **Withdrawn** - The XIP Author(s) have withdrawn the proposed XIP. This state has finality and can no longer be resurrected using this XIP number. If the idea is pursued at a later date it is considered a new proposal.
- **Living** - A special status for XIPs that are designed to be continually updated and not reach a state of finality. This includes most notably XIP-0.
- **Idea** - Submit an idea for an improvement as a topic in the [XIP Ideas category in XMTP's GitHub Discussions](https://github.com/orgs/xmtp/discussions/categories/xip-ideas).
Copy link
Contributor Author

@jhaaaa jhaaaa Jul 20, 2023

Choose a reason for hiding this comment

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

Adding this info here as well, not just in the Getting started section. This way, it is very clear that the flow starts in GitHub Discussions, not as a PR to this repo.

Can we provide examples of what must happen during the Ideas phase to enable the idea to graduate to a Draft PR in the XIP repo?

Is it agreement (from whom?) that this is a good idea?

- **Draft** - The first formally tracked stage of an XIP in development. An XIP is merged by an XIP Editor into the XIP repository when properly formatted.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Can we say who opens the PR? I'm assuming it is the person who authored the Idea topic in GH discussions?

What needs to happen during Draft phase to enable it to graduate to Review? Is this only about the Draft being properly formatted? This isn't about any content feedback or review happening first? This phase is only about ensuring that the XIP format is correct?

- **Review** - An XIP Author marks an XIP as ready for and requesting Peer Review.
Copy link
Contributor Author

@jhaaaa jhaaaa Jul 20, 2023

Choose a reason for hiding this comment

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

What needs to happen during the Review phase to enable it to graduate to Last Call phase?

Because the XIP is merged - what is the best way for people to provide feedback? Do they need to open a PR against the XIP to comment?

Is this the phase during which someone (who?) creates a reference implementation and someone (who?) encourages adoption of and peer feedback about the implementation (where?)? Do all XIPs require reference implementations? For example, content type XIPs do, as in the ones we provide here https://github.com/xmtp/xmtp-js-content-types.

During this overall Review phase of the XIP, independently, the reference implementation will go through these sub-phases (will define these phases once I better understand the XIP process):

  • Draft
  • Stable
  • Peer Review

The peer review status of the ref implementation begins once it has been stable and widely adopted for long enough.

Where does the peer review of the implementation happen? Feels like it should be in the repo where the implementation lives? And the associated XIP in Review status must link to that location? How will people know whether to comment on the XIP or the ref implementation?

Who lets people know that the reference implementation is available for adoption and feedback and where does this happen? Discord? GitHub Discussions? Twitter?

What enables both the XIP and the reference implementation to enter Last Call phase?

- **Last Call** - This is the final review window for an XIP before moving to `Final`. An XIP editor will assign `Last Call` status and set a review end date (`last-call-deadline`), typically 14 days later. If this period results in necessary normative changes it will revert the XIP to `Review`.
Copy link
Contributor Author

@jhaaaa jhaaaa Jul 20, 2023

Choose a reason for hiding this comment

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

Once in this phase, both the XIP and the reference implementation are in Last Call status.

The Last Call phase is purely time-based, correct?

How do we communicate this time constraint to developers? In the reference implementation repo? In Discord? In GitHub Discussions?

During this phase - where do people direct their feedback? To the XIP or to the implementation?

- **Final** - This XIP represents the final standard. A Final XIP exists in a state of finality and should only be updated to correct errata and add non-normative clarifications.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

During this phase, both the XIP and the reference implementation are in Final status.

For a content type implementation, should the status also indicate that it is now a standard content type?

- **Stagnant** - Any XIP in `Draft` or `Review` or `Last Call` if inactive for a period of 6 months or greater is moved to `Stagnant`. An XIP may be resurrected from this state by Authors or XIP Editors through moving it back to `Draft` or its earlier status. If not resurrected, a proposal may stay forever in this status.
- **Withdrawn** - The XIP Author(s) have withdrawn the proposed XIP. This state has finality and can no longer be resurrected using this XIP number. If the idea is pursued at a later date it is considered a new proposal.
- **Living** - A special status for XIPs that are designed to be continually updated and not reach a state of finality. This includes most notably XIP-0.

## What belongs in a successful XIP?

Expand Down
Loading