I did my first putback to OpenSolaris yesterday evening:

6509186 "zfs set" should list properties in alphabetical order

Okay, so not exactly ground-breaking – a P4 RFE that I can’t imagine will change anyone’s life, but it was a bit of a milestone for me.

As part of my participation in the SEED program, one of the things I wanted to learn more about, was how we develop our operating system. So as well as reading about it, my mentor mjnelson suggested that actually doing some development would be worthwhile. I got in touch with Matt to see if he could recommend some simple to fix, low priority ZFS bugs, I picked one, and got stuck in.

The process of changing code in ON can seem pretty daunting to a newcomer, and it took me a few months of spending my spare moments writing code, checking style, building, checking build logs for lint errors, getting code reviews from the ZFS team, particularly marks and markm (thanks guys!), testing (lots and lots of that) and a fair bit of resyncing my workspace when other more-active developers changed their code above me.

Why so long for such a trivial bugfix ? Well, I have a day-job for one thing – the idea of not spending time testing ZFS just to make a low-priority fix to it seemed like a bad idea. Also, I hadn’t changed Solaris before, but the main thing that made me take my time, was the notion of the
Quality Death Spiral

This document states that OpenSolaris strives for
“FCS quality, all the time” – the Developing Solaris document goes into more detail on why this is so important, but I feel this notion is a big part of what makes OpenSolaris great, and I was being very careful to do no harm: we take a lot of care, even for small bugs like this, and that’s a good thing.

I was really very nervous typing the final wx putback command on the gate machine to add my changes to the source tree. That said, I hope I always have that feeling if I ever get to putback again, after all – stress isn’t always a negative thing.

What’s the outcome ? Well, pretty soon, if you type zfs get or zfs set, you’ll get a nicely sorted list of properties in the usage message. Well, I did say it was pretty insignificant, didn’t I ?! Perhaps next time, I’ll get the output of zfs get all sorted too…