废弃 GitLab 功能
关于本页所用术语的详细信息,请参阅 术语表。
重大变更政策
如果客户需要采取行动以确保其 GitLab 工作流程不被中断,那么任何变更都算作重大变更。
重大变更可能来自以下来源:
- 有意的产品变更
- 配置更新
- 第三方废弃
- 或其他许多来源
对于我们的许多用户来说,GitLab 是一个 Tier 0 系统。它在用户业务的创建、发布、运营和扩展中至关重要。重大变更的后果可能很严重。
产品经理和工程经理对他们为平台所做的变更所造成的客户影响负责并承担责任。变更管理的责任在于 GitLab,而不是客户。
我们的目标是消除 GitLab 中的所有重大变更。 如果您已穷尽所有替代方案,并认为有充分理由允许一项重大变更,可以按照以下流程申请例外。
如何获得推进重大变更的批准?
默认情况下,不允许进行任何重大变更,除非已通过以下流程获得重大变更实施计划的明确批准。
- 使用 重大变更例外模板 创建一个 issue,并填写所有必填部分。
- 如果您的重大变更符合以下任何标准,请在请求中明确指出。这并不能保证请求会被批准,但有助于提出有力的论据。大多数被批准的重大变更至少会属于以下类别之一:
- 重大变更的影响已通过自动化迁移完全缓解,客户无需采取任何操作。
- 根据 GitLab 自托管版、GitLab.com 和 GitLab Dedicated 的实际产品使用情况跟踪,该重大变更将产生微乎其微的客户影响。例如,如果它影响到不到 1% 的 GitLab 客户群。
- 由于存在严重的安全风险(严重性 1 或 2),正在实施此重大变更。
- 当 issue 准备好进行审查时,请按照模板中的说明标记相关人员以启动审批流程。
- 在公开分享消息或确认您提议的时间表之前,请等待获得批准。从初次提交到批准或拒绝的时间各不相同,因此请至少提前六个月提交,以便在提议的移除时间框架之前完成。
请求模板包含哪些细节?
- 执行摘要
- 影响评估
- 发布与沟通计划
- 内部沟通
- 客户沟通
获得批准的重大变更后,下一步是什么?
- 创建一个公开的 废弃 issue,作为客户了解该变更的真实信息来源。
- 按照以下指导,确保将此变更添加到废弃文档页面。
- 遵循您请求中已批准的发布与沟通计划。
更新废弃和移除文档
废弃和移除
文档是根据位于
gitlab/data/deprecations
目录下的 YAML 文件生成的。
当添加、编辑或删除 YAML 文件时,要更新废弃和移除页面:
-
从命令行,进入您
gitlab-org/gitlab项目的本地克隆。 -
在
data/deprecations目录下创建、编辑或删除 YAML 文件。 -
编译废弃和移除文档:
bin/rake gitlab:docs:compile_deprecations -
如有必要,您可以使用以下命令验证文档是否为最新:
bin/rake gitlab:docs:check_deprecations -
提交已更新的文档并推送更改。
-
使用 废弃和移除 模板创建合并请求。
相关手册页面:
- https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes
- https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc
更新重大变更窗口文档
重大变更窗口
文档是根据位于
gitlab/data/deprecations
目录下的 YAML 文件中的 window 值生成的。
当添加、编辑或删除 YAML 文件时,要更新重大变更窗口页面:
-
从命令行,进入您
gitlab-org/gitlab项目的本地克隆。 -
在
data/deprecations目录下创建、编辑或删除 YAML 文件。 -
编译重大变更窗口文档:
bin/rake gitlab:docs:compile_windows -
更新废弃文档:
bin/rake gitlab:docs:compile_deprecations -
如有必要,您可以使用以下命令验证文档是否为最新:
bin/rake gitlab:docs:check_windows -
提交已更新的文档并推送更改。
-
创建一个合并请求。
更新相关文档
当功能被废弃和移除时,请更新相关文档。
API 废弃和重大变更
我们的 API 在废弃和重大变更方面有特殊的规则。
REST API v4
除非 API 功能先前被标记为 实验性或测试版,否则 REST API v4 不允许进行重大变更。
请参阅 如何避免重大变更?
GraphQL API
在 GraphQL API 中,在发生重大变更之前,需要一个比标准周期更长的 废弃周期。
请参阅 GraphQL 废弃流程。
Webhook 重大变更
我们不能对 webhook 载荷进行重大变更。
有关构成 webhook 载荷重大变更的内容列表以及替代方案,请参阅 Webhook 重大变更指南。
如何处理对已废弃功能的社区贡献?
对废弃功能的开发仅限于优先级 1 / 严重性 1 的错误修复。对废弃功能的任何社区贡献在里程碑规划中都不太可能被优先考虑。
然而,在 GitLab,我们 赋予团队成员自主权。因此,与贡献相关的团队成员可以自行决定审查和合并它。
其他指导方针
有关配置移除,请参阅 Omnibus 废弃策略。
有关版本控制和升级详情,请参阅我们的 发布和维护策略。