One year at Apache

How I got to understand The Apache Way in the past year

I have been working with Apache software for many years now, but in the past year I really got into how projects at the Apache Software Foundation. I became part of two communities within this huge open source organization. My day job and many of my side projects involve working with Apache Cordova and just end of 2019 I became Cordova project management committee (PMC) member and committer. Although I don’t work with programmable logic controllers (PLCs) or just any industrial IoT I closely follow the Apache PLC4X project and sometimes contribute there. Getting in touch with these folks was pure coincidence and I am proud to be a committer for this project, too.

Apache Cordova

Cordova has been a part of developer toolchain for a long time. I have used it for many projects since I got in touch with it at my job like 4 years ago. Cordova is a tool to develop cross platform apps with web technologies.

Over the years I did quite a few contributions to Cordova for many areas of the project. Especially at my job we experienced some issues with a complex app and major iOS updates or WebKit bugs that needed work done in Cordova. I did my best to debug, fix and report those bugs to Cordova or Apple. I am really no iOS developer but I found my way through the Cordova iOS codebase many times to learn something new. Most of these issues resulted in contributions to Cordova and I am proud for a few PRs that really helped our app and the project from my point of view.

I worked on some Cordova plugins and really like the adventure of going into Cordova and figuring out how to do something. 2019 was an interesting (and sometimes exhausting) year for me with Cordova and iOS 13. I spent a lot of time figuring out how to fix stuff that was suddenly broken. I have been on the dev mailing list for some time but I was more active in issues and e-mails while working more on Cordova itself. I am really happy my employer sees the great value being part of the Cordova community brings us as users of the project. I now have the opportunity to work on Cordova more actively and become part of the decision making that affects the technical groundwork of our products.

In December 2019 I got elected as a PMC member and this was really an awesome surprise and a big achievement for me after this great time of working and interacting with these people who work with Cordova.

One of the main Apache ideas is “community over code” and in the past year I really started to understand how that works

The EU Apache Hackathon

Almost a year ago I fortunately found an invitation online for Apache communities by the European Commission. The European Union has a project called FOSSA 2 that focuses on the security of open source projects used by the EU and general public. They organized a series of hackathons in Brussels to bring communities together to work on their project and exchange ideas with the EUs institutions. For the second of three hackathons they were looking for Apache projects to take part for one weekend of working together. I already blogged about FOSSA 2 and the hackathon back then.

At the event I started to really understand how and why Apache works. The projects are so different but they share some important ideas and work together in interesting ways. Now I got a feeling how open source works best and I can distinguish different approaches all OSS projects take out there.

This event was very special to me. I was already enthusiastic about open source before but speaking to these experienced and cool people was a lot of fun. I learned a lot in these two days and some great new friendships were formed.

PLC4X

The hackathon was the first time I got to know the Industrial Internet of Things and PLCs. I met some of the cool people behind the project, worked with them for a bit and I am still around the project. I contribute when I have the time or think my different skill set can bring something new to the table. The project and the people working on it have such a different environment and background than my daily development life. I really like that we often learn something from each other.

I feel honoured the PLC4X PMC decided to give me committer privileges.

The work of a PMC member

After becoming PMC member I spent a lot of time reading Cordovas and the Apache Software Foundations documentation what a PMC member does. It really takes time to understand what you should and what you shouldn’t do as PMC member. The hardest part is to understand how and why those processes work. Take for example release voting. A release is in simple terms an “official Apache product” and the PMC has ensure it adheres to rules and standards. The PMC member who creates a release is called release manager and has to follow written instructions to create a release. At first I thought that this is overly complex and some stuff is unnecessary but after some time I understood that it is like it is to protect the contributors and foundation from legal issues and create a release that is legally fine.

I am very happy some PMCs took the time to explain everything to me and how they work on Cordova. I am regularly in touch with some people on the PMC team.

Another important task is voting on releases. When release managers create a release they will start an email thread on the mailing list for voting on the release. Everybody can check the release and vote on it, but only PMC members votes are binding. There is a document explaining what to check in a release. Voting basically means checking that the release only contains code intended for the release, all license and notice files exist, the release builds and tests are OK and it is properly tagged. Usually this is done very quickly and I try to vote on every release. The code itself should already be OK since all pull requests are reviewed and you do not need to test everything manually. A release needs three or more positive votes (+1) and more positive than negative votes (-1). With enough time passed and enough votes the release gets officially published and, in Cordovas case, pushed to NPM. The Apache Release guidelines are a long read.

Right before becoming a PMC member I did some work on a Cordova plugin (cordova-plugin-inappbrowser) that I need a lot for work. My contributions were merged but I was waiting for a release. As soon I was an official PMC member I started preparing the release by triaging issues and PRs. I signed up for doing the release and many helped me to get this release done. It felt good after so many years of working with Cordova to finally work on maintaining Cordova and release something people are waiting for.

The future

Nobody knows what the future brings but I feel I will be involved with Apache for while. Some time I ago I was under the impression that Apache is not cutting edge or kind of bureaucratic but now I know why it is like that and I strongly favour that governance model over some OSS projects that are under the strong influence of corporations and are ‘just open source for marketing’.