AMP 发布时间表
每周二,AMP 的新版本都会推送到所有 AMP 页面。一旦 AMP 中的更改合并到 amphtml 存储库的主分支中,通常需要 1-2 周的时间才能让所有用户使用该更改。
AMPHTML 验证器 有自己的 发布时间表
发布渠道
AMP 运行时和扩展程序通过各种不同的发布渠道提供。每个渠道都为开发者和 AMP HTML 项目本身服务。请参阅 发布节奏部分,以更详细地了解代码如何以及何时从 ampproject/amphtml
存储库进入发布版本。
要确定 PR 是否已包含在以下任何发布渠道中,请查找 GitHub 标签PR 用途:金丝雀版、PR 用途:生产版或PR 用途:LTS(有关更多详细信息,请参阅 确定你的更改是否已发布 部分)。
每日更新
夜间发行渠道(顾名思义)会在每周的晚上更新。此过程是自动化的,并且无法保证任何给定的夜间发行都没有错误或其他问题。每天午夜(太平洋时间)后,会选择当天的最后一个“绿色”提交作为发行截止点。绿色构建表示所有自动化测试都已通过该构建。
夜间发行提供了一种机制,可以在问题到达流量较大的每周发行渠道之前快速检测和解决问题。它还有助于减少受新引入问题影响的用户数量。
可以加入夜间渠道,以测试过去几天合并的拉取请求。有关详细信息,请参阅 [developing.md] 中的加入部分。
每周
每周发行渠道被认为是主要的“常青”发行渠道。每周,前一周的测试版发行都会升级到稳定发行渠道,前一周的最后一个夜间发行会升级到实验和测试版发行渠道(请参阅详细时间表)。
在创建发行版本时使用了两组构建配置:金丝雀配置和生产配置。实验和测试版发行渠道基于相同的提交构建。但是,实验渠道使用金丝雀配置,而测试版渠道使用生产配置。金丝雀配置启用可能在生产中关闭的实验性组件和功能。可以通过实验页面加入实验或测试版渠道。
稳定发行渠道使用生产配置构建,并提供给大多数 AMP 流量。由于测试版发行渠道也是从生产配置构建的,因此它代表了下一周将变为稳定的确切版本(有可能进行精挑细选以修复最后一刻的问题;请参阅贡献代码)。
测试版和实验渠道
Beta 和 Experimental Channels 是 AMP 下一个稳定版本的预发布候选版本。除了有 发布冻结 的星期外,每周二都会将上周的每日版本升级到开发者选择加入的Beta 和 Experimental 频道。在为期 1 天的验证期内,我们会验证这些频道中是否引入了任何功能或性能回归问题,然后在星期三将此版本升级到少量流量。同一版本随后会在下周星期二升级到Stable 频道。
可以选择加入这些频道。有关详细信息,请参阅 [developing.md] 中的 选择加入部分。
选择加入Beta Channel 的目的是
- 测试和使用即将发布的 AMP 运行时版本
- 在质量保证 (QA) 中使用,以确保您的网站与 AMP 的下一个版本兼容
Experimental Channel 的目的是
- 测试和使用尚未向所有用户提供的全新功能
- 在质量保证 (QA) 中使用,以确保您的网站与 AMP 仍在开发中的即将推出的功能兼容
Experimental Channel 可能不太稳定,并且可能包含尚未向所有用户提供的功能。
长期稳定 (lts)
lts 发布频道为一个月间隔提供之前的稳定版本。每月第二个星期一,当前稳定版本会升级到lts。此频道不建议所有 AMP 发布商使用。提供此频道是为了让希望不那么频繁地在自己的网站上执行 QA 周期的发布商能够通过选择加入特定的网页到lts 频道来执行 QA 周期(请参阅 lts 自述文件)。
如果当月的第二个星期一是节假日,则会在 发布冻结 结束后执行升级。
ampproject/amphtml
的HEAD
晚多达七个星期。请参阅 确定您的更改是否已包含在某个版本中 部分,以验证更改是否已在您选择的发布周期中准备就绪。 确定您的更改是否已包含在某个版本中
类型:发布 GitHub 问题用于跟踪当前和过去版本的发布状态;从初始版本,到通过实验性/测试版渠道进行测试,再到最终通过稳定版和长期支持版渠道发布。有关发布的公告会在 AMP Slack #release 频道 (注册 Slack) 中发布。
你可以使用以下方法之一来确定某个版本中有哪些更改
- 每个版本的 类型:发布 GitHub 问题 将包含指向特定 版本页面 的链接,其中列出了该版本中包含的更改。
- 当 公关使用:测试版/实验版、公关使用:稳定版 和 公关使用:长期支持版 标签添加到公关时,表示它们已进入每周或长期支持版版本。版本创建和添加标签之间可能存在延迟。
发布节奏
我们对发布节奏非常谨慎。
在确定我们应该多久向所有人推送新版本的 AMP 时,我们必须权衡许多因素,包括
- 使用 AMP 构建的数百万个网站/数十亿个页面的稳定性
- 当我们推送新版本时可能发生的缓存破坏
- 快速推出新功能的愿望
考虑所有这些因素后,我们得出了 1-2 周的推送周期。到目前为止,我们发现这是一个合理的折衷方案,但我们会继续评估所有这些因素,并可能在未来做出更改。
详细时间表
我们尽量严格遵守此时间表,但复杂情况可能会导致延迟。你可以在 类型:发布 GitHub 问题 和 AMP Slack #release 频道 (注册 Slack) 中跟踪任何版本的最新状态。
- 每周晚上:一个新的夜间版本会自动生成并发布到 AMP 夜间频道。
- 太平洋时间周二上午 11 点:从最近已知的良好夜间频道版本中创建新的实验性和测试版版本,并向选择加入 AMP 实验性频道 或 AMP 测试版频道 的用户提供。
- 星期三:我们检查实验性频道和测试版频道用户的错误报告,如果一切正常,我们会将测试版推送到 1% 的 AMP 页面
- 星期四至星期一:我们继续监视实验频道和测试频道用户的错误率和错误报告,以及使用实验性/测试版版本的 1% 的页面
- 下周星期二:测试版将完全升级为稳定版(即所有 AMP 页面现在都将使用此版本)
版本冻结
有时我们会跳过 AMP 的一次生产版本发布,这称为版本冻结。
如果宣布第 N 周冻结一次版本发布
- 上周的稳定版将保留一个额外星期,即不会在第 N 周将新版本升级为稳定版,这通常是这种情况。
- 但是,在冻结星期(第 N 周)期间将创建新的测试版和实验性版本。
- 正常时间表将在第 N+1 周恢复,即第 N 周的实验性/测试版在第 N+1 周升级为稳定版。此外,将在第 N+1 周创建新的实验性/测试版,并将在第 N+2 周升级为稳定版。
- 如果在第 N-1 周升级的稳定版最初计划在第 N 周升级为lts,那么它现在将在第 N+1 周的星期一升级为lts。
- 每日版本仍然生成并升级,因为它们是完全自动化的。
版本冻结可能由于以下原因发生
- 没有足够的人员将 AMP 版本推送到稳定版并监视它。目前,执行 AMP 版本发布的大多数人员都位于美国,因此这通常是美国主要节假日独立日(7 月 4 日)、感恩节(11 月的第四个星期四)、圣诞节(12 月 25 日)和除夕/元旦(12 月 31 日/1 月 1 日)的星期。
- 紧急情况,例如由技术指导委员会 (TSC)或执行版本发布的人员确定的安全或隐私问题。
- 由 TSC 确定的其他情况,此时代码库的稳定性被认为特别重要。
在所有情况下,除了紧急情况,发布冻结将在至少提前一个月宣布。
请注意,除非另行宣布,否则发布冻结并不意味着代码冻结。在发布冻结期间,仍然可以编写、审查和合并代码。