By Raniere Silva, Software Sustainability Institute, David Pérez-Suárez, University College London.
Last year Raniere found out that the GNOME User and Developer European Conference (GUADEC) 2017 would be hosted in Manchester and that he should attend. Early this year, during Science Together, Raniere mentioned GUADEC to David Pérez-Suárez and we agreed to show up at the conference to find out what we could learn from GNOME about onboarding newcomers and best software development practices.
All open source projects struggle with onboarding newcomers. And, most of the time, driving yourself to the first contribution is a journey that will have old source code, out-of-date documentation, undocumented culture and other rocks on the way. Thankfully, many contributors to open source are working collaboratively with other projects to lower the barrier between newcomers and their first patch/pull request/merge request.
At GUADEC, Carlos Soriano and Bastian Ilsø presented "Newcomer Genesis Evolution", their work to rewrite the onboarding website that so far constitutes of four subpages: "Choose a Project", "Build the Project", "Solve a Task" and "Submit". Each subpage tries to be as short as possible with many screenshots. We recommend anyone interested to make first time contribution journey easy to have a look at Carlos Soriano's and Bastian Ilsø's work and include something like the image at the begin of this section to show newcomers' progress.
Together with this newcomers project Gnome is adopting few changes that also aim to lower the entry barrier and which many other projects can learn from. These include:
moving most of its projects to use Flatpak integrating it with Gnome's Builder, an IDE that provides the same interface for all their projects whatever the language they are on, making the setup of the development environment for the newcomers easier.
migrating towards GitLab, where people can submit merge requests instead of providing a patch file. With the known advantage that this platform brings to review contributions and their connections with continuous integration systems.
moving from IRC to Matrix as their default messaging system. Matrix is a federated protocol with various clients that can be used from computers and mobile devices. It bridges with IRC, making it (text-)compatible with contributors that still want to use their favourite IRC client connect to GIMPNet.
Containers is a hot topic in the tech industry. Docker is probably the most popular container technology in the market at the moment and is being used in research as demonstrated during the Docker Containers for Reproducible Research Workshop organised by the Software Sustainability Institute in July 2017. At GUADEC, the buzzword in terms of container technology was Flatpak, "the next-generation technology for building and installing desktop applications" as advertised on Flatpak's website. Some of the features that Flatpak has in common with Docker is the installation of different versions of the same application on the host environment and maintained collections of essential dependencies. The main difference between Docker and Flatpak is the access a resources on the host environment, for example, storage space, mainly due to the difference between a (single user) desktop environment and a (multi user) server/cloud environment. Flatpak allows access to local resources so that a text processor contained in Flatpak can access local files when Docker deny the access, by default.
If you got excited with Flatpak and the possibility that it will make easy for users of your research software to install it be aware that, as Docker, Flatpak is tied to Linux so it doesn't work on macOS and Windows at the moment—though it might in the future with Windows because of the Linux subsystem in Windows 10.
Documentation and Translation
Behind the scenes of Gnome, there's huge work done by translators. The translators start their job normally the two weeks before a new release shows up, when changes are freezed. Each language has a coordinator and in some cases they have a community around that includes some other projects (like the case of traduc.org for French). The tools for translating follow the standard steps, the documentation is broken into tokens that then get translated. If you master another language than English, go to their site and start contributing to make the computers more accessible to people around the world. You don't know another language? No problem, I'm sure there are bits that need documentation in English.
From our experience, the adoption and clear advertisement of a chat application from the organisers of a workshop or conference can improve attendees experience, specially during the social hours. We used Telegram, Slack, Gitter and others platforms in the past and all worked as expected—we were able to text our fellow attendees. GUADEC organisers didn't mention their recommended chat platform during their pre-conference communication, probably because they expected attendees to know the (Gnome) official chat place is (IRC) GIMPNet, which leads to small groups talking on different applications—for example, IRC/Matrix, Telegram, Slack, Gitter, WhatsApp, Signal and many others—creating a poor experience due to the waste of time to remember which app you need to use to message someone.
Overall, GUADEC exceeded our expectations. We found great tips on the landscape of onboarding newcomers and best software development practices. In addition, we learned more about the successes and mistakes that GNOME made on its first 20 years from long time contributors, specially Allan Day and Emmanuele Bassi. And we also attended the epic GNOME 20th Anniversary Party at the Museum of Science and Industry in Manchester. GUADEC 2018 will take place in Alméria, Spain (date to be announced) and we would try to attend, this time as contributors.