Where to host an Open Source Project: CodePlex, Google Code, SourceForge? [closed]
Asked Answered
F

4

165

I have been reading through the backlog of answered questions on SO regarding "How to promote an open source project". Not surprisingly, many of the answers pointed people to SoureForge/FreshMeat and other sites etc as well as blogging and whatnot. This started me thinking where is the best place to host a project and why?

As my first project is currently hosted on CodePlex, I started to wade through the Google search results to collect information on the pros/cons of each; however the comparisons that I found are rather dated (2+ years old).

http://www.stum.de/2008/12/13/sourceforge-vs-codeplex/
http://www.developmentnow.com/blog/2006/11/codeplex-vs-sourceforge/
http://www.spacesocket.com/forum/thread-6654.html
etc...

So the next question becomes "Should I host my project on multiple sites" to which the following post provides the expected answer (thankfully! as that would be a pain to maintain).

Hosting an open source project at several sites

Based on the current state of various Open Source hosting sites such as CodePlex, GitHub, Google Code, SourceForge, etc, etc is there any notable pros/cons of one site over the other? i.e., should I stick with CodePlex or am I missing out by not using one of the alternatives? Will one bring about more traffic to a new and unknown project?

I plan on exploring each site in more detail to see what they all offer, but given the vast knowledge of the good folks on SO, figured I would start with this question first.

UPDATED

As per erjiang answer below... I am currently using Mercurial for version control, and I am open to anything other than TFS. Also, my current project is only me developing, but future projects may be collaborative so worth considering...

Frontier answered 4/11, 2010 at 1:36 Comment(6)
Closing this question was completely unnecessary IMO. I have to wonder what has been achieved by the close? The question has lots of upvotes (so obviously people find it of interest), it has a highly upvoted answer (so this Q&A is obviously helpful), and it's community wiki (so even if it asks for subjective opinion or product recommendations, noone could have profited simply for sponsoring the latest and greatest product).Coherent
This is the type of question that should have been closed before it got so much response, since it wasn't really of an appropriate sort. However, now that it has gotten so much response, closing is counterproductive, and belittles the contributions which have been made.Orsini
One thing achieved by closing this question @stakx is to protect it from fresh answers. Now it will surely sink into irrelevance.Parabola
@BobStein-VisiBone sink to irrelevance? I just hit upon this question over six years after it was originally asked.Gagnon
@Gagnon I was in a sarcastic mood. I am disappointed when relevant, useful and answerable questions such as this are hobbled. As it stands, if new opportunities for hosting open-source emerge this page is artificially constrained to editing them into an existing answer. Opportunity questions particularly need room to evolve. I expect it will get more stale every year. Stackoverflow is great, but it also trashes much that is great.Parabola
related/duplicate: softwareengineering.stackexchange.com/questions/164618/…Poultryman
D
126

Edit 2015-08-01: This answer is still getting views and votes. It's more than ancient and I'd like to delete it, but since it's the accepted answer, I can't do that. Then again, it's community wiki and the community has kept it up-to-date - thank you for that!

SourceForge has crossed over to the dark side, taking over project and bundling them with Adware (Google GIMP Sourceforge Adware). Avoid at all costs. GitHub is as of now still the most popular one, although there are alternatives (e.g., BitBucket offers unlimited private repos for free for up to 5 users.)

It's crazy how much the landscape changed in the past few years, and if you're reading this in the future, maybe GitHub is no longer the cool product. Bottom line is: There are a plethora of awesome options for whatever source control system you want to use.

Old 2010 information below for the sake of history

Edit: This answer is now ancient. In the past 2 years, GitHub has emerged as the prime Code Hosting place, and whenever I have to create a new OSS project, I don't have the trace of a shadow of a doubt where to go to. Leaving this below for reference.

Indeed, my posting is almost 2 years old (2008) now and not entirely accurate anymore.

Why?

Because I think that SourceForge is insignificant now for open source projects. Okay, this will get me into a lot of trouble, so let me clarify:

I am absolutely convinced that Open Source projects should be run on a DVCS, preferably git or mercurial as they are the most widespread - nothing against Bazaar, but I think it's a bit too obscure. (Edit: SourceForge now offers Mercurial and Bazaar, so that argument doesn't stand anymore. However, following two redesigns I think that SF's image isn't too great. To compare them to the images of companies: While GitHub is Apple, SF is IBM. Rock solid, but a bit dusty)

So if I were to write this posting again, it would be CodePlex vs. GitHub vs. BitBucket, with GitHub being the Winner. But that is a blanket statement, so let me add details. +/- isn't strictly Pro/Con, it's more to highlight different philosophies.

CodePlex

+ Real Mercurial/Git Hosting - no buggy bridge on top of TFS, you have real Mercurial/Git
+ Integrated Wiki that allows to add rich documentation and nice looking pages
+ Bug Tracker and Discussion Forums included
- Source Code browser isn't that great - Diffs appear in a popup and just 'feel' complicated
- Forks and Pull Requests 'not as easy' - the UI could use some work

Overall, CodePlex is still great but I feel it's more suited for single developers or very small teams because the focus of the website is on the Wiki rather than on the source code. It's more a publishing than a collaboration platform. Theoretically you don't need a project homepage, your CodePlex project can be your one stop shop.

GitHub

+ Git Hosting, supports SSL/SSH
+ Network graph allows to see forks and what merged into what when
+ Ability to 'watch' projects - your account page is like a Facebook wall with new checkins
+ Super good diff viewer with the ability to comment on single line changes - see here
+ Forking is a 2-click process, and so is sending pull requests
+ GitHub now has the the GUI tool GitHub for Windows
- Main page is not very 'pretty' for Non-Developers. If you have a Readme in your project (supports some markup languages like Markdown or HTML) it is displayed, but the initial page is the source code
- Wiki isn't that great - it's Markdown, but sometimes formatting feels a bit too complex.

GitHub has a different philosophy than CodePlex: it's all about the source code and about collaboration among devs. The main project page is the most up to date source code. There is a separate Wiki, but that's more intended for Documentation rather than presentation of your project. The network graph is fantastic, although it can get confusing once there are more than about 20 forks (frequently when a high profile project is announced everyone and their dog is forking it, but most forks die quickly). GitHub scales very well to any size.

In fact, GitHub makes it super easy for me to fork a project, apply a fix/patch, commit it to my fork and send a pull request to the author. Together with the Network graph it's really easy to see the commit.

But you most likely need a separate home page to present your project to end users and to provide downloads, as GitHubs download facilities aren't that great.

BitBucket

+ Git/Mercurial
+ Allows private repositories for free, up to 5 users

I haven't used BitBucket enough to make a real comment. The one feature that sets it apart is that private hosting is free, while GitHub charges and Codeplex does not offer it at all.

Google Code

Google Code is not an option anymore.

- Project creation is disabled since March 2015, and the Google service will be permanently closing down in January 25, 2016, as the competing services are simply better.
- It's ugly and it's too complicated to browse the source code (the link is somewhat buried)

I haven't used it so I don't want to say it's bad - it's not. A lot of projects use it and it's very stable and robust, haven't heard much bad from any developer. However, as a matter of personal, subjective opinion the 'design' puts me off.

SVN vs. Git/Mercurial

To reiterate my comment above about SourceForge being obsolete: That is of course a bit harsh. I do however believe that SVN is detrimental for open source projects. First of all, weird metadata requirements to ignore files. On Git or mercurial, you have a file called .gitignore or .hgignore in the root of your source tree which includes a list of files/directories/patterns to ignore. No magic svn:ignore metadata in the .svn folder. This alone blows SVN out of the water for me. If I start a new Visual Studio project I need to then apply that magic metadata, while with Git/mercurial I just copy over one file and be done with it.

Then, the ability to fork, patch and send a pull request is fantastic, especially for small/one-off patches.

Last but not least, SourceForge is still WAY too complex for my taste. It's not a bad host, but it really shows it's age IMHO. That being said, it's still robust and has many mirrors world wide. Also the Bug Tracker is much more sophisticated than the others.

Also, if your project for some reason requires strict contribution rules (which may make sense, e.g. legal protection to make sure the committed code is indeed legally contributed) then a traditional system like SVN hosted on SourceForge may work.

Edit: Wasn't aware that SF finally has distributed hosting. As said above, it's robust but just not the 'cool kid' anymore, and I find it much too complex.

TL;DR

For any small to medium project I whole hearty recommend GitHub, for small projects where you want a nice Web Site as well I'd go with CodePlex and for private projects I'd go with BitBucket. For big projects that require a very sophisticated bug tracker, tons of extra features and a 'real' website, consider Source Forge.

Durwood answered 4/11, 2010 at 1:36 Comment(10)
I can’t agree about Google Code, I think it’s easy, intuitive and lightweight (and the website is fast! Compare that to CodePlex …!) and would be my #1 choice every time. But the rest is an interesting read.Ellanellard
@Konrad True, as said, it's a personal thing. Maybe the minimalistic approach is putting me off. I've not heard anything bad about the functional side of it, but I've never hosted a project there.Durwood
Great answer, very detailed! Gives an excellent explaination of the differences betwen the major sites (well, CodePlex and GitHub) that I was most curious about. Also interesting that you identify SourceForge as insignificant at this stage; definitely a change in opinion from the older articles. Thanks!Frontier
@Calgary You're welcome, but please keep in mind that this is VERY subjective - make your own conclusions. Again, SourceForge is still a great hosting platform, I just don't thinks it's that great anymore. I saw they offer Mercurial and Bazaar now, but I think that SF is just too big/complex.Durwood
There are also factors peculiar to the kind of project you're running. For example, with .Net projects, CodePlex supports ClickOnce deployment, while Google Code does not.Adventitious
@MichaelStum Maybe you can add the GitHub Pages services. The entry point for any GitHub-hosted project should be a page.Mccarley
Since this still gets up-votes, I have to agree with @Michael 100%, All new OSS projects as well as most work projects I now start are on GitHub. I still have some legacy projects on CodePlex but it just isn't as good as GitHub.Frontier
I read this post and decided to put my source code on the "winner" - Github. It seems good for code collaboration, but I found it to be too plain as a publishing platform - I would like to at least be able to follow the number of downloads. I'll be moving my code to Sourceforge. I love how it has user reviews on the front page.Depress
One thing I'd like to mention is that GitHub supports github pages both on a user level and project level. pages.github.com it is quite robust for being able to present a project. Github pages even support top level domain names instead of the github domain crumbs.Damle
The "TL;DR" should be at the top of your answerAverroism
I
8

Well, you haven't said what source control system you use, which greatly influences your choices.

(not comprehensive)

  • Git -> GitHub or Gitorious are the obvious choices
  • Mercurial -> BitBucket
  • SVN -> Savannah, SF.net
  • Bazaar -> Launchpad
  • CVS -> upgrade to a newer source control system

I'm a Git fan, but Mercurial is pretty awesome as well. I personally use GitHub for it's awesome collaborative features, like easy forking and pull requests.

I want to add that CodePlex isn't very popular in the open-source ecosystem outside of the Microsoft camp, and that's easy to see from their most-downloaded list. It's probably a combination of how naturally Microsoft-centric it is, and also from past stigmas. If you're developing exclusively for .NET or something similar, then that'll change the perspective.

Edit: Also, I would argue that developers don't usually go browsing randomly for interesting projects. You're equally likely to go unnoticed on GitHub as you are on Codeplex, but if someone does discover your project, they'll be more likely to send messages/file bugs/contribute if they already have an account on that website.

Indult answered 4/11, 2010 at 1:36 Comment(5)
I currently use Mercurial (wouldn't touch TFS with a 10ft pole)Frontier
There's something wrong with the phrase easy forkingYellowish
For anybody who's curious, on GitHub, instead of forking being an irreversible split of a project, it's the best way of modifying an existing project. After you make your personal modifications, you can send that original project a "pull request" to the changes from your fork.Indult
I agree that CodePlex is targeted solely towards Microsoft Development; that happens to work for me... the impression I am getting is that if general open source... GitHub; if .NET Focused and single/smaller team CodePlex. Also like the edit on awareness... that will be the next battle. Thanks!Frontier
@marko: Easy forking is a good thingTzong
E
4

This question seems like a duplicate of this one: https://stackoverflow.com/questions/10490/best-open-source-project-hosting-site

Here was my answer on that question: https://stackoverflow.com/questions/10490/best-open-source-project-hosting-site/3433969#3433969

In general I think the important pros/cons most significantly relate to the development features offered and the primary audience of each site, which in my above answer I walk through for the four most popular sites.

Eclogue answered 4/11, 2010 at 1:36 Comment(3)
Thanks for the link, I was trying not to duplicate a question, but I missed that one.Frontier
@CalgaryCoder you might at least have upvoted, since you took the time to thank him. Nvm, I did it for you ;-)Petronille
These links appear to be dead now.Environmentalist
C
4

Since Github is growing quite fast and seems to be the most prominent among the projects I see these days. It would get my vote.

But I think one doesn't have to mean you can't use the other. I see many projects that use Github for the source and Google Code for the docs. And besides that a Sourceforge link to it aswell.

It doesn't really matter what you use as a primary host, but I would recommend you add your projects on the other sites aswell so it's easy to find it.

Chishima answered 4/11, 2010 at 1:36 Comment(2)
Interesting that you would recommend hosting on multiple sites. My initial thoughts would be to agree with the references SO answer linked above... what are your thoughts on that thread?Frontier
@Calgary Coder: I'm not specifically talking about hosting, but more linking. I've stopped using Sourceforge years ago because of the slowness and horrible design changes. But creating the project at sourceforge and linking to your github (or whatever) website can help to make your project easier to be found. For documentation I found the Google Code wiki to be easier than the Github wiki, so that's why I prefer that. I do like the Github interface and forking options so I think that's a nice choice for your source. For code review I found launchpad to be very nice.Chishima

© 2022 - 2024 — McMap. All rights reserved.