Thursday, June 16, 2011

New maintainer needed

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.

If you want to become a new maintainer, here’s the process:

  1. Send me an email to sigil@gmx.com (or my personal email address, or a PM on MobileRead). Introduce yourself, your background etc. Basically say “hi”.
  2. 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.
  3. Create a new clone of the codebase. Sigil uses Mercurial. Don’t know Mercurial? Here’s a great tutorial by Joel Spolsky.
  4. 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.
  5. Tell me when you’re done so I can take a look at it.
  6. I’ll merge your changes after any points of contention are resolved.
  7. 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.

[Related discussion can also be found in this MobileRead thread.]

Footnotes

[1] Actually nowhere near it, but let’s pretend.

9 comments:

  1. Strahinja, considering the amazing work you have done on Sigil, Google would be very smart to make you a tidy offer:)

    ReplyDelete
  2. @Avi They *did* make me a tidy offer, and I accepted it. :) I mentioned this in the previous blog post. http://sigildev.blogspot.com/2011/06/thesis-done-job-secured-next.html

    ReplyDelete
  3. I only realised that you had accepted a job offer from Google after making my previous comment!

    ReplyDelete
  4. Strahinja, thanks for your work so far and good luck for your future endeavours! (I know I'm early but I'd most likely forget later on. ;) )

    I'm really glad to see you're preparing this properly - I've seen even popular F/OSS projects fail because the maintainer just disappeared over night and left a mess behind.

    ReplyDelete
  5. Thanks for all of your hard work on Sigil. It is at an awkward age and size. Big enough to demand a lot of work, but not so big enough that you can live off it.

    I appreciate the way you are leaving the project in a way where someone else can take it over in a reasonable fashion. I am facing a challenge at work where I am taking over maintenance of a piece of electronics where the manufacturer figured they were going to move so threw out all the information about it. Hard on the maintainer and even harder on the customer.


    Thanks again.

    ReplyDelete
  6. Strahinja, thank you for all the time and effort you put into this nice piece of software (even if it also served a more practical purpose of helping you earn you MSc ;o)

    Your approach to passing the torch is impressive, too. Though, I do hope you will see Sigil to the full 0.4 release....

    Have wonderful time at you new job at Google.

    ReplyDelete
  7. Hello,

    Do you have planned to release a final version 0.4 before transfering project ownership? Thanks for your job.

    Regards,

    ReplyDelete
  8. Well, I also want to thank you very much for all the work you put into this amazing software.

    I wish you all the best in Mountain View and hope Sigil get's a similarly dedicated developer.

    ReplyDelete
  9. If Barnes & Noble were thinking about gain advantage over amazon, they'd realize the EPUB tools are what makes Nook development so much easier than Kindle work. I'd suggest they hire you for a substantial boost over your current salary and let you make Sigil a fulltime job with the budget for some assistants.

    Sigil is one of the primary reason I make all of my books as EPUB first, then convert to Kindle.

    ReplyDelete