Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Jamis Buck lets go of Capistrano (jamisbuck.org)
62 points by sofal on Feb 25, 2009 | hide | past | favorite | 41 comments


This seems a lot healthier and more mature than the industry standard approach towards abandoned open source projects, which is absentee landlordism. He's giving people opportunity and the clear signal that it's OK to fork the project.


I think Github will really help that situation. The problem with traditional open source projects is that somebody can control who contributes back, and if that person isn't around, the project dies. Sure you can fork, but there's no way for others to keep track of where the project has gone to. When this happens, it tends to just acquire a new name and become something else.

Github solves all these problems. Github rocks.


> but there's no way for others to keep track of where the project has gone to

so now instead of searching around for the project's new homepage, you have to search through dozens of forks each with one or two bugfixes or random changes and find out which one is the most actively maintained?

i'm all for git's concept of forking to make your own development easier, but unless you merge your fixes back into a mainline distribution, it's just stupid and creates confusion for everyone else relying on that software.

say you want to run a script that someone has written that uses net-ssh. until now you could be assured that they wrote it using the official net-ssh ruby module and it will work with the one you have installed. so from now on you'll have to install the random net-ssh version that someone has stashed away on his github account? and what happens when that particular fork of net-ssh stops getting maintained? someone else forks it and now you have to install a different version?

what about the security ramifications of using some random person's fork of an ssh module that you are entrusting to login to your servers? would you install a forked version of openssh from an unknown source on your server or would you rather get it from a known, trusted source?


I made a Rails authorization plugin a while ago that has a small following. After I moved to App Engine for my web programming, I recruited two commiters who know what they're doing and made them "Repository Collaborators" with admin privileges, so my repo on the original page continues to be the main repo.

I'm not sure that's the best solution now that I am effectively an absentee landlord. The main repo is under my account and I get included in pull requests. It would be great if Github has a repo forwarding feature or trusted forks could be listed on the Project Page (just saw that). What's the best way to leave it in other hands?


Let the community decide. The forks with the most activity will start be obvious on the network graph.


So it's not a silver bullet. It's still a bullet. Beats a waving hand.


He probably doesn't imagine just for how many people he made life easier every day. Great job, props and good luck for whatever is coming next!


Well, this sounds like a good opportunity for me to mention an alternative deployment tool with a cooler name : Vlad the Deployer.

http://rubyhitsquad.com/Vlad_the_Deployer.html


I would have had a lot more respect for Vlad if the developers hadn't acted like complete jerks about it: http://rubyhitsquad.com/Ruby_Hit_Squad.html

Building a competing tool because you think you can do it better is fine. Building a competing tool because you want to take a different approach is also fine. Being rude isn't fine, and shouldn't be tolerated in any community.


== SPECIAL THANKS:

* First, of course, to Capistrano. For coming up with the idea and providing a lot of meat for the recipes.

http://github.com/fs/vlad/tree/master


That's nice, but I don't think it makes up for how they attacked it. PJ Hyett (of GitHub fame) even commented on it at the time: http://www.pjhyett.com/posts/224-how-not-to-open-source


If you can't take the heat, stay out of the kitchen.

Really that page is a joke and isn't very rude. It's friendly competition and clearly states why they're competing: needless complexity in the existing tool.

>Being rude isn't fine, and shouldn't be tolerated in any community.

That page isn't rude and the community will tolerate being rude if the code is any good. Look at Linus Torvalds', Theo de Raadt's, and other awesome coders' comments! They're still appreciated by the community for their code and if rudeness weren't tolerated, they'd be kicked out quick quick.


Yeah, I second this. It's really useful and easy to use.


Actually after his last announcement of no longer supporting Windows for Capistrano and Net::SSH this will hopefully be a good thing, assuming the community picks it up. Would be nice if he could find a designated maintainer but either way I doubt these projects will go to the wayside.

Wish I had the time I'd contribute more and props to Jamis for the great tools.


At least, because it's free software, the users have the source and can use that to migrate to alternatives or carry on the projects without him.


When acts_as_solr was abandoned by its old maintainer, there was a lot of confusion about what to do with the code. Unfortunately, no one was named as the maintainer of the project, and no one could push to the official repository. It didn't help that the code was moved to GitHub with git newbie problems, like directories not being in the repo, that stopped it from working out of the box.

Eventually, things sorted themselves out (here's the maintainers' fork: http://github.com/mattmatt/acts_as_solr/tree/master) but there are still frequent questions on the mailing list asking why the plugin doesn't work. It would have been better to name a maintainer who could manage things.

I hope Capistrano can avoid these problems.


Capistrano is mature and stable. Jamis deserves respect for the original idea and the implementation.

For the vast majority of people, the current version will work just fine. When we all get sick of git and start using the next source control system then Capistrano will need support for that but I can't see that happening anytime soon.

Massive thanks to Jamis for all the love he's given to these projects over the last few years.


So long and thanks for all the fish^H^H^H^H AWESOME SOFTWARE!


"Lets go" is not an accurate title, "abandons" would be a better word.

He's written good code and it sucks that he's burning out, but it's not cool to ignore questions and not even try to find a maintainer. Capistrano is used by nearly every Rails project, abandoning it is grossly irresponsible.


Why is it "grossly irresponsible" of me to take this action? Are lives going to be lost or injured as a result? Will the economy suffer? Will my leaving this project result in a health epidemic?

I've never made any promises about the project. I never claimed that I would be around for ever. I never said I would ignore questions, either -- just that I would ignore emails sent directly to me. But I'm going to remain on the mailing list, and will remain about as responsive there as I have (and I'm, by far, the most frequest poster there).


Why not look for someone to take over as maintainer? I'm sure an appropriate person in the community would step forward.

This is the traditional method in most open-source communities... particularly where there are canonical distribution sources such as the rubyforge gems.


I don't believe that's effective, especially for projects like Net::SSH and Capistrano where the hacker-to-user ratio is so low. If someone wants to step forward and maintain Capistrano, they'll do so, and the community will organize around them because they'll show they have the passion to do it. If no one steps forward, then an appointment would have failed anyway, because obviously no one has the necessary passion to maintain it, and it might be better for it to die and make way for other alternatives. Either way, appointing a successor would be futile.

Even if no one steps forward, would that be so bad? Capistrano works perfectly well for the vast majority of folks. It's not like I'm leaving behind a legacy of mostly-broken software. :)


i don't think it's as much an issue of organizing around that new person as it is organizing around the new home for the software, regardless of who is maintaining it.

if i want to update my installed version of net::ssh, can i go to the project's homepage and download a new version or do i have to look through a dozen forks on github to find out which one looks to be the most maintained and hasn't broken anything?


And for what it's worth: I wasn't trying to yank your chain, or be one more bit of stress in your life. I didn't know you'd stay on the mailing list, that's good of you.

Setting up the website, writing docs, writing the mailing list, taking improvements -- you might not have made an explicit promise to be immortal and support capistrano and all western civilization in perpetuity, but your actions led people to believe they could rely on you.


We could, and did rely on the code he produced. But that doesn't mean anyone believed they could rely on him. If he had said, "You can rely on me", you might have an argument. Your bad for reading too much into it.

From the blog post:

> For Capistrano, I will continue to follow the mailing list, and might appear in the #capistrano irc channel from time to time, but I am no longer the maintainer of these projects.

He kind of came out and said it.

Sorry to jump on the beatdown bandwagon, but there really is no defense for your attitude here.


Because a lot of people relied on you and you left them hanging. You can beat up on the straw man about killing people, but ditching the project isn't cool.


Sure it is. Jamis did this work for free, he doesn't owe you or anyone else any of his time to continue to maintain an application that he has burned out on.

Open source software gets abandoned all the time. This is only being discussed here because Jamis took the gentleman's approach and informed everyone that he was stepping down.

People say there isn't an entitlement mentality amongst people these days, but this kind of reaction is pretty compelling evidence that there is.


Open Source just doesn't work that way. People move on. I'm sure for an appropriate price you could find someone to continue to support the software.

It's one thing if people fall back on things they've explicitly promised; it's another if someone just honestly says, "I don't have the time and energy for this anymore."


If you're willing to Paypal me $100 or $200 I'll learn me some Ruby in a few hours and start fixing bugs :D


I disagree with you, but I think this is a common enough viewpoint that it shouldn't just modded down into oblivion.

To state the obvious, he owes you nothing. The source code is there. If this were proprietary software and the vendor went bust, would you expect its employees to show up for work every day and support former customers for free? Now consider that Jamis has been doing just that this whole time!


He does owe the community of users something. He didn't write docs, set up a website, set up a mailing list, etc. because he just thought it was a fun hack he was tossing out there, he was building a community of users. All he owed was a "Hey, anyone interested?" blog post before dropping it. I didn't know he was still going to answer questions on the mailing list -- that in and of itself is probably enough.

I'm not a heartless bastard or a useless eater, I just think it's not cool to ditch people you encouraged to rely on you. It's not at all unreasonable if he's burning out, but that doesn't make it classy.


If you're this traumatized by my decision, then honestly, I blame you (and people like you) for my burn out. Where were your contributions to the library, your documentation patches, your discussions of better ways to implement things? Have you been in the IRC channel, daily, helping people troubleshoot problems? Have you posted frequently on the mailing list in response to questions? If you're so dependent on Capistrano, where have you been? If your silence was because it all "just worked", then why are you so disgusted now? It all still "just works".

As for the "Hey, anyone interested" blog post: I've tried that before, on other projects. People don't respond to those. No one volunteers to be hit on the head with hammer repeatedly for no other compensation than a few slaps on the back. You have to really, really, REALLY want to do it, and a blog post is a bad way to ask for passion. Passion is discovered when you realize you need something, and it's not there (or not ENOUGH there). By dropping out, I've created an environment where people have to really examine their use of Capistrano and decide how passionate they are about it. Passionate enough to pick up where I left off? We'll see.

My decision was the right one. I stand by it. There has already been a post on the mailing list by a couple of programmers who have the credentials and the passion, and are willing to carry the torch. Maybe they would have responded to a blog post. Maybe not. But they've responded now, and now the community can either support them, or look elsewhere. My official sanction has nothing to do with it.

I am sorry you (and a handful of others) are frustrated. I wish it hadn't come to this. But honestly, it's not my problem anymore. (And my! How wonderful to be able to say that!)


It really seems like the Ruby community does this to people who do great things. Another good example of this is Zed Shaw/Mongrel.

However, I'd have to say, being a loyal user of capistrano, I am not sure that I could have brought anything meaningful to the table regarding its architecture or decisions, it was just a great piece of software that I used, and will continue to use.


Thanks for the work on Capistrano. You have increased the quality of my life.


Jamis, thanks for all the hard work you have put in these libraries. You have made my life so much easier and I will be forever grateful for that.

I'm sorry to hear that you burned out and I hope that you will quickly recover.

I respect your decision and I believe you did the right thing. Your health comes before a few folks that are not willing to put the effort to fix things that bother them about the libraries.

You've already done way more than was required of you. Thanks!


Big props, Jamis, and thanks for all the work.


I'm not traumatized or especially disgusted. Disappointed, maybe. You've got a weird habit of reading things about motives and claims I haven't made.


I'm constantly baffled by how people like you can reasonably be disappointed a Jamis for giving a great piece of software away for free. Is this how you would treat a person who gives you a gift? By complaining that he stops giving gifts? How can you even look at yourself in the mirror without thinking that you've done him injustice?


Yeesh. Jamis wrote great code and has been rightly praised by commenters for it. I'm not trying to negate that, just suggest he could've hung it up better. Not every discussion is sbout black and white, I'm not trying to tear down every good thing he's done.


Sounds more reasonable than your other post, but I still hear an overwhelming sense of entitlement.

He is doing more than Microsoft did with VB6, but for free. He did us all a favor by releasing it and spending a tremendous amount of time on it. It is open source, you can do whatever you want with it. The free labor of love he bestowed upon the world is MORE than classy, regardless. PERIOD.

If your neighbor shovels your driveway once, I suggest he is cool for doing it, not uncool if he does not do it next week. Capistrano has saved me personally scores of hours of work. So thank-you Jamis.


Yeah, this neighbor, Jamis, just parked an automated snow blower in your driveway that just sits there and waits for the snow, and when it does snow, it just goes into action and clears the whole thing, and your side walk, and then also cleans up after itself.

Capistrano is one of the greatest parts of Rails development/deployment. Thanks Jamis for ALL of your hard work. I am sorry I didn't say Thank You sooner.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: