如何选择哈德逊和詹金斯?

我花了一个小时左右的时间才制定哈德森最近才分手(2011年1月)
我不知道现在每个分支的变化有多快,但更重要的是,每个分支所采取的方向是什么以及关键点是什么,所以人们可以在两者之间做出选择。

任何人都有产品路线图和功能差异的链接?


使用詹金斯

詹金斯是哈德森核心开发人员最近的分支。 要理解为什么,你需要知道项目的历史。 它最初是开源的,由Sun支持。 就像Sun所做的一样,它很公开,但有点疏忽。 源代码,跟踪器,网站等由Sun在其相对封闭的java.net平台上托管。

然后甲骨文收购了Sun。 由于各种原因,甲骨文公司并不讳言它利用它所认为的资产。 这些包括对哈德森物流平台的一些控制,特别是对哈德森名称的控制。 许多用户和贡献者对此感到不舒服并决定离开。

所以这归结于哈德森vs詹金斯提供的。 Oracle的Hudson和Jenkins都有代码。 Hudson拥有Oracle和Sonatype的企业支持和品牌。 Jenkins拥有大部分核心开发人员,社区和(迄今为止)更多的实际工作。

阅读那篇文章我链接顶部,然后按时间顺序阅读其余的这些。 为了平衡,你可以阅读Hudson / Oracle。 我很清楚谁在防守,谁对这个项目有真正的意图。


正如chmullig写道,使用詹金斯 。 其他一些要点:

  • 事实上,可以说是甲骨文谁分叉! 而且从技术上来说,这也是有点什么。

  • 尽管看到“哈德森”出现了什么,这很有趣。 虽然“温斯顿总结了哈德森项目的状态和美好前景”,但他们在(新)哈德森网站上发布的内容最初看起来对我来说很奇怪,或许这是一个有目的的收购,而Sonatype的人实际上有一些大的想法他们的袖子。 这一分析表明Oracle / Sonatype故意策略让Kohsuke和船员创造一个更“企业化”的哈德森是一个非常有趣的阅读!

  • 无论如何,这场简短的比较在分裂后的两个星期 - 尽管并不完全科学 - 显示詹金斯更加活跃于这两个项目。

  • ...和一点背景信息:

    Hudson的创造者Kohsuke Kawaguchi在他的空闲时间开始了这个项目,即使他为Sun Microsystems工作,后来由他们付费开发它。 正如@erickson在另一个SO问题中指出的那样,

    [哈德森/詹金斯]是一个单一的天才知识 - Kohsuke Kawaguchi的产物。 因此,它是一致的,连贯的,坚如磐石的。

    甲骨文收购后,Kohsuke没有多久(由于缺乏监视器......? - )),并去CloudBees工作。 2010年底开始的开发者社区和Oracle之间的工具冲突,并以chmullig提供的链接详细记录了重命名/分叉/拆分。 对我而言,这个难题可能比其他任何话都更能说明甲骨文完全无力或不愿意以一种让所有各方(Oracle,开发人员和用户)都感到满意的方式来赞助开源项目。 这不是他们的DNA或其他东西,就像我们在其他案例中看到的一样。

    鉴于上述所有情况,我会亲自跟随Kohsuke和其他核心开发人员处理此事,并与Jenkins一起去。


    就在三个月后,我就处理了这件事:

    詹金斯延续了哈德森原有的经常发布的路线,频繁发布包括许多次要更新。

    甲骨文似乎在很大程度上将Hudson的未来发展方向委托给Sonatype团队,他们已经进行了一些重大的改变,尤其是Maven方面。 他们已经联合将它移植到Eclipse基金会。

    我会建议如果你喜欢这样的声音:

  • 不太频繁的版本,但是为了向后兼容而进行了更严格的测试(更多的是“企业风格”发布周期)
  • 一个主要关注强大的Maven和/或Nexus集成的产品(即,您对Gradle和Artifactory等没有兴趣)
  • 来自Sonatype或Oracle的专业支持产品优先于Cloudbees等
  • 你不介意拥有一个较小的插件开发者社区等。
  • ,那么我会建议哈德森。

    相反,如果您愿意:

  • 更新更频繁,即使它们需要更频繁的调整,并且在兼容性方面可能稍微风险一些(更多的是“最新的和最大的”发布周期)
  • 一个具有更活跃社区支持的系统,例如其他构建系统/工件存储库
  • 支持来自原创者等人的产品。 和/或你对专业支持没有兴趣(例如,只要你能在下周的“最新和最伟大的”中得到解决,你就很高兴)
  • 一个经典的OSS风格女巫酿造的一个发展生态系统
  • 那么我会建议詹金斯。 (并且作为评论者指出,詹金斯现在还拥有“LTS”版本,并保留在更“稳定”的分支上)


    保守的做法是现在选择哈德森,如果必须具备的功能无法使用,那么迁移到詹金斯。 动态的过程将是现在选择詹金斯,并且如果追逐更新变得太费时间,那么迁移到哈德森。

    链接地址: http://www.djcxy.com/p/8953.html

    上一篇: How to choose between Hudson and Jenkins?

    下一篇: How to present a Selenium test written in spec or PHPUnit on Hudson