On Tuesday, 9 September 2014 at 13:54:15 UTC, Dragos Carp wrote:
Are you satisfied with the current process?
Yes. I am not satisfied with certain parts of implementation of
the process but the concept overall is a good as it can possibly
be given manpower available and lack of any centralized
collaboration. Think about it - despite the fact that there is no
one actually responsible for release planning and no fully
commited developers we still somehow manage to get those release
out. This is quite an achievment if you think about it.
Let me summarize some important drawbacks of the current
workflow:
1. No clear defined deadline for preparing a merge-able PR.
.. which allows maintainers to merge pull requests when they seem
ready without any synchronization "locks" and does not interfere
with release branches.
2. Unorganized PR merge campaigns. The people merging the PR
are doing a great job, but they do this triggered by arbitrary
events: too many open PRs, a cool new PR appears, somebody poke
them on forum, or simply have some time for this kind of work.
There is no such thing as "PR merge campaign" and there is not
point in having one. It is everlasting process - stuff gets
merged when its done, it is completly irrelevant to release
planning. "simply have some time for this kind of work" is the
only realistic criteria for any sort of maintenance activity
here, you can't get any other without bunch of devs on salary.
It is a process which is almost exclusively blocked by maintainer
time. It is quite telling that situation with Phobos (which has
easier learning curve and more active maintainers overall) is
much better than with DMD.
3. Somehow arbitrary merge criteria. Having a defined merge
window, when some people do just PR merges, will implicitly
produce more predictable and uniform acceptance criteria.
What makes you think so? It will only introduce arbitrary
limitation on a time when you can merge pull requests. Merge
criteria is an orthogonal topic - if it is possible to formalize
one, it can also be done without introducing merge windows.
Implicit uniform criteria is much better defined by the simple
fact that those are the very same people doing merges (and there
aren't many)
Only thing merge window will achieve is making pull reqeuests
stockpile even more because developers won't be allowed to merge
them when they have time to do so.
4. Lack of focus during test phase. Maybe this is the main
reason for the v2.066 regressions. Some people keep merging new
PRs, before the old ones are proven done during the test phase.
Even Walter was annoyed a couple of times by the multitude of
versions that the people are simultaneously working on
Main reason is that there are only few developers capable of
fixing DMD regressions. If release beta happens when either of
them is busy it will result in immediate slowdown. This is
especially true about Kenji.
Do you realize that fixing release and merging new pull requests
happens in _different_ branches? And merging even 1000 new
features doesn't affect testing of the release beta? There were
certain bad cases when major refactorings in master make it hard
to port bug fixes to release branch but those were rare.
5. Rotting old PRs. The "merge window" phase would be a defined
recurrent occasion to review and decide about those.
There are no rotting old PRs now in Phobos despite the
maintenance / release process is the same. Guess why? With recent
addition of bunch of new maintainers we simply got the resources
to clean and categorize those and this just immediately happened.
Unfortunately, there is no magic process can just create new
developers out of the air :(