Some Observations on the D Development Process

Mike Franklin slavo5150 at yahoo.com
Thu Jan 4 10:34:05 UTC 2018


This is in response to some of the frustrations offered in the 
thread staring with 
http://forum.dlang.org/post/oeigdutfphxhenexcqsn@forum.dlang.org

I share some of those frustrations, and I've been vocal about 
such things myself.  However, in the last 2 months, at least in 
terms of the DMD repository, things may be starting to change for 
the better.

Recent Promising Progress
-------------------------
A few of us are working hard to revive old PRs and either see 
them across the finish line, or give them a quick path to 
closure. 2 months ago the DMD PR queue stood at about 190.  Now 
it's hovering between 140 and 150.  So, we're getting better; 
take a look at the graphs here for evidence:  
https://auto-tester.puremagic.com/chart.ghtml?projectid=1. Notice 
the spike in PR submissions in December, and we're still 40 PRs 
less than we were 2 months ago.

2 months ago, the oldest PR was dated 2012, believe it or not:  
https://github.com/dlang/dmd/pull/1145.  Our oldest is now 2013, 
which is still pretty bad, but it was partially revived recently 
at https://github.com/dlang/dmd/pull/7503.  Unfortunately, it's 
probably the most difficult PR we have.

I'll take the risk of arguing that we've widened the review 
bottleneck recently for straight-forward PRs.  However, for 
difficult, complex, or controversial PRs, it still looks like we 
lack contributors with the right skills that are willing 
volunteer their time, and tolerate some inconveniences.

There has also been a lot of work done on improving 
infrastructure for testing (e.g. Adding the Appveyor CI for 
testing Windows) and automating some of the mundane tasks (e.g. 
https://github.com/dlang/dmd/pull/7507).

A Few Observations About Our Talent
-----------------------------------
IMO, one of the most worrisome issues we have is a talent 
retention problem (at least for DMD).  It appears many of those 
with the talent to review and fix difficult compiler bugs are no 
longer active, or just pop in from time-to-time.  I'm not sure 
why that is. I know a few have left or don't participate much due 
to dissatisfaction in the way D is managed.  Others, I think, 
were working on D as students and now have blossoming careers 
outside of D to maintain.  I also know of at least one that found 
Rust to be a better alternative.  But, I can also understand how 
someone would just grow sick and tired of working on the same 
thing for months or years.

Walter seems to pop in daily, and occasionally reviews PRs, and 
his PRs of late are mostly just refactorings rather than fixing 
difficult bugs.  We desperately need his help on the more 
difficult issues (e.g. https://github.com/dlang/dmd/pull/7568 and 
https://github.com/dlang/dmd/pull/7566), but I don't know if he's 
well-aware of those items and just busy with other things, or if 
those items are simply not on his radar.  If it's the latter, and 
it would help, I'll publish a digest periodically.

Andrei pops in unpredictably, and sometimes goes on a PR review 
rampage.  The infrequency, however, makes it difficult to 
follow-up and maintain momentum on individual items that need his 
judgement (e.g. https://github.com/dlang/dmd/pull/7099)

That being said, there are some very talented software engineers 
active on this forum that are only seldom active in the PR queue. 
I don't know why that is; perhaps it's simply a matter of time 
and energy, or perhaps it's frustration.  As others have said, 
you don't need to have commit access to be a helpful reviewer. 
And, after showing a willingness to participate, demonstrating 
your abilities, and earning the confidence of the leadership, you 
might be asked to join the team, and then you'll really be able 
to make things happen.

Final Words
-----------
Due to recent changes, if you have a straight-forward, 
non-controversial PR, it will likely be merged in a week or two; 
usually less, and sometimes even within a few hours.  If the PR 
is difficult, complex, or controversial, then it may languish in 
PR purgatory for some time, unfortunately.  I don't know what can 
be done about that at this time without skilled, 
frequently-active talent.

My two-cents,

Mike


More information about the Digitalmars-d mailing list