在哪里举办开源项目:CodePlex,Google Code,SourceForge?

我一直在阅读关于“如何推动开源项目”的SO回答问题。 毫不奇怪,许多答案指出人们SoureForge / FreshMeat和其他网站等,以及博客和whatnot。 这让我想到了主办项目的最佳地点在哪里,为什么呢?

由于目前我的第一个项目是在CodePlex上托pipe的,我开始浏览Googlesearch结果,收集每个项目的优缺点信息。 然而,我发现的比较是相当过时的(2岁以上)。

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
等等…

所以接下来的问题变成了“我应该在多个网站上托pipe我的项目”,以下文章提供了预期的答案(谢天谢地,因为这将是一个痛苦的维护)。

在几个站点上托pipe一个开源项目

基于CodePlex,GitHub,Google Code,SourceForge等各种开源托pipe站点的当前状态,是否有一个站点比其他站点有明显的优点/缺点? 即,我应该坚持CodePlex还是我错过了没有使用其中一个替代品? 一个新的和未知的项目会带来更多的stream量吗?

我计划更详细地探索每个站点,看看他们都提供了什么,但是考虑到SO上的好人的广泛知识,我想先从这个问题开始。

更新

按照erjiang的回答下面…我目前正在使用Mercurial进行版本控制,而且我对TFS以外的任何东西都是开放的。 此外,我目前的项目只是我正在开发,但未来的项目可能是合作,所以值得考虑…

编辑2015-08-01:这个答案仍然是获得意见和投票。 这不是古老的,我想删除它,但由于这是被接受的答案,我不能这样做。 再次,它是社区维基,社区保持最新 – 谢谢你!

SourceForge已经跨过了黑暗的一面,接pipe了项目并将其与Adware( Google GIMP Sourceforge Adware )捆绑在一起。 避免不惜一切代价。 GitHub目前仍然是最受欢迎的,尽pipe也有替代品(比如, BitBucket为5个用户免费提供无限制的私人回购)。

在过去的几年中,风景变了多less,如果你将来看到这个,也许GitHub不再是很酷的产品。 底线是:无论你想要使用什么源代码控制系统,都有很多令人敬畏的选项。

为了历史的原因,下面的旧2010年的信息

编辑:这个答案现在是古老的。 在过去的两年里,GitHub已经成为主要的Code Hosting的地方,每当我要创build一个新的OSS项目时,我都不会有一丝怀疑。 留下以供参考。

事实上,我的post现在已经快2年了(2008年),而且不再完全准确。

为什么?

因为我认为SourceForge现在对于开源项目来说是微不足道的。 好吧,这会让我陷入很多麻烦,所以让我澄清一下:

我绝对相信,开源项目应该在DVCS上运行,最好是git或者mercurial,因为它们是最普遍的 – 没有反对Bazaar,但是我认为这有点太模糊。 ( 编辑: SourceForge现在提供Mercurial和Bazaar,所以争论已经不复存在了,但是,经过两次重新devise,我认为SF的形象并不是太好,要比较一下公司的形象:虽然GitHub是苹果,SF是IBM,坚如磐石,但有点尘土飞扬)

因此,如果我再次写这篇文章,那么CodePlex与GitHub与BitBucket的比较 ,GitHub就是Winner。 但是这是一个全面的声明,所以让我添加细节。 +/-不是严格的Pro / Con,更重要的是突出不同的哲学。

CodePlex网站

+真正的Mercurial / Git主机 – 在TFS之上没有马车桥,你有真正的Mercurial / Git
+集成Wiki,允许添加丰富的文档和漂亮的页面
包括Bug跟踪和讨论论坛
– 源代码浏览器不是那么好 – 区别出现在popup窗口,只是'感觉'复杂
– 叉和拉请求“不那么容易” – 用户界面可以使用一些工作

总体而言,CodePlex仍然很棒,但是我觉得它更适合于单个开发者或者非常小的团队,因为网站的重点是维基而不是源代码。 这不仅仅是一个协作平台。 理论上你不需要项目主页,你的CodePlex项目可以成为你的一站式商店。

GitHub上

+ Git Hosting,支持SSL / SSH
+networking图允许看到叉和什么时合并
+“观看”项目的能力 – 您的帐户页面就像是带有新签名的Facebook墙
+超级好的差异查看器能够评论单行更改 – 请参阅此处
+分叉是一个双击过程,发送拉请求也是如此
+ GitHub现在有用于Windows的GUI工具GitHub
– 主页对于非开发人员来说不是很“漂亮”。 如果您的项目中有一个自述文件(支持Markdown或HTML等标记语言),则会显示它,但是初始页面是源代码
– 维基不是很棒 – 它是Markdown,但有时格式化会有点太复杂。

GitHub与CodePlex有着不同的理念:关于源代码和开发者之间的协作。 主项目页面是最新的源代码。 有一个单独的维基,但更多的目的是为了文档,而不是演示你的项目。 networking图很棒,虽然一旦有20多个分支(通常当一个高调的项目被宣布为每个人和他们的狗正在分支它,但是大多数分支快速死亡),它会变得混乱。 GitHub可以很好地扩展到任何尺寸。

事实上,GitHub使得我可以非常容易地派生一个项目,应用一个修补程序/补丁,将其提交到我的fork并向作者发送一个pull请求。 与networking图一起,看到提交真的很容易。

但是您很可能需要一个单独的主页来向最终用户展示您的项目并提供下载,因为GitHub的下载function并不是那么棒。

到位桶

+ Git / Mercurial
+允许私人存储库免费,最多5个用户

我没有使用BitBucket足以作出真正的评论。 其中一个突出特点是私人托pipe是免费的,而GitHub收费和Codeplex根本不提供。

Google代码

谷歌代码不是一个选项了。

– 自2015年3月起,项目创buildfunction将被停用 ,并且Google服务将在2016年1月25日永久closures ,因为竞争服务只是更好。
– 这很丑陋,而且浏览源代码太复杂了(链接有点被埋没了)

我没有使用它,所以我不想说这是坏的 – 事实并非如此。 很多项目都使用它,它非常稳定和强大,没有听到任何开发人员的坏消息。 然而,作为一个个人的,主观的意见 ,“devise”把我放下了。

SVN与Git / Mercurial

重申我之前关于SourceForge过时的评论:这当然有点苛刻。 不过我相信SVN对于开源项目是不利的。 首先,怪异的元数据要求忽略文件。 在Git或者mercurial上,你的源代码树的根目录中有一个名为.gitignore或者.hgignore的文件,其中包含一个要忽略的文件/目录/模式列表。 没有魔术svn:忽略.svn文件夹中的元数据。 这一个人把SVN从水里吹了出来。 如果我启动一个新的Visual Studio项目,那么我需要应用这个魔术元数据,而使用Git / mercurial我只是复制一个文件并完成它。

那么,分叉,修补和发送拉取请求的能力是非常棒的,特别是对于小型/一次性补丁。

最后但并非最不重要的一点,SourceForge仍然太复杂,我的口味。 这不是一个不好的主机,但它确实显示它的年龄恕我直言。 这就是说,它仍然是强大的,并有许多世界各地的镜子。 另外Bug Tracker比其他的更复杂。

另外,如果你的项目出于某种原因需要严格的贡献规则(这可能是有道理的,例如法律保护,以确保承诺的代码确实合法贡献),那么像SourceForge上托pipe的SVN这样的传统系统可能工作。

编辑:不知道SF终于分布式托pipe。 如上所述,它是强大的,但不是“酷小子”了,我觉得它太复杂了。

TL; DR

对于任何中小型项目,我衷心推荐GitHub,对于想要一个漂亮网站的小型项目,我会使用CodePlex和私人项目,我会使用BitBucket。 对于需要非常复杂的错误跟踪器,大量额外function和“真实”网站的大型项目,请考虑Source Forge。

那么,你还没有说过你使用什么源码控制系统,这对你的select有很大的影响。

(不全面)

  • Git – > GitHub或Gitorious是明显的select
  • Mercurial – > BitBucket
  • SVN – > Savannah,SF.net
  • 集市 – > Launchpad
  • CVS – > 升级到更新的源代码pipe理系统

我是一个Git粉丝,但是Mercurial也非常棒。 我个人使用GitHub,因为它有很棒的协作特性,比如易分叉和拉取请求。

我想补充一点,CodePlex在微软阵营以外的开源生态系统中并不是非常stream行,从他们最下载的列表中很容易看到。 这可能是以微软为中心的自然结合,也可能是过去的耻辱。 如果你正在开发专门为.NET或类似的东西,那么这将改变视angular。

编辑:另外,我会争辩说,开发人员通常不会随意浏览有趣的项目。 你同样可能会在Codeplex上不被人注意的GitHub上,但是如果有人发现你的项目,他们会更有可能发送消息/文件错误/贡献,如果他们已经在该网站上的帐户。

这个问题似乎是这个重复: https : //stackoverflow.com/questions/10490/best-open-source-project-hosting-site

这是我对这个问题的答案: https : //stackoverflow.com/questions/10490/best-open-source-project-hosting-site/3433969#3433969

总的来说,我认为重要的利弊与每个站点的开发特性和主要受众之间的关系最为重要,在我上面的回答中,我将介绍四个最受欢迎的站点。

由于Github发展得相当快,似乎是我最近看到的项目中最突出的。 这将得到我的投票。

但是我认为不一定非要用另一个。 我看到许多使用Github作为源代码的项目和Google代码作为文档。 除此之外,还有一个Sourceforge链接。

作为主要主机使用什么并不重要,但我build议您在其他网站上添加项目,因此很容易find它。