Wayland is the new display server for the Unix-like platforms. The development started around 5 years ago in 2012 in order to create a modern alternative for the 30-years-old X display server which doesn’t inherit its issues. The results are “good” so far. GNOME and KDE teams are working on completing their implementations of Wayland and fixing issues with the new server.

Many companies are working on developing Wayland. Beside a lot of individuals. But what’s the percentage for each one of them? Who’s contributing more to the code than the other companies? That’s what we try to find out in this article.

We first went to the IRC channel to ask about if any data exist about this topic. The answer was no. But they pointed us into way of getting this data through grabbing the history of commits in the Git repositories and looking who’s contributing more.

So we took it to the next level and we created a nice visualization for the data we got using a Python script. Which uses the famous Pandas module to do its job. Those were the results.

Who’s Developing Wayland

Wayland code (and its other assets) consists of 7 different repositories: Wayland server, Wayland protocols, Wayland Build Tools, Wayland Java, Wayland Web, Weston and libinput. You can check the Git repositories from here.

We created a script which downloads all those Git repositories, extracts the commits history for each one, creates a dataframe from it and finally plots it in a nice chart. We cleaned the data by combining similar domain names.

Kristian Hogsberg is the main developer for the Wayland project. Users who are committing with gmail.com or similar mail services were filtered manually to their real employer (if found). This took us tens of hours of searching.

After running our Python script, this was the percentage chart for the main Wayland repository:

35% of the number of commits are done by Wayland founder. Followed by Red Hat with around 20%. Different people coming at third place and Samsung coming forth.

This is the detailed number of commits for each entity:

For the Wayland Protocols, this is the distribution of commits:

Which shows that more than 50% of the commits are committed by Red Hat staff. Followed by the folks at Human Oriented and Collabora respectively. Samsung coming forth again with 13%.

This is the detailed number of commits for Wayland Protocols:

Wayland Build Tools percentage is as follows:

Clearly, Samsung developers are doing most of the work in this small project. This is the number of commits for each one:

This is Weston. The original compositor developed by Wayland developers:

30% of the code is written by the project founder. Followed by around 20% for Collabora. And different developers coming in the third place. Intel coming forth with 12%.

The number of commits is as follows:

The Wayland web pages are written by:

With the following number of commits:

Java bindings for Wayland clients are mainly created by only 1 company. It’s an abandoned repository (no new commits since 2015):

Finally, we have the libinput library. Which is responsible about events and input devices handling:

More than 90% of the code is written by Red Hat. Followed by the project founder, Intel and different other developers respectively. This is the detailed number of commits:

The Python Code

We have created a Github repository called “FOSS Data” which includes the scripts we used. Beside the raw version of it which allows you to run the same process on any Git repository. You can go ahead and use it on the Git repositories you want to find some general stats about. It’s released under GPL license.

Check FOSS Data Repository on GitHub

Conclusion

Many famous Linux and open source companies are contributing to Wayland. Red Hat seems to be taking the lead followed by Intel and Collabora. A lot of other developers are also sending commits to Wayland. Note that this is an analysis only for the main Wayland repositories. Other Wayland implementations like GNOME and KDE were not observed.

Update @ 10 June, 2017: The first version of this article depended on the assumption that all developers are using their work email addresses when submitting their commits to the public Git repositories. Unfortunately, this assumption turned out to be largely wrong. Since then, we have used a new methodology where we searched manually for most active email addresses and assigned them to their real employer.

We continued doing this process until we’ve assigned all email addresses which could make a difference in results to their real employer. The article now contains the updated code, figures and graphs.

Load More Related Articles
  • Kevin

    There is no such thing as a “main Wayland server”. Each compositor is its own server. This https://cgit.freedesktop.org/wayland/wayland/ repository contains several libraries that can be used in compositors or Wayland clients.

  • daniels

    Thanks for the update, but this is still pretty inaccurate: Pekka Paalanen made many commits under his gmail address. Accounting for this would push Collabora over gmail.com for Weston, and to roughly on par with Intel for the Wayland repo …

    • https://uploads.disquscdn.com/images/9cf43191008748c2eaf7071aceef13347b75a1c5c84f124f0dc82dc232922cbf.png

      While I may agree with you that we should have cleaned the GMail addresses as well (which will takes days! 🙂 ), but still, the ranking won’t change for Weston after I replaced his email.

      • daniels

        That’s quite odd; I see commits from GMail falling from 1246 to 896 when excluding Pekka’s commits, with Collabora (@collabora + Pekka’s old GMail commits + my old @fooishbar commits) having over 900 …

        • I see that he was pushing the commits using two different emails: One of them is GMail and the other one is @collabora. His gmail email is ppaalanen[put an at here]gmail.com, right? So what I did was just replacing it with his work email to combine his commits for Collabora.

          This is the Python code: https://pastebin.com/EThURAAP

          • daniels

            The substitution only works on a list of domains, where you are trying to replace a username+domain combination. Have you considered using %aE as the pretty-print format, and using a .mailmap file instead?

          • But the substitution shows his updated email (the correct replacement with @collabora) in the list. I mean, it’s there in the data. But I noticed that there’s a problem because even before/after the replacement there was no change in the percentage of both rankings.

            You’re right anyway. I will make this article private and update it completely few days later using a better methodology.