Sunday 1 March 2009 — This is close to 16 years old. Be careful.
I’m in the middle of a major overhaul of coverage.py, and one of the changes I’m making is to move the code into a public repository with bug tracking. But I have to choose which one.
Google Code is kind of the default choice at this point. It has everything I need, and people understand it. But frankly, I don’t want Google to own everything. I’d like to give the business to another player.
Launchpad is a good alternative. It’s got tons of features, and is based on Bazaar, which is something I’ve wanted to learn more about. Distributed version control is here to stay, and has real advantages over Subversion. But Launchpad seems a bit heavyweight: it’s got features that make it a good home for large projects like Ubuntu and MySQL, but I don’t need all those features, and there doesn’t seem to be a simplified experience that I could use.
Both Google Code and Launchpad require you to sign in to create a bug report, which is less of a problem for Google, since the chances are much greater that a random user will already have a Google account than a Launchpad account.
Github is very nice, but so far to my eyes, git is not, so I’m not seriously considering it.
I’m sure there are other choices out there, I just don’t know what they are.
Comments
At the risk of setting you up to get flamed, can you elaborate on that?
I switched from CVS to SVN and loved it. Later, I switched from SVN to git and loved that too.
I can understand preferring Bazaar or Mercurial to git, but you'd really rather use a non-distributed version control system (SVN) than git?
This is a preference I'm surprised to hear.
http://bitbucket.org/
It has mercurial as dvcs and also provides basic wiki capabilities.
The worst thing about the whole mess is that we would have all been better off if subversion had never existed, the increase in utility over CVS is negligible or negative, but it has become a huge source of stop energy for corporations - "But we just switched to SVN, which was meant to solve all our problems!"
This is far overstating matters. It does have a sub-optimal CLI but its docs are actually pretty good. There's no "brutally terrible" about it, though I do prefer hg's interface.
(Ned: I'm not trying to turn your comments into a flame war, I just felt that rjw's comment deserved a bit of corrective. I tried to be reasonable and calm. I won't blame you if you delete with a vengeance but I fear you've poked the bear!)
Id second the mercurial/bitbucket suggestion. I switched to mercurial for all my misc items when it reached 1.0 and Ive been very happy. Before switching I looked at all the dvcs systems and I found that mercurials workflow model & cmdline interface just sort of "clicked" with how my brain worked (Git for example just did not).
--
John Cavanaugh
I second the aversion to the migthy Google, and to git, which is as unpythonic as it gets. Rather sad seeing so many Pythonistas fall for it, when we have Mercurial and Bazaar.
Look at the project maintainer side of things, which is where Google Code and Launchpad (and Sourceforge in its day) tend to shine. Can you make packaged releases and have them up for download? Not everybody is comfortable using your particular DVCS of choice. Svn has pretty good awareness presentation and people suck it up and will pull things from it if they need to. Not so much with the plethora of DVCS choices (and "tailor", whilst useful, is another learning curve on top of everything else). So distribution is an issue.
Similarly, bug tracking. And maybe online documentation display (people who don't ship documentation in the tarball are not nice people -- and I'm looking at you, "cog" packager -- but online display is useful Google juice, too)
@Joe + @Bill: git is more baffling to me than most dvcs's. I'm sure it's in my future somehow, but mercurial and bazaar are more appealing to me. They feel like finished products rather than awesome plumbing for an unfinished product. I know this is a cliched and controversial opinion...
One think I DO miss in projects hosted at bitbucket is code.google.com's simple but useful code review / commenting facility -- Jesper's been telling me it's on the roadmap forever, but it's not there yet;-). Ah well, one can use rietveld.appspot.com (oops, does that hurt the sensibilities of "don't want google to ``own'' (?!) things" fanatics?-).
So, I'd probably go with with launchpad because I think docs (or lack thereof) say a lot about a project (not sure yet if launchpad's docs are good, but at least they're there. :) ).
Also, Alex K., you mention Google Code's wiki as being a killer feature? From the times I've wanted to look up info in a GC-hosted project's wiki, I've found their wiki setup to be less than helpful. Though, granted, at least they offer one. Launchpad has an "Answers" page, but that seems more like a sort of request-tracker/faq.
Disclaimer: I don't use Launchpad-hosted Bazaar branches as the primary repository; I still use self-hosted Subversions repos that Launchpad mirrors for me.
I am very lazy, though, and will refuse to fight a website that doesn't let me do what I want within 5 minutes. Launchpad passed that test. Bazaar passed that test (but failed later with internal errors when I was trying unobvious things). Git passed that test for local work (colorized and paged diffs by default! instant commits! interactive hunk splitting! awesomely polished convenient command-line features!), and failed abysmally when I tried to figure out how to create a public mirror of my local git branch (head, meet wall. again. again. again.).
The project creation pages do need a little love, but most of the fields are optional. The bug tracking is very helpful, and the code hosting is easy to use.
@John: We do have docs, they're just hard to find. This is being remedied right now, since you happened to insult our usability guy (good incentive.) :-)
http://bitbucket.org/help/
I'm now using git and github extensively, but still feeling more comfortable and productive in trac-like environments, together with hg more intuitive interface.
Add a comment: