Me, Carlos and others has been working on improving the newcomer experience. GNOME is a 15 years old project. Our community conventions and infrastructure which newcomers have to learn all bear signs of this. Over time such project in the size of GNOME build up vast amount of information, historial baggage and complex navigation structure. To me this is all a natural healthy sign of a large project swiftly advancing the Linux desktop.
However, this creates a high barrier of entry for outsiders and ultimately new contributors are necessary to keep GNOME sustainable. The newcomer experience effort aims to simplify the complex navigation, concentrate the information and remove historical baggage. Ideally this effort should spread to every type of contributor, but for now I am focusing on developers.
Introducing Newcomers Guide
In the spirit of simplification, the GNOME Love effort have been renamed to the Newcomers effort. The effort does what it says on the tin. All documentation has been moved from /GnomeLove/ to /Newcomers/ on the GNOME wiki and the IRC channel for newcomers is #newcomers. It is also planned that the “gnome-love” tag should change “newcomers”.
Furthermore the GnomeLove documentation has been restructured. Getting started contributing has been divided into 4 steps: Choose a project, Build the project, Solve a task, Send a patch. The simplicity here is very necessary. Human attention space is small and simplicity makes a large project like GNOME less intimidating.
The first step, Choose a project is a revamped page of the previous project/mentor list. This section presents a small list of projects that newcomers can get involved with. It is important to realize that not all GNOME projects are newcomer-friendly, which is very natural. Ideally a project should only be listed here if it is actively maintained. Concretely by “actively maintained” I mean:
- The project has at least one mentor who help newcomers in #newcomers and the project chatroom.
- The project’s wiki page is welcoming and presents the information you need.
- The project’s bug tracker contains newcomer bugs, so newcomers can find tasks easily.
- The project can is easily buildable.
Currently the section lists 10 projects. The plan is to review the infrastructure of each of these projects and ensure the list is kept concise.
After choosing the page, the newcomers are led onto the second step: Building the project. This is our newcomer JHbuild guide. Then the third Step, Solve a task, is a completely new page aiming to describe a general workflow when solving bugs in a GNOME project. The page also introduces the developer tools we use in GNOME.
Finally the 4th step, Submit the patch, introduces GNOME’s use of Git and how to submit patches to a bug on GNOME’s bugzilla.
What’s up next
With the 4 described steps above, the core of /Newcomers/ is now in place for the new developer experience. The plan is to actively maintain this core and continue to concentrate its contents.
The next immediate step is to look at external links which the Newcomers guide link to. GNOME Developer Center in particular needs a serious refresh. For now, instead of designing the ideal, I started making practical mockups for revamping GNOME Developer Center, reusing as much existing infrastructure as much as possible.
This seemed plausible to me, but they might not be as easily achievable as I hoped. However Frederic Peters is looking into making library-web which GNOME Developer Center is generated from, Django based.
Another item on my wishlist is the ability to build and develop applications without all the dependency mess. Most newcomers get stuck at step 2, Build the project. My own hope is that XDG-app, an SDK and Builder can help us on the way here. It would also be great if we could spread the effort to cover Documentation, Design, etc but for now I’ll be focusing my own efforts into the developer experience.
Feel free to join the efforts, fx by coordinating with me or csoriano at #newcomers. There’s always newcomers visiting and there’s plenty of external documentation we need to revise. By participating you’re ensuring GNOME’s future.