On Thursday, 5 February 2015 at 19:05:10 UTC, Piotrek wrote:
1) All Phobos proposals must go through std.experimental.logger
When you say I put the current process wrongly, you mean there
is no way to submit a new module avoiding a std.experimental
namespace?
Yes, right now this is the idea. All new modules must stay some
time in std.experimental to stabilize (unless they are simply
renaming or split of existing modules).
Can you provide a link to the latest official description? I
will update the pictures.
Sadly, no, and this is largely my fault. Existing description
(http://wiki.dlang.org/Review/Process) was written by previous
review queue manager. During last few reviews I have managed
plenty of things has changed (including addition of
std.experimental) but wiki description wasn't updated.
I will need to update that. Main problem is that it is still a
rapidly changing target and I am not sure current scheme is final.
2) It must implement something generally desired in Phobos
Which is?
Decided by community voting as part of formal reviews process.
One of questions for voting is "Do you want to see this
functionality in Phobos?".
3) Implementation is supposed to be at least stable enough to
not undergo a full rewrite after inclusion. Major API changes
are acceptable.
This point is one of the main problems the DIP tries to avoid.
According to your statement the module should be almost
complete before the pull request is accepted. I mean without
any design flows. In many cases that is really hard to achieve
for one developer (e.g gui).
OTOH if you don't see the full implementation and can't test it
you may not see the fundamental flows in design.
Of course this may be doable for less complex modules. Then the
current way of using std.experimental alone may be applicable.
I disagree that those are "many cases". In fact, it applies to
only few really big libraries like ones that deal with GUI or
databases - all kind of stuff that is inherently controversial
and can't be officially endorsed anyway.
4) Before DMD/Phobos release is made existing packages that
feel stable can undergo a formal review for inclusion in
Phobos main package
With that in mind initial public review is supposed to only
determine if (2) and (3) is true which is mostly a formality
as people rarely propose modules they are not serious about.
How could you be sure that after long lonely work the proposal
is worth inclusion?
Because it gets destroyed by many reviewers - in great detail.
And if formal review thread does not get enough contribution from
to-be-users, it is likely to be rejected. AFAIR I had to halt
review of std.signal replacement because of that, until it gets
more interest from community.
How do you know what modules should not be in Phobos? Is there
any widely accepted list? Even C++ is getting more "open
minded".
You decide that, among all other voters. Opinion of existing
Phobos developers naturally is considered of more importance
during the voting though (I publish separate stats).
wide range of community members involved in the development
to reduce controversy and fragmentation staring from the
initial stage
no idea where this even comes from
Maybe I'm wrong but there is a big controversy and
fragmentation e.g. in database and gui domain.
Yes, and it will always stay so because of inherent nature of
such domains. People won't start using libraries they don't like
simply because those are marked as "official". Clearly not in D
community, we like our reinvented wheels :)
Pretty much all extra goodies from DIP73 can be implemented by
creating special "officially endorsed" category in
code.dlang.org and showing it as a default package list at
code.dlang.org front page
This may lead to competing packages. How would we decide what
are the "proper" packages. There can be impossible to fully
control the development by the whole community (yes I know I
repeat myself).
No different from deciding what goes to Phobos or deciding what
goes to your proposed library.