项目治理文件

我们是谁

Jenk必威国际有限公司ins项目作为一个社区围绕Jenkins作为一块软件。我们是一组开源开发人员和开发,使用,推广Jenkins,软件,詹金斯周围的软件以及其他相关活动,以获得我们的互利。必威国际有限公司

该项目是其中的一部分连续交付基金会并隶属于Linux基础法律实体合法拥有项目资产并充当财政部。在2021年之前,这些角色持有公共利益软件,Inc。(SPI)。

我们的哲学

低进入壁垒

我们努力进入项目的较低障碍。在他们被承认犯罪之前,不需要新的贡献者,部分地实现了这一目标。相反,我们假设他们很好,直到证明否则,这个原则适用于任何无任意歧视的人。我们认识到,每项贡献都是珍贵的,我们认识到每个增加的过程都会转向一些潜在的贡献者。

通过将项目构建到核心,插件,模块和其他独立件,部分地实现了较低的进入屏障,从而减少了对协作和通信的需求。我们试图让每个人都有自己的草皮,在那里他们可以在没有讨论和妥协的情况下有效地工作而没有陷入困境。我们相信每个人都有权在自己的插件中表达他们的想法。

通过认识到人们继续前进,还可以部分地实现较低的进入屏障。该项目中的许多代码由原始作者以外的人维护。我们鼓励新的贡献者接管未经积极维护的现有项目。我们相信“旧”贡献者值得尊重“新”贡献者,但原始贡献者的无所作为不应阻止新的贡献者进行更改。

Meritocracy.

我们努力降低进入障碍并不意味着每个人都有平等的声音。我们重视那些为项目提供更多贡献的人,即Meritocracy.。贡献不应被狭义地理解为只是为了更改代码,而是包括这样的活动,帮助社区的其他人,做PR,运行的基础设施,等等。

透明度

我们相信透明地运行该项目。这包括从代码中的决策缺陷的所有内容。

兼容性问题

我们认识到,用户希望他们在过去版本(包括Hudson到1.395)中积累的现有数据在Jenkins的未来版本中继续工作。必威国际有限公司这包括他们正在使用的作业配置、构建记录和插件二进制文件。Jenk必威国际有限公司ins项目非常重视维护这种兼容性,并且在删除功能时非常小心。

为了实现上述目标,我们还认识到插件开发人员期望API和其他代码,它们依赖于詹金斯的未来版本中可用。必威国际有限公司这并不是说我们永远不会删除任何东西,但我们非常仔细地做到了。

因为一个插件可以取决于另一个插件,所以我们预计许多其他插件依赖的插件的原则相同的原则。

自动化

其中一个詹金斯项目的目标是让更多的自动化,并且我必威国际有限公司们采用同样的原则制定詹金斯。因此,我们开发和使用了一些后台程序,僵尸网络,和脚本的执行看家活动和日常的日常运作,我们用自己詹金斯运行很多这些的。必威国际有限公司

这不仅可以让我们的时间做更多的创造性工作,但它也有助于通过减少另一个开发人员的阻塞来减少进入的障碍。此外,它具有吃自己的狗食的额外好处。

执照

詹金斯项必威国际有限公司目使用麻省理工学院的许可作为选择的主许可证,该代码是我们发展。除非另有说明,所有的代码是在MIT许可下。

詹金斯的核心必威国际有限公司完全在麻省理工学院执照下,我们的大多数都是如此基础架构代码(它运行项目本身),以及许多插件。我们鼓励托管插件使用相同的麻省理工学院许可证,为用户简化故事,但插件可以自由选择自己的许可证,只要它是批准的OSI批准的开源许可证。

这并不是与专有插件混淆 - 我们认识并鼓励人们自己写入内部使用的插件,而不必使源代码提供可用的源代码。但是,Jenkins项目没有这样的插件将被托管。必威国际有限公司

贡献者许可协议(CLA)

为了进一步澄清项目的知识产权,我们要求核心提交人签署一份贡献者协议。此CLA与Apache的CLA相同,“Apache”替换为“SPI”。本协议明确向SPI转让一系列权利,如有效的联合版权所有权、专利授予,并承认您拥有进行变更的必要权利。

这些权利对SPI的分配有助于Jenkins与任何特定的供应商中立,也将使法律部门幸福,特必威国际有限公司别是在想要使用Jenkins的大型组织中。

cla有两种类型。每个核心贡献者都需要签署一份个人CLA (ICLA),在这种情况下,你作为一个个体不拥有你贡献的工作(比如当你的公司分配你的工作詹金斯,因此贵公司拥有你生产的努力),公司还需要签署一份企业班(CCLA)。必威国际有限公司看在Apache中讨论更多细节。可以从以下URL获得CLA表格:

为了平衡进入较低障碍的额外开销,此政策仅适用于核心,尽管我们欢迎任何愿意提交CLA的人在插件上提交CLA。

提交CLA的详细信息记录在infra-cla自述

核心中的第三方图书馆许可证

Jenk必威国际有限公司ins项目严重依赖于第三方库。我们相信,与其重新发明,不如重新利用我们所能利用的,这样我们的宝贵资源就可以用在其他地方。

必威国际有限公司詹金斯整体需要成为一个开源项目,所以我们一直限制自己只使用第三方图书馆OSI批准的开源许可证(例如Apache软件许可证,BSD许可证,MIT许可证,Eclipse公共许可证和较​​小的GNU公共许可证。)此外,为了使核心可重复使用,我们拒绝所谓的Copyleft许可证这限制了整体许可特定许可证(如GNU公共许可证)。为此,我们指定了下列许可证批准的许可证,我们可以依靠的人。其他许可证需经董事会批准:

在核心中,构建过程确保所有依赖项库的许可证都被考虑在内。换句话说,我们要求依赖项POMs以Maven的方式声明它们自己的许可证,或者使用许可完成脚本提供一个在POM缺少的信息。完成脚本也使用的情况下,该库是双重许可选择一个特定的许可证。这样做的目的是,第三方库许可证的汇总清单不包括副本左许可证。

结果包装到核心中并从中可见在应用程序中. war文件中还有XML格式的文件。

插件中的第三方库许可证

当涉及到第三方许可政策时,插件不一定遵循同样的程序。它们显然需要遵守它们使用的库的许可证,但例如,它们不需要运行与核心使用的相同的许可证完成方案。

我们鼓励插件遵循与核心相同的第三方许可策略。您可能因其风险而异。例如,看FSF对带有非GPL内核的GPL插件的看法

商标

看看商标和归因页面有关详细信息。

项目角色/利益相关者

治理板

治理委员会由五个人组成,他们在必要时充当项目的公共代表,例如与外部实体(如SPI或CDF)进行接口。

董事会还充当终极决策权,如果通过常规项目社区会议无法解决争议。董事会的决策能力更为象征性和荣誉,它就像英国女王而不是独裁者一样“规则”。

治理董事会页面提供了进一步的信息,包括当前董事会成员列表,以及如何联系电路板。

The process by which the Governance Board is elected can be reviewed in the董事会选举过程

基础设施管理员

基础结构管理员对运行的各种服务器和构建代理具有root访问权限必威国际有限公司jenkins-ci.org.和其他子域。它们将这些服务器保持并运行,安装新软件,协调镜像,处理键和证书,并确保我们可以继续搅拌代码。

由于这项工作的敏感性,基础设施管理员仅通过邀请,一些活动发生在闭门之后。基础架构管理员通常指定其他人委派某些部分访问系统以完成一些任务。

部分公共基建部门的行政人员名单可在此查阅:基础设施管理员

核心提交人

核心提交那些谁也推访问主要的jenkin必威国际有限公司s存储库产生必威国际有限公司jenkins.war。要成为核心宣誓书,人们需要签署贡献者许可协议。一个不需要有贡献可圈可点被授予提交权限之前,但是,这并不意味着其他核心提交永远不会恢复您的更改。

插件提交者

插件提交者是那些谁拥有推访问特定的插件jenkinsci GitHub的组织下举办库。必威国际有限公司一个不需要有贡献可圈可点授权前提交权限。所有你需要做的就是问。但是,这并不意味着其他现有的提交将永远不会恢复您的更改。

本地化贡献者

本地化贡献者可以推送对核心和托管插件的访问。它们使本地化/国际化与代码和资源相关的更改,并在未能从核心/插件提交者批准的情况下推动这些变更。

用户

用户使用詹金斯及其插必威国际有限公司件。他们通过提供反馈,提交错误报告,优先功能和修复开发,帮助其他用户,并使提交者感觉他们的工作有助于项目是值得的。

沟通

社区中人们之间的沟通对项目的统一至关重要。Jenkins项目中的人们在必威国际有限公司几个不同的地方互相沟通。有一个宣传和外展专注于公共交通的特殊兴趣集团。下面列出了一些通信信道。

邮件列表

我们鼓励邮件列表作为开发人员和用户讨论的主要手段,因为他们的异步和搜索存档的能力。项目网站列表在活跃的邮件列表和它们的用途

聊天

必威国际有限公司Jenkins项目使用IRC和Gitter通道对于实时交互式通信。这也是活跃的成员键彼此的地方。

推特

@必威国际有限公司jenkinsci是Jenkins项目的官方推特账户,由贡献者团队经营(必威国际有限公司Jep-10.).还有一个@必威国际有限公司jenkins_relelease.用于自动插件发布公告的帐号,以及由meetup群组等子社区运行的其他帐号。

特殊兴趣小组渠道

有多个特殊利益集团在社区。这些群体专注于特定主题并组织专用通信渠道,包括聊天,邮寄列表和常规会议。

基础设施

本节总结了我们在项目中运行的关键基础结构服务。看看必威国际有限公司Jenkins基础设施页面以获取完整的服务列表和更多详细信息。

网站

必威国际有限公司Jenkins网站(Jenkins .io)是由Jenkins项目自行托管的。它遵循“基础架构即代码”的方法,每个人都可以通过提交一个pull请求来为网站和内容做出贡献。它的源代码可以找到这里

源代码

我们的大部分代码都托管在GitHub上。必威国际有限公司Jenkinsci.必威国际有限公司Jenkins-infra我们主持大多数代码的组织是否。可以找到有关GitHub组织和存储库结构的更多信息这里

用户帐户

基础架构管理员运行LDAP服务器和小型前端程序让用户在Jenkins.io上创建帐户。必威国际有限公司此帐户用于访问jenkins项目的服务运行:问题跟踪器,maven存储库,CI实例等。必威国际有限公司

问题跟踪器

我们的主要错误跟踪器由红外管理员维护。这使用上面描述的LDAP服务器进行访问。

必威国际有限公司詹金斯对詹金斯

我们运行一个必威国际有限公司Jenkins实例对于Je必威国际有限公司nkins核心和插件的持续集成。还有一些其他的Jenkins实例可以自动发必威国际有限公司布和基础架构管理。

路线图

必威国际有限公司Jenkins项目提供公共社区驱动的路线图。它聚集在各个领域的关键举措:特征,基础设施,文档,社区等我们不交付日期提交,我们不保证倡议将得到落实。所有举措取决于贡献,我们邀请所有感兴趣的各方和我们一起朝着目标的路线图作出贡献。

决策

詹金斯项必威国际有限公司目使用双周项目会议作为需要达成共识的事项决策的主要论坛。会议通过视频电话或电话进行IRC. 这些会议向任何人开放,欢迎每个人在会议上提供反馈意见并对决定进行投票。任何人都可以通过简单地将主题添加到治理会议议程

会议纪要公开:

董事会担任最终决策机构,以防项目会议未能达成特定主题的共识。

必威国际有限公司詹金斯核心

必威国际有限公司詹金斯核心指一组代码、模块和库,它们导致必威国际有限公司jenkins.war二进制。官方核心存储库托管在GitHub上。

詹金斯的必威国际有限公司核心是由一个团队很长一段时间提交者谁通过提交审查和整合的变化保持GitHub拉请求。他们还协调詹金斯版本。必威国际有限公司看看必威国际有限公司Jenkins核心维护者指南有关角色,职责和维护流程的更多信息。

核心提交者通常使用他们自己的判断来决定要做什么。核心提交者应该关注未决的请求,并尝试对它们快速采取行动。

释放线路

詹金斯项必威国际有限公司目为核心詹金斯两个释放行。对于这两条线,我们提供多种发行包括必威国际有限公司jenkins.war,多克尔图像,安装人员和本地程序包。它们可以由用户下载这里

定期发布

每周都是新版本,从主分支建造并发布。这使我们能够相对快速地将新功能和错误修复到用户手中。看看常规(每周)释放线更多细节。

LTS发布

每三个月左右我们选择先前的释放作为新的长期支持(LTS)释放,然后从该发布点创建“稳定”分支。此分支获取从主分支中回收的重要错误修复,并且在选择下一个LTS基线之前,大约每两周构建进一步的修补程序释放。看LTS版线更多细节。

模块

模块是与核心单独构建的库(非常类似插件),但将War文件捆绑在一起作为JAR文件WEB-INF/lib因此,它表现得像它是来自用户的角度来的核心的一部分。模块可以被认为是图书馆和插件之间的东西。它有自己的POM,一组源代码,并像库一样单独构建,但它会随着插件而获得相同的编译时处理。

这促使将大毛球(即核心)分成更可管理的较小块,并允许OEM分别添加/删除功能。

插件

插件是由插件开发人员自主开发的。每个都有自己的存储库、自己的Jenkins on Jenkins作业、自己的问题跟踪组件,并维护自己的发布计划。必威国际有限公司

一些插件是由少数人积极维护的,它们可能有自己的本地文化,比如不同的编码约定,额外的提交策略。我们这样做是为了让人们对自己的努力有归属感和归属感,这样他们就不会觉得自己必须遵守外部决定的规则。

由于许多这样的本地文化是隐含的,因此往往很难从给定插件的操作文化外部判断。这safe rule of thumb is to contact existing developers upfront before doing any commit (but if there’s no timely response in a week so, you should feel free to commit.) Less actively maintained plugins tend not to have such local culture, so in those cases, if you feel lucky you can commit changes ahead and send a heads-up simultaneously, (and accept the possibility that the changes get reverted.)

维护者信息应列入插件的Wiki页面的信息框中。如果您有难以弄清楚谁联系,则良好的后退选项是开发人员的邮件列表。

插件网站

每个插件出版有自己的网页上https://plugins.必威国际有限公司jenkins.io/, 如这个。这些页面提供有关插件的文档和信息:安装统计信息,更改日志,已知问题等。文档可以从插件的GitHub存储库中检索或从现在弃用的Wiki.jenkins.io中检索。必威国际有限公司看看插件文档页面在开发人员指南中了解更多关于它如何工作的信息。

我们如何开发代码

编码公约

在詹金斯核心,必威国际有限公司我们粗略地遵循孙编码约定在源代码中,我们使用4个空间缩进,不要使用选项卡。如果您提交的更改,这通常更实用,更加易于欣赏,这不会太多,因为它缓解了编码审核作业。尝试在单独的提交中提交格式化更改和功能更改。

有了这一说,我们不相信严格执行的编码约定,我们不想拒绝贡献,因为它们的代码格式与我们使用的内容不符。所以考虑这个信息。

必威国际有限公司詹金斯插件和其他组件可以定义自己的代码约定。

提交指导方针

拉动请求检查表有关向Jenkins提交代码的指导方针。必威国际有限公司

从其他地方复制代码

当你有一个授权这样做,而当该许可证是与MIT许可证兼容,你可以从其他地方进入詹金斯复制代码。必威国际有限公司

这方面最典型的情况是,原来的代码在开源许可,如ASL,BSD和MIT许可的某个子集授权。copyleft的许可,即使他们是开源的,不能被复制,如EPL和GPL。特别是,这意味着我们可以复制在MIT许可下的Oracle哈德森的源代码,但不EPL下的Eclipse Hudson的源代码。

必须清楚地标记要复制的代码,并且在复制时,您需要在复制时进行许可证,您需要在标题中维护版权/许可证属性。另请指示副本的起源作为提交消息的一部分。

本地修补依赖项

有时,有必要在我们使用的库中制作错误修复和更改。在图书馆对Jenkins的重要性以及对我们的用户的影响很大,我们选择将本必威国际有限公司地补丁设置维护到上游库,就像Linux发行版一样,为其包维护此类修补程序。

我们通常打算将这种本地修补程序集成到上游,因此我们提交上游票证并提供我们的差异。当这有效时,这使我们可以在将来的某个点返回原始上游发布。这些补丁集在我们的Git存储库中保持为并行分支。

在某些情况下,假设的“临时”补丁集出于我们控制的各种原因变得更加永久,例如上游停止的开发,但这只是因为这是如何结果的,而不是因为我们在首先出发。使用分布式版本控制系统,维护Jenkins的并行修补程序释放并不像往往一样硬。必威国际有限公司

如何加入项目

带入新插件/工具/库

如果您开发插件,我们会鼓励您与Jenkins项目共同主持,以便社区中的其他人可以参加。必威国际有限公司看托管插件更多细节。

更改现有插件

如果您有兴趣只是在没有意图留下的情况下进行少数更改。通过GitHub中的拉出请求中最容易发送。看使用拉出请求更多细节。如果你拉的请求没有得到及时的关注,请通过开发者的邮件列表ping命令我们,这样我们就可以解决这个问题。

如果你想更认真地参与,除了拉请求,我们鼓励你考虑成为一个提交者。在IRC频道或开发人员列表中为我们添加一个注释,我们将为您设置提交访问权限。试着对现有的开发人员保持礼貌,向他们发送提示并与他们协调,但是如果他们没有响应,不要让这阻碍你的进度。开发商的资历是通过持续参与获得的。

帮助和接管休眠插件

通常情况下,一旦插件变得足够好(或者最初的作者改变了工作,不再有动力从事这项技术),最初的开发人员就会转向其他工作。因此,我们鼓励新开发人员或不同插件的开发人员参与到其他插件悬而未决的pull请求或处理针对他们的问题。

为此,我们还鼓励人们拿起休眠插件并考虑他们的人。看看采用插件指南以获取更多信息。

许多不太活跃的插件实际上没有任何明显的所有者,它们是由一些人进行协作维护的,这些人做了一些小的更改,并在需要时发布它们。如果有疑问,可以在开发列表中询问。

在修改核心

如果你只对小的改变感兴趣,同样的过程也适用于插件。只需提交一个pull请求!然而,由于核心的变化会影响更多的人,我们将感激如果你尝试去额外的距离在注释中描述使用拉出请求

如果您想在Jenkins核心更认真地涉及,请考虑加入Jenkins核心维护者团队。必威国际有限公司查看船上的指南这里

进行更改时,使用常识。例如,如果您正在考虑进行大变化,建议您使用开发人员提前讨论您的更改。或者如果您看到,您希望待办事项所希望的部分被其他人正在积极修改,请给予他们一个头脑。

本地化的贡献

我们一直在寻找可以帮助本地化Jenkins到不同语言的人。必威国际有限公司如果您有兴趣帮助,请在DEV列表中删除指令以获得提交访问,并查看国际化对于如何进行更改的细节。

使用拉出请求

如上所述,詹金斯项目用途拉请求为主要工作必威国际有限公司流程得到的变化之一,当您准备拉的要求,考虑下面的清单作为最佳实践。

  • github在线帮助如何创建一个拉请求

  • 我们鼓励您提交票问题跟踪器描述您正在修复的错误或您正在实现的功能。这在我们的系统上创造了一个永久记录,允许未来的开发人员了解代码如何进入当前的形状。这不是一个要求(特别是对于小型变化),但如果你这样做,我们会欣赏。

  • 通过使用符号,请参阅票提交信息[必威国际有限公司Jenkins-1234]在哪里必威国际有限公司詹金斯-1234是机票ID。这允许我们的脚本了解历史记录并在没有人为帮助的情况下生成更长的日志。如果你使用的表示法[修复Je必威国际有限公司nkins-1234],当更改合并到存储库中,并且在CI服务器中测试更改时,bot将自动关闭票据。这些表示法可以在系统之间创建有用的交叉引用,因此强烈推荐使用。

  • 我们鼓励您有一个测试用例你加入,以避免将来回归的代码。看测试有关如何编写测试的更多详细信息。

  • 尝试描述你的变化,以便其他人明白你做了什么。

  • 确保没有修改与您的更改无关的部分(最常由IDE自动修复导入语句和其他代码格式引起的部分)。

我们确实努力去关注入站的拉请求,不幸的是,我们可能无法及时地审查其中的一些请求。如果你注意到你的pull请求在一两周内没有得到处理,请在开发者列表中给我们留言,或者在GitHub的pull请求中给我们发信息。看将请求拉到存储库有关拉请求的更多建议。

本文件

本文件归社区所有,重大变更通过项目会议批准。将您的问题发送到开发人员列表,或将项目添加到下一个治理会议的议程