The DIP Process
Mike Parker
aldacron at gmail.com
Tue Feb 26 11:28:56 UTC 2019
Given the nature of the feedback on the DIP process lately, I
thought it prudent to explain how I, as DIP manager, view things.
The core of the process looks like this:
Step 1: The author creates the DIP
Step 2: The author submits the DIP to the DIP manager
Step 3: The language maintainers review the DIP
Step 4: The DIP manager informs the author of the verdict
That's what the heart of the process is, an interaction between
the DIP author and Walter & Andrei, facilitated by me.
Every language has a process for improvement proposals. At their
core, they are all the same, even if they have different ways for
getting there. Take a look at the documenetation for Python
Enhancement Proposals:
https://www.python.org/dev/peps/pep-0001/#start-with-an-idea-for-python
The core of the process is the same. What they add to it is this:
"The PEP champion (a.k.a. Author) should first attempt to
ascertain whether the idea is PEP-able. Posting to the
comp.lang.python newsgroup (a.k.a. python-list at python.org mailing
list) or the python-ideas at python.org mailing list is the best way
to go about this.
Vetting an idea publicly before going as far as writing a PEP is
meant to save the potential author time. Many ideas have been
brought forward for changing Python that have been rejected for
various reasons. Asking the Python community first if an idea is
original helps prevent too much time being spent on something
that is guaranteed to be rejected based on prior discussions
(searching the internet does not always do the trick). It also
helps to make sure the idea is applicable to the entire community
and not just the author. Just because an idea sounds good to the
author does not mean it will work for most people in most areas
where Python is used."
TL;DR, they require the author to ask the community if the
concept of the proposal is something that should be put through
their process.
Look around at other languages and you will find a number of
variations on the core process, all involving some form of
community feedback.
In our process, we take the community feedback as a review of the
written proposal. We have implemented multiple feedback rounds to
get this done. The purpose here is *not* to allow the community
to preliminarily approve a proposal, or to vote on it. The
decision to accept or reject rests squarely with Walter and
Andrei. The purpose of the Community Reviews is to reduce the
burden on the author of crafting a proposal that will meet Walter
and Andrei's standards.
The people who visit participate in DIP reviews do not represent
a small fraction of the D user base, but their backgrounds are
diverse enough that there are strong odds of receiving valuable
feedback.
The Community Review rounds help the DIP author sound out the
proposal, or kick the tires if you will. Reviewers are free to
leave their opinions of the proposed feature, the details of the
proposal, to identify structural flaws or other opportunities for
enhancement, etc. If the author makes significant revisions, I
will almost certainly call for another round of Community Review
based on how signficant I judge the revisions to be.
In the Final Review round, the emphasis is on helping the DIP
author identify structural issues. Anything overlooked in
previous rounds or introduced as a result of any revisions along
the way. We aren't interested in personal opinions at this point.
The keywords in both the previous paragraphs are "help/helping
the DIP author".
In the end, it is entirely up to the DIP author to accept or
reject any or all of the feedback provided in any community
review round. It is not up to me, as DIP manager, to block a DIP
from progressing if the author chooses to make no revisions. I
always ask the DIP manager to respond to feedback in the review
thread as far as explaining why a set of related criticisms will
result in a revision or none at all, but I do not require the
author to actually make revisions. I am not the final arbiter of
what does or does not constitute a solid proposal. So I see any
complaints that a DIP "should not have progressed out of
Draft/Community review" as missing the point.
My experience with the process has both evolved my understanding
of it and helped me identify flaws. Early on, I did not see the
process quite as I describe it above. I mismanaged a couple of
DIPs (specifically 1006 and 1011) and that led to an overhaul of
both my understanding and the process document. I looked at how
other languages handle their processes and revised Dicebot's
initial work with a goal of preventing my initial mistakes and
and clarifying the purpose of each review round.
I'm still open to revising the process. We want a process that
helps us produce the best DIPs we can so that Andrei and Walter
have all the information they need to render their verdict. But
any revisions to the process *must not* lose sight of these two
basic facts:
* the burden of producing the proposal lies with the author
* the burden of reviewing the proposal lies with Walter and Andrei
Any process in between should be aimed at helping to reduce the
burden for either party. I'm already going to implement two
changes in my part of the process based on lessons I've learned
through recent reviews:
* I will no longer simply *ask* DIP authors to respond to
feedback in the review threads, I will *require* it. Note that
this does not mean I will require the author to make any
revisions, nor does it mean that I will pull the DIP if the
opinions of the proposal are overwhelmingly negative. Again,
that's not my role. It means the author must leave responses to
feedback in the thread agreeing or disagreeing with each unique
criticism and the decision to proceed lies entirely with the
author. That includes Walter and Andrei if either of them are the
sole author of a DIP. Previously, I didn't even ask them to
respond as they are the ones rendering the final verdict anyway,
but I now recognize it's important that all DIP authors express
their opinions of the feedback they receive.
* I will do my best to provide more detailed summaries of the
Formal Assessment. Walter and Andrei tend to deliver their
opinions of a proposal informally, either tersely or over a long
email discussion. I do my best to summarize their thoughts at the
bottom of the DIP. After the response to the review of DIP 1016,
I discussed with Walter and Andrei how I can provide more
detailed summaries and we will work to make that happen going
forward.
Again, we're all open to suggestions on how to improve the
process, so feel free to leave feedback here or email me directly.
Thanks!
More information about the Digitalmars-d
mailing list