Suggested Changes for Improving the FIPs Process #215
Replies: 14 comments 14 replies
-
tl;dr - More and more people are engaging with FIPs, which is amazing!! But, we need to organize ourselves better so that we can scale the FIPs process in a clear and transparent way. Let's create dedicated spaces for each component of the FIPs process (Discussion Forum for ideas, Issues log ONLY for FIP Drafts, and PRs only for completed FIPs in Last Call status) so that it's easy to find and track proposals. |
Beta Was this translation helpful? Give feedback.
-
Link to Slack discussions: #fil-fips |
Beta Was this translation helpful? Give feedback.
-
Fantastic analysis of the current workflow, thank you! I support your proposal as an improvement well worth trying. |
Beta Was this translation helpful? Give feedback.
-
My initial impression is that overall this makes sense. Not sure about the UI/UX of GitHub Discussions, but could be good to have a space for ideas vs refining drafts. Since everything else FIP related is here the Discussions tab seems like the most natural fit rather than a separate platform, but the UI of the Discussions is a bit hidden so people will need to know to look for it. If the README points people in the right direction it's probably fine. At the PR stage, an explanation as to why a FIP was accepted or rejected could provide more transparency into the decision making process. This could be useful for individual proposals, but in a broader sense it might also help stakeholders understand the goals and concerns that are weighed when deciding on FIPs. Beyond that, if the Discussion, Issue, and Core Devs Call where the FIP was discussed were linked to in the final PR that could improve governance UX by making it easier for people to find information around a proposal to better understand the thinking behind it. This could help people understand how the system got to where it is today, which could help them understand where it might be going (vs just seeing a snapshot of the current state). |
Beta Was this translation helpful? Give feedback.
-
Thanks for getting this going @kaitlin-beegle , def support it! One suggestion would be, for
The issue is not the vest place for collaborative edits, where in PRs we can leave comments, suggest edits, and so on. So I personally think we should keep allowing to "keep updating FIP draft in PRs". |
Beta Was this translation helpful? Give feedback.
-
Great proposal, I agree and support this proposal! It makes sense to separate the Idea*-stage from the Draft-stage, but I +1 @burrrata point, that the Discussion UI on Github can be a bit hidden. Maybe new ideas with a link to the Github-discussion should be broadcasted to a Slack-channel as well (As long as it does not get too spammy)? |
Beta Was this translation helpful? Give feedback.
-
+1 to @burrrata why and how are great to have. |
Beta Was this translation helpful? Give feedback.
-
How will we handle links to current backlog issues in the discussion phase? Want to make sure we have a smooth transition for ideas still in brainstorm phase (now and in the future as folks continue to start conversations that don't move out of buy-in gathering phase) |
Beta Was this translation helpful? Give feedback.
-
This is sound process improvement @kaitlin-beegle, we need to convert viable issues into change in a timeframe where they dont lose relevancy |
Beta Was this translation helpful? Give feedback.
-
I feel there is a value of FIP existing as a FIP document in the repo before the Last Call stage, it allows for cooperative editing and authorship of FIPs, which is something that issues don't provide. The FIP Draft as an issue enforces that there has to be only one primary FIP author, I disagree with this, it should be possible for anyone to propose changes to a FIP and have these changes be evaluated by the community. The original author of the FIP can even "disappear" or stand aside and the community should be able to proceed with the same FIP (edit it), which will be much harder if FIP drafts are issues. In my opinion, discussion of changes to a FIP, review comments and version history are all essential parts of the process of evaluating complex changes to a complex system and improving them. See for example EIP PR for a minor change to EIP1559, ethereum/EIPs#2924 I think that if we expect the draft to be edited in a significant way after the discussion starts, then we should not use a medium that doesn't preserve history and I fully expect drafts to be edited in significant ways. |
Beta Was this translation helpful? Give feedback.
-
I think I had initially misunderstood some details in the original proposal, unsure how the terminology of "issue" was being used, since a GH PR is a type of issue under the hood.
I concur with @Kubuxu that this is too late. I'm still very keen for the pre-draft discussion to move out of the GH issues log and into the discussion forum, but once a first draft of a FIP document is ready, I agree it should be PRed to this repo immediately to open the discussion about the document and it's specifics (as opposed to the idea and its alternatives, which remain in discussion forum). So, it should be fairly common that the first PR for a FIP lands it in DRAFT stage, and subsequent PRs improve it until LAST CALL. But the goals here can still be supported. WIP ideas should be in the discussion forum. I would expect that every GH tracking issue for a FIP is preceded by by a discussion thread, and thence every PR point to that tracking issue for Discussion-To. We should have a high standard for completeness of FIP drafts and swiftly reject Issues/PRs that have not had sufficient prior discussion or do not contain enough detail for implementers, miners, clients etc to evaluate the proposal. I think we can retain the property that open issues and PRs track only proposals that are being actively worked toward. We should close down tracking issues that go stale, etc. |
Beta Was this translation helpful? Give feedback.
-
Heard loud and clear. I think updating the proposed workflow to the below will 1) satisfy concerns about making changes in PRs, 2) still provide clearer differentiation between FIP statuses.
With these updates, I think about the Issues log as a public notice board for FIP statuses and resources. Individual authors/teams can use the Discussion Forum however they'd like (if at all), and can merge and request changes in PRs whenever they'd like. However, the Issues log reports active FIPs in a consistent way, using relatively consistent formatting, and would be required for any FIPs that are actively being worked on. |
Beta Was this translation helpful? Give feedback.
-
Another suggestion is that CryptoEconLab should have more interactions with FIP issues not just the FIP issues by themselves but by the community too, as many FIP would have token economic implication for the network and the community needs guidance to align their FIP with goals of CryptoEconLab. Right now we don't see as much community involvement from CryptoEconLab compared with the time during mainnet launch. |
Beta Was this translation helpful? Give feedback.
-
One pain point im having with this new process, in which FIP Drafts are not merged until |
Beta Was this translation helpful? Give feedback.
-
Problem
FIP0001 is the founding document for Filecoin network governance. It codifies the FIPs process, which is the primary mechanism of governance within the Filecoin ecosystem.
Currently, FIP0001 functions more like a charter than a process document or constitution. Although it technically outlines the types of FIPs and their requirements, its terminology and work flow have not kept pace with the manner in which the Filecoin community actually engages with governance.
As a result, stakeholders understand and use the FIP process in different ways, generating confusion. This confusion exhibits itself as:
The purpose of this document is to recommend a new FIP workflow that aligns the intent of FIP0001 with the actual FIP process workflow that has organically originated within the community. The intention is to create clearer processes and standards that support an open and responsive governance system.
Current Workflow
FIP0001 currently describes the FIP work flow as:
[ WIP ] -> [ DRAFT ] -> [ LAST CALL ] -> [ ACCEPTED ] -> [ FINAL ]
Though FIP0001 does define each of these steps, there has been signficant 'process collapse' around and between WIP and Draft statuses. This is primarily due to lack of specification around how an idea becomes a FIP and the de facto use of the FIP repo 'Issues' log as a community deliberation space.
The original intent of FIP0001 assumes is that a FIP author will take an idea and 'start' the FIP process by immediately pushing a draft. It was likely assumed that immediately creating a FIP draft was the best way to track changes over time.
However, the reality is that many FIP authors prefer to first share ideas and gather feedback in a formal way. The FIP 'Issues' log has filled this void by providing a space to log ideas, discussion, feedback, and early draft proposals in a way that is more accessible than Slack. Over time, the 'Issues' log has grown into a de facto part of the process.
Today, it hosts FIP ideas of varying levels of doneness, conversation topics, "back-burner" proposals that have been left untouched for over a year, and other community notices. Many FIP authors have begun to author entire FIPs in the Issues log because it is a more convenient place for making edits, and gathering and reviewing feedback. Deliberation is a critical part of the FIP process, and the 'Issues' log has emerged as one of the primary points of documentation for community deliberation of an issue.
As such, when community members strictly adhere to the process in FIP0001 and start by pushing a new idea directly to the repo, it appears as if they're "skipping" the process of community deliberation. This becomes both a documentation and governance legitimacy problem, and makes work difficult to track.
Lastly, because of the uncodified role that the 'Issues' log plays for hosting ideas, working on FIP drafts, and gathering community feedback, it is difficult to create a clear timeline for FIP adoption and visualize where each proposal is in the broader governance process.
Proposed Solution
To address these issues, I propose creating distinct spaces for 1) working on ideas, and 2) proposing FIPs.
In the ideas stage, community members use the newly -created FIP Discussion Forum to propose ideas, discuss topics, and ask questions.
This channel recreates the benefits of the 'Issues' log- the documentation of ideas in a forum, where edits can be made without needing reviewer approvals- while enhancing overall organization by dedicating the entire discussion space just to ideas, notices, and conversation topics. Forum moderators will thus be able to provide resources and steward good ideas through the FIP process, and will be able to clearly distinguish actual FIP drafts from other conversations.
Once an idea is ready to go from 'idea' to 'FIP', a FIP draft will be formally added to the FIP repo Issue log. This will allow community members to record comments, ideas, and other 'deliberative' ideas in a single thread, making edits to the draft over time. It will also be clear to the community which FIPs are more imminently in devlopment, as the only thing in the Issues forum should be FIPs that are actively working towards network acceptance. If the FIP has technical specs or code, these should be made available in unmerged branches and indicated in the FIP.
Finally, once the draft is complete and there are no outstanding community contributions or concerns which need to be addressed, the FIP author will submit a PR of the entire, completed FIP draft. This indicates that the FIP draft is complete as-is and is ready for 'Last Call'. The 'Last Call' draft will be stewarded to the broader community and merged once accepted.
The below graphic visualizes how different stages of FIP development would correspond to dedicated spaces in Github:
Concluding Notes
As a decentralized protocol, it is critical for network governance to be an open process. Openness is a function of accessibility, which these proposed changes seek to enhance.
There are additional structural benefits that this proposed process might provide, while requiring new clarification in certain areas. It is also true that there are FIPs already in-progress that would need to be transitioned into the new process, and broader community change management would need to be enacted to make this proposed process change successful. Please note that these items, as well as other trade-offs and challenges, were considered in the construction of this proposal. They aren't detailed here in order to keep the length of this proposal reasonable.
As always, additional questions, ideas, or feedback on this proposal are welcome.
Beta Was this translation helpful? Give feedback.
All reactions