Thursday, June 16, 2011

Ok, so this is a tough post to write. A lot of you are going to take it the wrong way, I know that. It’s human nature. But try to resist that urge.

Here goes: I plan to transfer project ownership and development to a new maintainer by mid-September at the latest.

Don’t panic!

Let’s take this step by step. First, the reasons.

The mighty “Reasons”

As some of you may know already, I started Sigil while I was a CS undergrad. I made it both my Bachelor’s and my Master’s thesis so that I could justify the time investment and continue working on it.

All of that is now over. I graduated. I got a job. Life got complicated in numerous other ways. That’s three reasons right there. But there are others. For instance, I’ve been looking at this codebase for over two years now, and frankly I’ve grown weary of it. I want to work on other things in my spare time, contribute to other open-source projects. Running such a popular project comes with it’s own set of obligations and responsibilities, and I’d like to not have them anymore. I’m worn out and tired. Some of this has been covered in the “serious conversation” post.

Bottom line, come mid-September, I don’t believe I’ll be able to continue contributing to Sigil at the level both you and I are used to. It will be time for someone else to take over and lead this project to future pastures.

How’s all this going to work exactly?

I’m not just going to hand this over to the first person who raises his hand. Fuck that. If you want to be the new maintainer, you’re going to have to earn it. What do I mean by that? Well you’re going to have to convince me that you can manage this beast. There’s a distinct reason why I brought this all up three months in advance. Currently, I have all the time in the world[1]. This means I can and will dedicate a lot of time to Sigil. I plan to get a lot of stuff done in this time frame. I’ll also be more than willing and able to answer any questions a new Sigil developer might have.

Come up with some feature you’d like to introduce to Sigil or a bug you’d like to fix. Start small. Explain to me how you’re going to implement the change, code-wise. If you don’t have a clue what you want to work on, just say so and I’ll get you something small and easy to whet your appetite.

Implement the change and push it to your clone. Please do your best to follow the code style. I know it’s not written down (I’ll fix that eventually), but it shouldn’t be too hard to figure it out by just looking at the current code. Don’t worry too much about it, I’ll point out any issues if they arise. A few pointers:

Always keep readability in mind, it’s the single most important factor of any codebase.

Use long, descriptive names for functions and variables. Again, look at the current code.

Keep functions short and simple. Split long functions into multiple smaller ones.

Comment the why, not the how. If the how is really complicated, then do comment it, but try to make the code simpler first.

Tell me when you’re done so I can take a look at it.

I’ll merge your changes after any points of contention are resolved.

Don’t forget you can ask as many questions as you want. I’ll be glad to help.

Continue making good changes to the codebase and we’ll get along swimmingly. Do great and supervision will gradually be reduced. Do awesome and become the new maintainer, eventually.

I’d love it if several people came forward wishing to contribute, even if they didn’t want the maintainer’s role at the end. The more the merrier. In fact, I’d love it if one of the major commercial users of Sigil hires a group of people to work on the project. I’d gladly transfer control to them as a group, as long as promises are made that Sigil will remain FOSS.

I’m a user of Sigil. Should I panic?

Don’t panic. Popular open-source projects don’t just die out when the original creators move on. That just doesn’t happen. In fact, new maintainers taking over is a natural progression of the FOSS model.

I’m not going to disappear either. I’ll be around and active for the next three months at least, and I’ll probably contribute small fixes/features on an irregular basis after that too.

Footnotes

Thursday, June 9, 2011

Two important things happened. The first is that I have finished my Master’s Thesis. My mentor signed off on it and it’s currently being printed and bound. That’s a huge weight off my shoulders. Everything is on track so I should be graduating in July.

The second important event is that after months of job offers, interview prep, flying around the planet so the interviews could be conducted etc., I have finally accepted an offer. From Google, no less. I’ll be moving to Mountain View in the San Francisco Bay Area some time in September or October of this year.

I’d like to thank all the companies I’ve interviewed with/received offers from for their time and consideration.

What does this all mean for Sigil? Well it doesn’t impact my timeline much. I have pretty much the entire summer to screw around, and a lot of that time will go to Sigil dev work. After that… well that’s material for a different blog post you should see in a few days.