Frequently Asked Questions

What is Rails Contributors?

Rails Contributors gives credit to all people who have contributed to the Rails code base.

Why, isn't this information already provided by Git?

Not really.

Rails Contributors is tailor-made for Ruby on Rails and, albeit not perfect, tries really hard to be as accurate as possible. You need to go far beyond Git metadata to accomplish what this application does.

Subversion

Ruby on Rails used Subversion for approximately the first four years. Since Subversion does not have the concept of a commit author, the author's name is not available.

Some conventions emerged though, like putting the author name in square brackets in the commit message, or in CHANGELOG entries. Rails Contributors processes those credits.

Canonical names

Over the years people get mentioned by their name, or nickname, there are abbreviations, typos, emails.... For example, Marcel Molina Jr. has commits credited to "Marcel Molina" (no "Jr."), "Marcel", "Marcel Molina Jr" (lacks a dot), "marcel", "noradio" (nickname), and "Marcel Mollina Jr." (typo, double "l"). The application knows all of them refer to the same person, and it is able to consolidate all of Marcel's commits into one single canonical name.

Rails Contributors knows about +1100 name variations.

Multiple authors

Git does not support multiple authors per commit. Rails developed custom conventions for that, and over time GitHub did too. The application understands them all.

Some examples: ef2b139 (credit via [...] in the commit message), 65b4aae (credit given in the CHANGELOG), 63efb49 (credit via Co-authored-by annotations).

Plural nicknames

A couple of nicknames refer to several people. For example, a commit by "Carlhuda" (like this one) has to be credited to Yehuda Katz and Carl Lerche.

Manual credit

Finally, occasionally the information to give credit is just missing. For example, Dana Jones should have given credit for this commit, but the attribution was not included. Rails Contributors has support also for these exceptional hard-coded fixes, and Dana has gotten her due credit.

My contributions are split, can they be merged?

Yes, please have a look at the maps in canonical_names.rb and feel free to submit a pull request. Please take into account only maps for nicknames that exist in the repository, typos, etc., are accepted. That is not a generic database of aliases.

Can several people get credit for one commit?

Yes, you can place their name at the end of the first line of the commit message in square brackets:

    awesome API refinement [DHH & Jeremy Kemper]

or in the rest of the message, in a line by itself:

    first line of commit message

    message body line 1
    message body line 2

    [Author 1, Author 2, Author 3]

A few list separators are supported, but you can just stick with "&" or "," for example.

or you can use Co-authored-by with their name and email in individual lines:

    first line of commit message

    message body line 1
    message body line 2

    Co-authored-by: Author 1 <author1@example.com>
    Co-authored-by: Author 2 <author2@example.com>

The home page has a huge table, no pagination?

That's by design.

If you contributed anything to Rails, even a comma in a comment, your name deserves to be in the home page.

Why does it count commits?

Generally speaking, commits, LOCs, etc. are not a meaningful metric of the amount or quality of people's contributions. We all know that, and that's why this website is not a ranking.

But commits are the natural unit of data we have as input, what can be grouped and listed. That's about it.

Is this gamification?

No.

While Rails Contributors may encourage some people to partake in the project, there is no gamification in the motivation behind this application.

The motivation for Rails Contributors is to give well-deserved public recognition to all people who have contributed to the code base over the history of the project, and to say a big "Thank You!"