Monday, November 04, 2013

Joining the FreeBSD committer ranks

About 11 years ago, I had the honor of becoming part of the NetBSD developer team. A week ago, the same offer was extended to me for FreeBSD and I could not refuse it... so, as of two days ago, I am jmmv at FreeBSD and will be working in src!

But how have I ended up here? The story goes back in time...

My beginnings with FreeBSD

FreeBSD was the first BSD system I tried after spending a couple of years with Linux. I was able to do so because one of the PC magazines that my father used to buy in 1999 came with a copy of FreeBSD 3.2 — pretty advanced stuff for a magazine compared to today's standards, huh? However, that first experience did not go very well: the system felt really sluggish... only because I did not know that I had to enable the magic softdep option. So I gave up.

Soon after came the desire to harden my router and, following the advice from various IRC folks, I chose to replace my Debian installation in my router with OpenBSD 2.8 (circa 2000). This did not go very well either: I was still relatively unexperienced with Unix-like systems and OpenBSD was certainly "hardcore". After a few months of frustration, I reinstalled the machine with Debian and tossed BSD systems aside for a while.

Until FreeBSD 4.1. That was the first BSD system with which I spent enough time and it changed my mind; it was a pretty enjoyable experience. I was able to set up all the software I needed and I could get all the hardware in my machine to work. I grasped the benefits of having a unified source tree for the whole system and embraced the idea of the BSD license. And I stayed with FreeBSD for over a year.

But then came NetBSD 1.5.2. Installing that system made me feel truly in control of my computer, which is something I really enjoyed at the time: everything was left up to me to set up and, due to its reduced contributor base, there were plenty of (easy) opportunities for me to meaningfully contribute to the operating system. A dream come true basically. I made the switch after a couple months of coping with the learning curve and never looked back... until recently.

My return to FreeBSD

After I started attending the major BSD conferences in 2011, I started to slowly realize that I was "missing out" for not being part of FreeBSD. The community is just much larger and active and, although this means that contributing may be harder, it also means that a successful contribution is more impactful and beneficial to the world. Let's get into specifics.

During AsiaBSDCon 2013, I had a chance to meet a bunch of FreeBSD developers. I can't remember what we talked about exactly, but I know that we covered the topic of testing. A bit later I started to look at how to contribute in this area and sent a few patches out... which then died off because my time to work on open source plummeted to zero over the summer.

Sometime around then, I bought a second-hand PowerMac G5 to run NetBSD on. My experiments did not work with that system but they did with the powerpc64 port of FreeBSD. This gave me a real machine on which to play with FreeBSD CURRENT and did so for a while with pretty good results.

Then came EuroBSDCon 2013 and it changed everything. It is in this conference where I attended my first FreeBSD devsummit, and it is here where I realized that working on a test suite for FreeBSD was a very attractive idea. My energy was "recharged" and I retook my discussions with various individuals on this topic. A few patches later and a project plan writeup granted me the offer to obtain a commit bit, if only to make the life of my "proxies" easier.

So here I am. A few weeks later and I got a commit bit for src. I am pretty sure that my long curriculum with NetBSD made this easier. In fact, I've seen similar patterns in NetBSD-land: long-time contributors to other BSD flavors have a much easier time getting a committer account. After all, they have a proven track record in a similar project so this is not unreasonable.

Planned work

As you can imagine, my main (planned) work in FreeBSD is to bring up a test suite for the operating system based on ATF and Kyua. The goal is to make this similar enough to its NetBSD counterpart to allow sharing tests and code wherever reasonable, but it will also be a place where some new ideas can be validated.

In particular, and because FreeBSD has never been tied to ATF, FreeBSD can and will jump straight to Kyua without having to worry about transitional steps — which is an excellent playground for Kyua and a huge motivating factor to finish cleaning up a bunch of important rough edges.

If you are interested in testing in general, do not hesitate to join the freebsd-testing mailing list and follow along. You can also take a look at my Test suite project plan for more details.

Stay tuned!

PS: But hey, what about NetBSD?

Yes, what about it? I am not going anywhere! I am happy and proud to carry both the NetBSD developer and the FreeBSD committer titles. There are no rules forbidding this double membership and, actually, I believe the BSD world would be better served if we had more individuals contributing to more than one BSD flavor at a time. My expectation is that being a member of these two systems will keep me honest in my proposals and designs, so as to prevent me from proposing solutions that are not generic enough.