Thread overview
[RFC] List of contributors per module
May 24, 2016
Seb
May 24, 2016
Seb
May 24, 2016
qznc
May 24, 2016
ag0aep6g
May 24, 2016
Brad Roberts
May 25, 2016
Jacob Carlborg
May 25, 2016
Walter Bright
Jun 15, 2016
Seb
Jun 15, 2016
Walter Bright
May 24, 2016
Hei,

I recently made a PR to dlang.org which is aimed to show a list of all contributors to a Phobos module based on the git history.
The idea is to give all the awesome people who have helped and contributed their earned credit!

https://github.com/dlang/dlang.org/pull/1307

A couple of questions from this PR are still open though:

1) How can we best integrate this with the author section?
- Should we move this into the header?
- Maybe a module could also have a current maintainer(s) (that is in charge of approving changes)

2) Should we show the avatars? They are loaded lazily, so they don't block the page load.
If neccessary out of privacy concerns, contribs.dlang.io could act as a proxy.

3) I would prefer to generate this information on deploy-time, but rolling a small (vibe.d) service was a lot easier than integrating this properly in the current Makefile. Maybe once we migrate to ddox this would be easier?
May 24, 2016
On Tuesday, 24 May 2016 at 19:22:31 UTC, Seb wrote:
> Hei,
>
> I recently made a PR to dlang.org which is aimed to show a list of all contributors to a Phobos module based on the git history.
> The idea is to give all the awesome people who have helped and contributed their earned credit!
>
> https://github.com/dlang/dlang.org/pull/1307
>
> A couple of questions from this PR are still open though:
>
> 1) How can we best integrate this with the author section?
> - Should we move this into the header?
> - Maybe a module could also have a current maintainer(s) (that is in charge of approving changes)
>
> 2) Should we show the avatars? They are loaded lazily, so they don't block the page load.
> If neccessary out of privacy concerns, contribs.dlang.io could act as a proxy.
>
> 3) I would prefer to generate this information on deploy-time, but rolling a small (vibe.d) service was a lot easier than integrating this properly in the current Makefile. Maybe once we migrate to ddox this would be easier?

I forgot if you want to see this in live, you can browse the output of DAutotest, e.g.:

http://dtest.thecybershadow.net/artifact/website-2ebaa0abe10645832000264a7cb6499949dee786-2b1fd6809124063d6afd0801431f016f/web/phobos/std_uri.html
May 24, 2016
On Tuesday, 24 May 2016 at 19:22:31 UTC, Seb wrote:
> I recently made a PR to dlang.org which is aimed to show a list of all contributors to a Phobos module based on the git history.
> The idea is to give all the awesome people who have helped and contributed their earned credit!

Is this really a good idea? The file with the most authors is std/traits.d with 73 authors. Really list them all?

There might be duplicates, if people use different names or email addresses. There should be a deduplication.



Btw if you want some more stats, I have script which gives me this for the phobos repo:

Top Committers (of 338 authors):
Andrei Alexandrescu  1608 commits during 8 years until 2016-04-15
k-hara                646 commits during 4 years until 2016-04-28
Walter Bright         643 commits during 8 years until 2016-04-25
H. S. Teoh            625 commits during 4 years until 2016-05-10
Dmitry Olshansky      517 commits during 4 years until 2016-05-20
jmdavis               501 commits during 3 years until 2014-10-26
monarch dodra         421 commits during 2 years until 2015-03-12
Martin Nowak          369 commits during 4 years until 2016-05-14
Brad Roberts          340 commits during 8 years until 2016-04-16
Vladimir Panteleev    323 commits during 4 years until 2016-05-18
Andrej Mitrovic       296 commits during 4 years until 2015-10-18
Jonathan M Davis      261 commits during 5 years until 2016-05-04
Ilya Yaroshenko       208 commits during 23 months until 2016-05-15
David Nadlinger       207 commits during 5 years until 2016-05-22
David Simcha          207 commits during 2 years until 2012-10-18
Hara Kenji            193 commits during 4 years until 2016-03-24
monarchdodra          181 commits during 2 years until 2014-10-10
Denis Shelomovskij    179 commits during 3 years until 2015-03-06
Don Clugston          172 commits during 5 years until 2013-12-10
Tomoya Tanjo          166 commits during 2 years until 2016-03-22
Daniel Murphy         162 commits during 4 years until 2016-05-18
Steven Schveighoffer  149 commits during 5 years until 2016-05-17
Alex Rønne Petersen   147 commits during 3 years until 2014-08-04
Robert burner Schadek  134 commits during 2 years until 2016-05-02
Lars T. Kyllingstad   117 commits during 5 years until 2016-02-25
dsimcha               109 commits during 22 months until 2012-12-08
Jack Stouffer          94 commits during 9 months until 2016-05-18
Sean Kelly             93 commits during 6 years until 2014-10-27
Михаил Страшун         90 commits during 6 months until 2015-01-26
Shin Fujishiro         79 commits during 6 months until 2010-11-18
Nick Treleaven         79 commits during 4 years until 2016-05-04
Jonas Drewsen          75 commits during 2 years until 2014-01-13
JakobOvrum             70 commits during 3 years until 2016-04-04
Peter Alexander        69 commits during 3 years until 2015-07-22
 together these authors have 80+% of the commits (9530/11853)

Files with most commits:
 411 commits: std/traits.d         during 8 years until 2016-05-07
 414 commits: std/string.d         during 8 years until 2016-05-11
 442 commits: std/range.d          during 5 years until 2014-11-07
 475 commits: std/conv.d           during 8 years until 2016-05-14
 653 commits: std/algorithm.d      during 7 years until 2015-01-17

Files with most authors:
64 authors: std/stdio.d
66 authors: std/file.d
68 authors: std/conv.d
71 authors: std/algorithm.d
73 authors: std/traits.d

By file extension:
   .d: 511 files
   .h: 66 files
 together these make up 80+% of the files (577/697)

May 24, 2016
On 05/24/2016 09:22 PM, Seb wrote:
> 3) I would prefer to generate this information on deploy-time, but
> rolling a small (vibe.d) service was a lot easier than integrating this
> properly in the current Makefile. Maybe once we migrate to ddox this
> would be easier?

I agree that this should be done when documentation is being built. The information doesn't change, so loading it dynamically only makes things slower.

Generally, I think we should be reducing the amount of JavasScript where possible, not do even more with JS that could be done when generating HTML.

A relatively simple, non-disruptive way towards more static generation would be writing small programs that generate .ddoc files, like the changelog builder you've got in the making [1].

So maybe we can have a little tool that generates a git-contributors.ddoc which contains a bunch of contributor lists as Ddoc macros, one per module. Then, for example, in std/stdio.d we put `$(GIT_CONTRIBUTORS_STD_STDIO)` somewhere. That means touching every single module, but there's precedent with the PHOBOSSRC macro.

Or, since the .html files actually seem to be built individually, the tool could generate a bunch of git-contributors-*.ddoc files, each of which defines just a single GIT_CONTRIBUTORS macro. Then it could be included in a skeleton file, or at least there less potential for mistakes when it's put in all source files.


[1] https://github.com/dlang/tools/pull/186
May 24, 2016
I enjoy a good ego stroking, but there are enough issues with the docs being cluttered and harder to digest than necessary already.  I'm not a big fan of adding more clutter.

On 5/24/16 12:22 PM, Seb via Digitalmars-d wrote:
> Hei,
>
> I recently made a PR to dlang.org which is aimed to show a list of all contributors to a Phobos
> module based on the git history.
> The idea is to give all the awesome people who have helped and contributed their earned credit!
>
> https://github.com/dlang/dlang.org/pull/1307
>
> A couple of questions from this PR are still open though:
>
> 1) How can we best integrate this with the author section?
> - Should we move this into the header?
> - Maybe a module could also have a current maintainer(s) (that is in charge of approving changes)
>
> 2) Should we show the avatars? They are loaded lazily, so they don't block the page load.
> If neccessary out of privacy concerns, contribs.dlang.io could act as a proxy.
>
> 3) I would prefer to generate this information on deploy-time, but rolling a small (vibe.d) service
> was a lot easier than integrating this properly in the current Makefile. Maybe once we migrate to
> ddox this would be easier?
May 25, 2016
On 2016-05-24 21:22, Seb wrote:
> Hei,
>
> I recently made a PR to dlang.org which is aimed to show a list of all
> contributors to a Phobos module based on the git history.
> The idea is to give all the awesome people who have helped and
> contributed their earned credit!
>
> https://github.com/dlang/dlang.org/pull/1307
>
> A couple of questions from this PR are still open though:
>
> 1) How can we best integrate this with the author section?
> - Should we move this into the header?
> - Maybe a module could also have a current maintainer(s) (that is in
> charge of approving changes)
>
> 2) Should we show the avatars? They are loaded lazily, so they don't
> block the page load.
> If neccessary out of privacy concerns, contribs.dlang.io could act as a
> proxy.
>
> 3) I would prefer to generate this information on deploy-time, but
> rolling a small (vibe.d) service was a lot easier than integrating this
> properly in the current Makefile. Maybe once we migrate to ddox this
> would be easier?

Please don't add this to the docs. It's enough information there already.

-- 
/Jacob Carlborg
May 24, 2016
On 5/24/2016 12:22 PM, Seb wrote:
> I recently made a PR to dlang.org which is aimed to show a list of all
> contributors to a Phobos module based on the git history.
> The idea is to give all the awesome people who have helped and contributed their
> earned credit!

One idea is to add a "Contributors" button, and when clicked, it executes some javascript that then loads and displays the avatars for the contributors.

June 15, 2016
On Wednesday, 25 May 2016 at 06:51:45 UTC, Walter Bright wrote:
> On 5/24/2016 12:22 PM, Seb wrote:
>> I recently made a PR to dlang.org which is aimed to show a list of all
>> contributors to a Phobos module based on the git history.
>> The idea is to give all the awesome people who have helped and contributed their
>> earned credit!
>
> One idea is to add a "Contributors" button, and when clicked, it executes some javascript that then loads and displays the avatars for the contributors.

As there as been diverse feedback and no conclusion, I would like try to revive this discussion - preferably on Github [1].
To argue against some of the posts here, a short summary of the Github discussion:

1) There's _no_ performance impact - everything is down lazily after the page was loaded (see Github for an detailed description)
2) The clutter isn't visible too most users anyhow as the contributer's list is shown at the bottom of the page
3) It currently would require a lot of hard-to-main ddoc hacks to due this at compile-time (see Github)

If you have better ideas how we could incorporate such statistics, let me know :)

[1] https://github.com/dlang/dlang.org/pull/1307
June 14, 2016
On 6/14/2016 6:10 PM, Seb wrote:
> On Wednesday, 25 May 2016 at 06:51:45 UTC, Walter Bright wrote:
>> On 5/24/2016 12:22 PM, Seb wrote:
>>> I recently made a PR to dlang.org which is aimed to show a list of all
>>> contributors to a Phobos module based on the git history.
>>> The idea is to give all the awesome people who have helped and contributed their
>>> earned credit!
>>
>> One idea is to add a "Contributors" button, and when clicked, it executes some
>> javascript that then loads and displays the avatars for the contributors.
>
> As there as been diverse feedback and no conclusion, I would like try to revive
> this discussion - preferably on Github [1].
> To argue against some of the posts here, a short summary of the Github discussion:
>
> 1) There's _no_ performance impact - everything is down lazily after the page
> was loaded (see Github for an detailed description)
> 2) The clutter isn't visible too most users anyhow as the contributer's list is
> shown at the bottom of the page
> 3) It currently would require a lot of hard-to-main ddoc hacks to due this at
> compile-time (see Github)

There's still the added net traffic (bad for mobile users).


> If you have better ideas how we could incorporate such statistics, let me know :)

Sure: One idea is to add a "Contributors" button, and when clicked, it executes some javascript that then loads and displays the avatars for the contributors.