Letting things go
37signals.com
37signals.com
However, ultimately, if every project said "no" to every feature the developer did not personally need, there really wouldn't be very many widely-adopted projects. They key is balancing patches that you don't personally need against your vision for the product: and I did have a vision for Capistrano. It just wasn't really clearly defined, especially early on, which is why I regret some of those patches.
It was definitely a learning experience all around.
However, I have some criticism over the way it's been handled, and I'd like to point out before saying it that it's not a personal attack, just some observations. I don't use Cap but I do use net/ssh and I'm very grateful for Buck's contributions. However ...
It's his right to walk away, and as he points out, he owes the community nothing. But it's still a bit weird and passive-aggresive, the way he's done it. Healthy human interaction in a situation like this would be polite but insistent assertiveness; defining your limits and consistently sticking to them, not holding it in, getting silently angrier and more pissed off, then quitting in a blaze of defensiveness.
There are techniques for dealing with users/contributors, distributing the load so no one person is overwhelmed. Capistrano's documentation, for example, was/is awful. The website has almost nothing useful. The way to learn how to use it is to perform any number of searches for people talking about how they did it on their blogs, and then doing it yourself by trial and error. Or the entitled newbie way, which is to pile on the mailing list, where their questions were foolishly answered, attracting ever more entitled newbies looking to have their problems solved for them, causing stress. Decent documentation would have solved a lot of that.
And overloaded with feature requests/patches? There are websites for handling feature requests, and the developer should have insisted on nothing but properly tested patches fixing a known bug. Wouldn't that have gotten the situation more under control? Or hell, why not roll cap into Rails proper and spread the load that way?
It's all just a bit suboptimal, is all. Oh well. Good luck to the dev. Hopefully other projects can also learn from the experience.
I actually used a website for handling feature requests and patches (lighthouseapp.com), and it worked great. But even the best tested patch for a known bug still needs review. It needs to be applied and tested locally. It needs an update to the ChangeLog. And eventually it needs to be bundled and released, each new release requiring (at minimum) some release notes and a blog post announcing it.
It was a bunch of little things that got more and more annoying. I would have loved to distribute the load across more devs, but aside from a few who would review patches on specific topics (Scott Chacon, for instance, helped with git issues), it was all me, all the time.
What you need to do is write a script to automate those small but repetitive tasks! I heard about this great bit of software to do that for you called Capi.. oh.
I was going to add, I think a factor contributing to the lack of ongoing support you received is simply capistrano's place in the stack. Unlike Rails or other libraries, it very much has a "deal with it once then forget about it" usage pattern, which would seem to discourage ongoing participation. Or if there was some kind of missing feature "blocking" the envisaged deploy scenario, that would create a pressing need to "get this in NOW!" - and then forget about it.
The simple position of Capistrano as the deploy mechanism - a critical "bottleneck" through which one must pass but then safely forgotten - could be the reason for the "all me, all the time" dynamic.
Anyway, glad to see you don't seem bitter. Good luck and looking forward to future projects.
I think this is because he became emotional due to the attachment of Capistrano to his personal identity. It was his "baby", after all. So it wasn't just a professional moving on but a personal "good bye".