-
Notifications
You must be signed in to change notification settings - Fork 16
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
Some reflections about how to improve the ZEP process #55
Comments
This all sounds perfect to me. |
Thumbs up from me |
@MSanKeys963 - do you think you would be able to implement these changes? |
I like the proposal. Just one question:
Is that accepted or finalized? |
Is this distinction really important? TBH I've always found it confusing. I think the ZEP process has too many steps. |
Thanks for opening the issue, @rabernat. After finalising ZEP1 and ZEP2 and holding discussions in a couple of ZEP meetings (11/2 and 11/16), we realised that the ZEP process needs some changes. Based on the previous ZEP meetings and discussions, I'm working on a proposal to redefine the existing ZEP process. A few things I'm focusing on in the revised ZEP process are:
|
For what it's worth, the above for me is the ideal best case workflow, and I agree that this is the case for most changes recently. I think there are drawbacks for long and drawn out discussions like ZEP1 though, namely:
All that being said, I'm still very much for simplifying ZEP0 (and/or replacing with ezZEP -- get it? 😄), but I wonder if we can find a balance of the extremes. One issue not discussed above nor really in ZEP0 pertains to "breakingness". For pure additions / optional items, is a ZEP (even an ez one) simply overkill? |
I want to expand on the revision I envision and gather feedback from everyone before moving ahead with the actual change. Before jumping into the explanation, I'd like to mention some of the issues we faced in the past while finalising ZEP1 and ZEP2; they were:
A few solutions for the above-mentioned issues that I can think of:
|
Based on my solutions mentioned above, here's the proposed revision for the process: As mentioned in #55 (comment), a ZEP would progress in a phased manner. They are: → Reading Phase 📚The Reading Phase, or Request for Comments (RFC) phase, initiates the ZEP proposal process, marking the introduction of the proposal to the Zarr community.
→ Implementation Phase 🛠️The Implementation Phase encompasses the timeline during which interested adopters actively work on integrating the proposal into their open-source codebases.
→ Voting Phase 🗳️The Voting Phase represents the final stage where the ZIC and Zarr Steering Council (ZSC) formally vote on the ZEP proposal.
Here's a flowchart for a better visual understanding of the different phases: |
I agree that my proposal is far from what @rabernat has proposed initially. I also agree that the current process makes it tedious by creating multiple issues in various places, which can lead to a loss of motivation and momentum. Combining repos could be of help here. But we should not eliminate the ZEP website as it helps keep all the proposed ZEP proposals organised, user-friendly, and readable. Also, I publish ZEP meeting notes for the community here: https://zarr.dev/zeps/meetings/. I understand that the current goal is to simplify the ZEP process, and my proposal may add extra details/layers to the existing one. But I'd like us to consider the lessons we learned while finalising ZEP1 and ZEP2 while revising ZEP0. Please excuse me if I missed any details or something doesn't make sense. I'm happy to reiterate and correct based on the comments/feedback. This is the first attempt at revising the process, and I may have overlooked some important details. Please let me know if you have any comments, questions, or feedback. Thanks! |
I think we can have do everything in one PR as Ryan suggested, with the exception that if a discussion in a PR gets too long and complicated some parts of it could move to separate issues that are then ideally linked from the top PR description. I also think that Sanket's proposed changes to emphasize implementation experience are also very helpful, and compatible with doing everything in a single PR. The couple changes I'd suggest to what Sanket has proposed, as we discussed today in the ZEP meeting:
|
Minor thing: wherever the conversation(s) around a ZEP ends up, be it a PR or an issue or a github Discussion, it would be great to include a link to that/ those on the web page. Possibly that could go in the template? |
Perhaps it is worth recognising that some ZEPs may never be "final". Some changes may be necessary post-acceptance (even if it is just fixing some ambiguous language, for example) and issues might not become apparent from just two implementations. I am a fan of proper semantic versioning of ZEPs and their artefacts, with 1.0.0 on acceptance.
Footnotes
|
I'll offer some reflections on how we might improve our process around ZEPs, spec evolution, etc. Currently we do it something like this
At this point we have created half a dozen different issues / PRs etc to discuss the same feature. It's hard to keep track of. We lose momentum.
Here's what I'd like to see in the next iteration of this process.
The text was updated successfully, but these errors were encountered: