AMP

AMP 发布时间表

每周二,AMP 的新版本都会推送到所有 AMP 页面。一旦 AMP 中的更改合并到 amphtml 存储库的主分支中,通常需要 1-2 周的时间才能让所有用户使用该更改。

AMPHTML 验证器 有自己的 发布时间表

发布渠道

AMP 运行时和扩展程序通过各种不同的发布渠道提供。每个渠道都为开发者和 AMP HTML 项目本身服务。请参阅 发布节奏部分,以更详细地了解代码如何以及何时从 ampproject/amphtml 存储库进入发布版本。

要确定 PR 是否已包含在以下任何发布渠道中,请查找 GitHub 标签PR 用途:金丝雀版PR 用途:生产版PR 用途:LTS(有关更多详细信息,请参阅 确定你的更改是否已发布 部分)。

每日更新

夜间发行渠道(顾名思义)会在每周的晚上更新。此过程是自动化的,并且无法保证任何给定的夜间发行都没有错误或其他问题。每天午夜(太平洋时间)后,会选择当天的最后一个“绿色”提交作为发行截止点。绿色构建表示所有自动化测试都已通过该构建。

夜间发行提供了一种机制,可以在问题到达流量较大的每周发行渠道之前快速检测和解决问题。它还有助于减少受新引入问题影响的用户数量。

可以加入夜间渠道,以测试过去几天合并的拉取请求。有关详细信息,请参阅 [developing.md] 中的加入部分

每周

每周发行渠道被认为是主要的“常青”发行渠道。每周,前一周的测试版发行都会升级到稳定发行渠道,前一周的最后一个夜间发行会升级到实验测试版发行渠道(请参阅详细时间表)。

在创建发行版本时使用了两组构建配置:金丝雀配置和生产配置。实验测试版发行渠道基于相同的提交构建。但是,实验渠道使用金丝雀配置,而测试版渠道使用生产配置。金丝雀配置启用可能在生产中关闭的实验性组件和功能。可以通过实验页面加入实验测试版渠道。

稳定发行渠道使用生产配置构建,并提供给大多数 AMP 流量。由于测试版发行渠道也是从生产配置构建的,因此它代表了下一周将变为稳定的确切版本(有可能进行精挑细选以修复最后一刻的问题;请参阅贡献代码)。

测试版和实验渠道

BetaExperimental Channels 是 AMP 下一个稳定版本的预发布候选版本。除了有 发布冻结 的星期外,每周二都会将上周的每日版本升级到开发者选择加入的BetaExperimental 频道。在为期 1 天的验证期内,我们会验证这些频道中是否引入了任何功能或性能回归问题,然后在星期三将此版本升级到少量流量。同一版本随后会在下周星期二升级到Stable 频道。

可以选择加入这些频道。有关详细信息,请参阅 [developing.md] 中的 选择加入部分

选择加入Beta Channel 的目的是

  • 测试和使用即将发布的 AMP 运行时版本
  • 在质量保证 (QA) 中使用,以确保您的网站与 AMP 的下一个版本兼容

Experimental Channel 的目的是

  • 测试和使用尚未向所有用户提供的全新功能
  • 在质量保证 (QA) 中使用,以确保您的网站与 AMP 仍在开发中的即将推出的功能兼容

Experimental Channel 可能不太稳定,并且可能包含尚未向所有用户提供的功能。

长期稳定 (lts)

lts 发布频道为一个月间隔提供之前的稳定版本。每月第二个星期一,当前稳定版本会升级到lts。此频道不建议所有 AMP 发布商使用。提供此频道是为了让希望不那么频繁地在自己的网站上执行 QA 周期的发布商能够通过选择加入特定的网页到lts 频道来执行 QA 周期(请参阅 lts 自述文件)。

如果当月的第二个星期一是节假日,则会在 发布冻结 结束后执行升级。

使用lts 发布频道的发布商不应使用新引入的功能。由于周期较长,lts 版本可能比 ampproject/amphtmlHEAD 晚多达七个星期。请参阅 确定您的更改是否已包含在某个版本中 部分,以验证更改是否已在您选择的发布周期中准备就绪。

确定您的更改是否已包含在某个版本中

类型:发布 GitHub 问题用于跟踪当前和过去版本的发布状态;从初始版本,到通过实验性/测试版渠道进行测试,再到最终通过稳定版长期支持版渠道发布。有关发布的公告会在 AMP Slack #release 频道 (注册 Slack) 中发布。

你可以使用以下方法之一来确定某个版本中有哪些更改

发布节奏

我们对发布节奏非常谨慎。

在确定我们应该多久向所有人推送新版本的 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 确定的其他情况,此时代码库的稳定性被认为特别重要。

在所有情况下,除了紧急情况,发布冻结将在至少提前一个月宣布。

请注意,除非另行宣布,否则发布冻结并不意味着代码冻结。在发布冻结期间,仍然可以编写、审查和合并代码。