在哪里举办开源项目:CodePlex,Google Code,SourceForge?
我一直在阅读有关SO如何推广开源项目的回答问题。 毫不奇怪,许多答案指出人们SoureForge / FreshMeat和其他网站等,以及博客和whatnot。 这让我开始思考主办项目的最佳地点在哪里,为什么?
由于我的第一个项目目前在CodePlex上托管,我开始浏览Google搜索结果以收集每个项目的优缺点信息; 然而我发现的比较是相当过时的(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
等等...
所以接下来的问题变成了“我应该在多个网站上托管我的项目”,以下文章提供了预期的答案(幸好!因为这将是一个痛苦的维护)。
在几个站点上托管一个开源项目
根据CodePlex,GitHub,Google Code,SourceForge等各种开源托管站点的当前状态,是否有一个站点比其他站点有明显的优点/缺点? 也就是说,我应该坚持使用CodePlex还是我错过了不使用其中一种选择? 人们会为更多未知的项目带来更多流量吗?
我计划更详细地探索每个站点,看看他们都提供了什么,但考虑到SO上的优秀人员的广泛知识,我想先从这个问题开始。
更新
按照erjiang的回答下面...我目前正在使用Mercurial进行版本控制,并且我对TFS以外的任何东西都是开放的。 此外,我目前的项目只是我正在开发,但未来的项目可能是合作的,所以值得考虑......
编辑2015-08-01:这个答案仍然获得观点和投票。 它比古代更古老,我想删除它,但由于这是公认的答案,所以我不能那样做。 再一次,它是社区wiki,社区一直保持最新 - 谢谢你!
SourceForge已经跨过了黑暗的一面,接管了项目并将其与Adware(Google GIMP Sourceforge Adware)捆绑在一起。 不惜一切代价避免。 GitHub现在仍然是最受欢迎的,尽管有其他选择(例如,BitBucket可为5个用户免费提供无限制的私人回购)。
在过去的几年中,风景变了多少,如果你将来会阅读这些内容,也许GitHub不再是很酷的产品。 底线是:无论您想要使用哪种源代码管理系统,都有很多令人敬畏的选项。
为了历史的原因,下面的旧2010年信息
编辑:这个答案现在是古老的。 在过去的两年中,GitHub已经成为主要的代码托管地,每当我必须创建一个新的OSS项目时,我都没有怀疑的地方。 留下以供参考。
事实上,我的帖子现在已近2年(2008),而且不再完全准确。
为什么?
因为我认为SourceForge现在对于开源项目来说是微不足道的。 好吧,这会让我陷入很多麻烦,所以让我澄清一下:
我绝对相信开源项目应该在DVCS上运行,最好是git或mercurial,因为它们是最广泛的 - 没有反对Bazaar,但我认为它有点太模糊。 (编辑:SourceForge现在提供Mercurial和Bazaar,所以这个论点不再支持,但是,经过两次重新设计,我认为SF的形象不是太好,要比较它们与公司的形象:虽然GitHub是Apple,SF是IBM,坚如磐石,但有点尘土飞扬)
因此,如果我再次写这篇文章,那么CodePlex与GitHub与BitBucket的比较,GitHub就是优胜者。 但这是一个全面的声明,所以让我添加细节。 +/-不是严格的Pro / Con,更重要的是强调不同的哲学。
CodePlex网站
+真正的Mercurial / Git Hosting - 在TFS之上没有马车桥,你有真正的Mercurial / Git
+集成Wiki,允许添加丰富的文档和漂亮的页面
+包括Bug跟踪和讨论论坛
- 源代码浏览器不是那么好 - Diffs出现在弹出窗口中,只是'感觉'复杂
- Forks和Pull Requests'不那么容易' - UI可以使用一些工作
总的来说,CodePlex仍然很棒,但我觉得它更适合单个开发人员或非常小的团队,因为网站的重点在Wiki上,而不是在源代码上。 它不仅仅是一个协作平台,而是一个发布。 理论上你不需要项目主页,你的CodePlex项目可以成为你的一站式商店。
GitHub上
+ Git Hosting,支持SSL / SSH
+网络图允许看到叉和什么时候合并
+“观看”项目的能力 - 您的账户页面就像是带有新签入的Facebook墙
+超级好的差异查看器能够评论单行更改 - 请参阅此处
+分叉是一个双击过程,发送请求也是如此
+ GitHub现在有用于Windows的GUI工具GitHub
- 对于非开发人员来说,主页面不是非常“漂亮”。 如果您的项目中有自述文件(支持Markdown或HTML等一些标记语言),则会显示它,但初始页面是源代码
- 维基不是很好 - 它是Markdown,但有时格式化会有点太复杂。
GitHub的理念与CodePlex不同:它的全部内容都是关于源代码以及开发者之间的协作。 主项目页面是最新的源代码。 有一个单独的Wiki,但更多的是用于文档而不是演示您的项目。 网络图非常棒,尽管一旦有超过20个分支(通常当一个高调的项目被宣布为每个人和他们的狗都在分支它,但大多数分支快速死亡时它会变得混乱)。 GitHub非常适合任何尺寸。
实际上,GitHub使我能够非常容易地分叉一个项目,应用一个修正/补丁,将它提交给我的分支并向作者发送一个pull请求。 与网络图一起,看到提交真的很容易。
但是您很可能需要一个单独的主页来向最终用户展示您的项目并提供下载,因为GitHub的下载功能并不是那么棒。
到位桶
+ Git / Mercurial
+允许私人存储库免费,最多5个用户
我没有使用BitBucket足以作出真正的评论。 使它独立的一个特点是私人托管是免费的,而GitHub收费并且Codeplex根本不提供它。
谷歌代码
谷歌代码不再是一个选项。
- 自2015年3月起,项目创建将被禁用 ,并且Google服务将在2016年1月25日永久关闭,因为竞争服务只是更好。
- 它很丑陋,而且浏览源代码太复杂了(链接有点隐藏)
我没有使用它,所以我不想说它是不好的 - 事实并非如此。 很多项目都使用它,它非常稳定和强大,没有听到任何开发人员的坏消息。 然而,作为个人主观意见的“设计”将我放下。
SVN vs. Git / Mercurial
重申我上面关于SourceForge过时的评论:这当然有点苛刻。 不过我相信SVN对开源项目是有害的。 首先,怪异的元数据要求忽略文件。 在Git或mercurial上,您的源代码树的根目录中有一个名为.gitignore或.hgignore的文件,其中包含要忽略的文件/目录/模式列表。 没有魔术svn:忽略.svn文件夹中的元数据。 只有这一点让SVN离开了我的水。 如果我启动一个新的Visual Studio项目,那么我需要应用这个魔术元数据,而使用Git / mercurial时,我只需复制一个文件并完成它。
然后,分叉,修补和发送拉取请求的能力非常棒,特别是对于小型/一次性修补程序。
最后但并非最不重要的一点,SourceForge对于我的口味仍然太复杂。 这不是一个不好的主机,但它真的显示它的年龄恕我直言。 这就是说,它仍然很健壮,并且在世界范围内有很多镜子。 Bug Tracker比其他的更复杂。
此外,如果您的项目出于某种原因需要严格的贡献规则(这可能是有道理的,例如法律保护以确保承诺的代码确实合法贡献),那么像SourceForge上托管的SVN等传统系统可能会有效。
编辑:不知道SF终于分布式托管。 如上所述,它很健壮,但不再是'酷小子',我觉得它太复杂了。
TL; DR
对于任何中小型项目,我都会诚恳地推荐GitHub,对于想要一个漂亮网站的小型项目以及CodePlex和私人项目,我会使用BitBucket。 对于需要非常复杂的错误跟踪器,大量额外功能和“真实”网站的大型项目,请考虑Source Forge。
那么,你还没有说过你使用什么源代码控制系统,这对你的选择有很大的影响。
(不全面)
我是Git粉丝,但Mercurial也非常棒。 我个人使用GitHub,因为它具有很棒的协作功能,如易分叉和拉取请求。
我想补充一点,CodePlex在Microsoft阵营以外的开源生态系统中并不是非常流行,从他们最下载的列表中很容易看到。 它可能是以微软为中心的自然结合,也可能来自过去的耻辱。 如果你是专门为.NET或类似的开发,那么这将改变视角。
编辑:另外,我认为开发人员通常不会随意浏览有趣的项目。 你同样可能会在Codeplex上不被注意到GitHub,但是如果有人确实发现了你的项目,如果他们已经在该网站上有一个帐户,他们将更可能发送消息/文件错误/贡献。
由于Github发展得相当快,似乎是我最近看到的项目中最突出的。 它会得到我的投票。
但我认为一个人并不一定意味着你不能使用其他人。 我看到许多使用Github作为源代码的项目和Google代码来处理文档。 除此之外还有一个Sourceforge链接。
作为主要主机使用什么并不重要,但我建议您在其他网站上添加项目,以便找到它。
链接地址: http://www.djcxy.com/p/79445.html上一篇: Where to host an Open Source Project: CodePlex, Google Code, SourceForge?