Sunday, April 15, 2007 12:00 PM
I'm getting ready to start another open source project. I have a project picked, a high level architecture is beginning to take shape in my mind, and I've gone through several cycles of prototyping. Now I'm left with dealing with all of the "fun" minor details that go along with running one...mainly, anything that
doesn't have to do with code.
Currently, I'm struggling with project hosting. I really have only two certainties:
- I know I want to use Subversion
- I know I'm not using CodePlex again
I love Subversion. Enough said. It's simple, it's reliable, and it's never failed me. I keep a personal Subversion account on
Assembla.com which acts as my sandbox and I've considered just throwing the new project up there. But that would entail me opening up my entire sandbox to anonymous access...or at least figuring out how to open up a portion of it...which isn't something I feel comfortable doing, yet.
Also, I feel like I should explain the CodePlex comment. I suppose I should actually be a little more specific. I think CodePlex, as a project hosting provider, is great. In fact, I think it runs circles around anything out there. I've ran
one project on CodePlex and contributed to
another and both of them have ran really smooth. I think CodePlex looks great, is organized nicely, has great forums and bug tracking support and I love the granularity of the RSS feeds per project. I can only subscribe to check in notifications, or to forum discussions, or to new issues, or to all of them...
CodePlex as a website is awesome. What I
don't like is TeamFoundation Server. TeamFoundation worked fine for me in the beginning. It was stable, fast, and robust. I really liked the association between check ins and work items. I really liked the idea of check in policies, even though they're not active yet on CodePlex. In fact everything was going great until I tried to add a
WiX project to my solution. I was never able to get TeamFoundation to recognize my project file so it never showed up under source control. I could download it with the solution, it was there...I just couldn't 'check it out' or work on it without explicitly unmarking it as read only. Granted, all of this sounds like a minor annoyance but since I couldn't check it out...I also couldn't check it back in...which meant that I really couldn't version control any changes I made. I tried re-adding the project many, many times without success. I eventually had to give up on WiX completely and go back to the standard VDProj format for my installer...something I was
really trying to avoid doing.
Now, to be fair, I posted several questions in the Microsoft forums regarding this issue and the guys from the TeamFoundation team really did try to help me. They got back to me quickly and really tried to offer a solution. I'm really gracious for that and I know that they really were giving it their best. I also realize that this is a relatively new product and that CodePlex offers a first rate project hosting solution without asking for anything in return, and that WiX is a new and likely not officially supported format. I also, don't really believe that the WiX file format was at the root of the problem since we use WiX as our deployment format in
Ascend.NET and have had no problems there.
In fact, my gut feeling is really that it was something that I did. I think somewhere along the lines I moved something after I committed it, or broke a commit halfway through, or something...and just totally confused the repository. That's what I really believe and I will gladly accept full responsibility for it. Heres' the problem though:
NStub is open source, free software. I work on it in my spare time. That means whatever few hours I steal on the weekends, maybe a few minutes in the evenings, or maybe during lunch at my day job. That's really about it. Lately, I've been spending a lot of these precious moments trying to fix this WiX/TeamFoundation problem. In fact, that's how I've spent the majority of my time. Not coding. Not testing. Not polishing features. I've been fighting with source control. I'm not saying that I didn't cause it mind you, I'm simply saying that something should have prevented me from doing whatever it was I did or there should have been a simply, easily found option to
undo whatever it was I did. Source control is a utility. It's a tool. It should help you do what you need and stay out of the way when it's not. I love developer tools, which is probably why so many of my open source projects involve building new ones, but I firmly believe that if you have to ever
think about the tool then the tool is not doing it's job.
This is likely why Subversion support is currently the
highest ranking feature request on CodePlex. Whether it happens or not, I really to have to commend Microsoft for admitting the possibility of Subversion of CodePlex since I've always kind of assumed that CodePlex was intended as a walking TeamFoundation advertisement.
Also, I'm
very close to finishing a release of NStub. In fact I have one regression that was introduced as part of my last refactoring and I'll be ready to go. However, for the past two days I've been unable to log on to the server which hosts my project. I know it's a problem with my server because Ascend lives on a different server and I can get on to it without any issues. So for two days I've been locked out of my own source code. Now let me reiterate, CodePlex is a free service, it's never asked for anything in return. That said, it's very frustrating when I can't get to what I need.
So that little rant out of the way, I'm picking a new hosting provider for this project. I'm deciding between
Google Code and
SourceForge. I love SourceForge because of all of the extra features and I love Google Code because it's not bogged down with all of those extra features. SourceForge is definitely the elephant in the room and has the traffic advantage heavily on its side. That said, however, I've never gone to SourceForge and haven't felt overwhelmed trying to find something there in the mass of links and ads on the page. Google Code is clean, pure, and simply. It's very "Google". I like that a lot, I just don't want to sacrifice some feature I'll later miss in favor of it.
Has anyone had any experience with either of these hosts, either positive or negative, and can shed some light on the topic for me?