= GEP-1:Groovy 增强提案 :category: dev .Metadata **** [horizontal,options="compact"] *编号*:: GEP-1 *标题*:: Groovy 增强提案 *版本*:: 2.0 *类型*:: 信息性 *状态*:: 最终 *负责人*:: Apache 项目负责人 *创建日期*:: 2009-03-26 *最后修改* :: 2018-10-11 **** == 摘要:什么是 GEP?GEP 代表 Groovy 增强提案。GEP 是一份向 Groovy 开发团队和用户社区提供信息的文档,描述了 Groovy 语言、其 API、其集成或其基础设施的新功能、增强或更改。当此类添加或更改具有重要意义并值得对其基本原理、设计或对项目的影响进行详细讨论时,应考虑编写 GEP。GEP 的概念自由地借鉴了 Python 的 https://pythonlang.cn/dev/peps/pep-0001/[PEP](Python 增强提案)。== 基本原理:为什么要 GEP?对于非平凡、复杂或战略性的功能,在邮件列表上进行讨论很难引导和跟进,而且往往无助于达成共识。编写一份适当的文档来解释所述功能的设计和影响,可以让想法的提出者和整个社区都有机会提供有趣和有用的反馈,并有助于更好地理解提案的基本原理、设计决策和影响。== GEP 中有什么?GEP:* 由一位“负责人”领导,他负责提案的编写和进展* 分配一个唯一的“编号”* 有一个简洁描述其意图的“标题”* 有一个“类型”* 有一个“状态”提供其进展信息* 有一个指示其当前修订的“版本”号* 提供“最后修改”日期* 提供“创建”日期* 包含解释 GEP 意图的“摘要”* 提供此增强的“基本原理”GEP 的类型可以是以下之一:信息性:: 如果 GEP 提供有关 Groovy 相关主题的一些信息或指导(此 GEP 属于此类,以及所有现有 GEP 的列表)功能:: 如果 GEP 是关于 Groovy 中新功能、增强或更改的实现过程:: 如果 GEP 描述了与 Groovy 项目相关的过程(示例:Groovy 发布过程、如何招募新的提交者等)如果 GEP 是功能 GEP,它还应:* 定义其集成的“目标”Groovy 版本* 提供一个由单元测试适当覆盖并注释(Groovydoc/JavaDoc/asciidoc 酌情)的“参考实现”,以便 Groovy 社区可以试用增强并提供有用的反馈* 详细说明对 Groovy 的“影响”,特别是在向后兼容性或对其他项目的影响方面GEP 的“状态”可以是:草稿:: 当 GEP 正在编写并讨论中但尚未达到可包含在 Groovy 中的状态已接受:: 当草稿 GEP,原样,处于不需要任何额外修改的状态,已准备好集成到 Groovy 中并已按照通常的 Apache 原则被开发团队接受已拒绝:: 当达成共识或开发团队做出决定认为该提案不应集成到 Groovy 中时最终:: 当 GEP 已集成到 Groovy 的已发布版本中并已在 Groovy wiki 中适当记录时除了所有这些元数据之外,GEP 还应酌情:* 提供指向现有邮件列表讨论的指针(通过 Nabble、Markmail 或 Ponymail)* 列出与此功能相关的现有论文或文档,提供更多材料以理解概念或实现困难* 提供示例,展示如何使用该功能以及该解决方案的 Groovy 习惯用法如何== 一般工作流程Groovy 增强提案的一般工作流程如下:GEP 的诞生通常源于 Groovy 邮件列表上关于新功能或更改的讨论,当 Groovy 专制者和开发团队认为有必要适当记录和阐明这个新想法,以供进一步讨论和分析时。通常,简单的错误修复和次要增强不需要完整的 GEP。GEP 仅在 Groovy PMC 同意的情况下启动。Groovy PMC 分配一个唯一的编号,并为该 GEP 创建一个有意义的“标题”。如果适用,会为该 GEP 的包含提议一个目标 Groovy 版本。该工作的负责人(通常是 GEP 的发起者或其主要开发者)负责创建 GEP,编写详细文档提出此增强,并最终提供一个参考实现作为目标 Groovy 版本的分支(或 PR 或补丁)。一旦开发团队和“负责人”对 GEP 的状态感到满意,就应做出决定以实施将此 GEP 集成到 Groovy 中的操作,并应为此任务创建一个 JIRA 问题。根据 Apache 准则,Groovy PMC 对 GEP 作为最终状态 GEP 的接受拥有最终决定权。一旦适当的文档添加到相应的 Groovy 仓库中并且参考实现已成熟并提供涵盖该功能的良好测试套件,GEP 在 Groovy 中的集成即为最终。如果 GEP 未满足 GEP 流程的所有要求,则可以拒绝或推迟该 GEP。== 参考 === JIRA 问题:https://issues.apache.org/jira/browse/GROOVY-1709[GROOVY-1709]:GEP:Groovy 增强提案 == 更新历史1.0 (2009-03-26):: 从 Codehaus wiki 提取的版本2.0 (2018-10-11):: 更新以反映加入 Apache 后的更改

GEP-1