AMP

AMP のリリーススケジュール

AMP の新規リリースは、毎週火曜日にすべての AMP ページにプッシュされます。AMP への変更が amphtml リポジトリのマスターブランチにマージされてから変更がすべてのユーザーに対してライブになるまでには、通常 1 ~ 2 週間かかります。

リリースチャンネル

AMP ランタイムと拡張機能は、さまざまなリリースチャンネルを通じて提供されます。各チャンネルには、開発者向けと AMP HTML プロジェクト自体向けの目的があります。ampproject/amphtml リポジトリのコードがリリースビルドに含まれる仕組みとタイミングに関する詳細は、リリースケイデンスのセクションを参照してください。

PR が以下のいずれかのリリースチャンネルに含まれているかどうかを判断するには、「PR Use: In Canary」、「PR Use: In Production」、または「PR Use: In LTS」という GitHub ラベルを確認してください(詳細は、「変更内容がリリースに含まれるかを確認する」セクションを参照してください)。

ナイトリー

ナイトリーリリースチャンネルは、平日の夜間(名前が示すとおり)に更新されます。このプロセスは自動であり、ナイトリーリリースにバグやその他の課題が含まれないことは保証されていません。毎晩午前零時(太平洋時間)を過ぎると、その日の「グリーン」最終コミットがリリースのカットオフポイントに選択されるようになっています。グリーンビルドは、そのビルドがすべての自動テストに合格したことを示します。

ナイトリーリリースには、トラフィックが増加するウィークリー父ースチャンネルに到達する前に課題を素早く検出して解決する仕組みが含まれています。また、新たに導入された課題に影響を受けるユーザー数を抑制する目的もあります。

ナイトリーチャンネルにオプトインして、過去数日間にマージされたプルリクエストをテストすることが可能です。詳細は、[DEVELOPING.md] のオプトインのセクションを参照してください。

ウィークリー

ウィークリーリリースチャンネルは、主要「エバーグリーン」リリースチャンネルとして捉えられています。毎週、前の週のベータリリースは安定リリースに昇格され、前の週の最後のナイトリーリリースは実験的およびベータリリースチャンネルに昇格されます(「詳細スケジュール」を参照してください。)。

リリースビルドの作成に使用されるビルド構成には、カナリー構成と本番構成の 2 つがあります。実験的およびベータリリースチャンネルは、同じコミットから構築されていますが、実験的チャンネルはカナリー構成を使用するのに対し、ベータチャンネルは本番構成を使用しています。カナリー構成では、本番では無効化される可能性のある実験的コンポーネントと機能が有効化されています。実験的またはベータチャンネルには、実験ページでオプトインすることができます。

安定リリースチャンネルは、本番構成で構築されており、ほとんどの AMP トラフィックに配信されます。ベータリリースも本番構成で構築されているため、翌週には安定版となるビルドそのものを指すことになります(チェリーピックにより、直前に課題が修正される可能性があります。詳細は、「コードの貢献」を参照してください)。

ベータおよび実験的チャンネル

ベータおよび実験的チャンネルは、AMP の次期安定リリースのプレリリース候補です。毎週火曜日(リリースフリーズがある週を除く)、前の週のナイトリーが、ベータ実験的の開発者オプトインチャンネルに昇格されます。1 日間、これらのチャンネルに機能やパフォーマンスの退行がないことを確認したのち、水曜日に一部のトラフィックに対してこのリリースが昇格されます。翌週の火曜日、この同じリリースが安定チャンネルに昇格されます。

これらのチャンネルにオプトインすることができます。詳細は、[DEVELOPING.md] のオプトインのセクションを参照してください。

ベータチャンネルにオプトインすると、以下の項目を行えるようになります。

  • 近日リリース予定の AMP ランタイムバージョンをテストして試すことができる
  • 品質保証(QA)で使用して、サイトと次期バージョンの AMP の互換性を確認することができる

実験的チャンネルにオプトインすると、以下の項目を行えるようになります。

  • すべてのユーザーにはまだ公開されていない新機能をテストして試すことができる
  • 品質保証(QA)で使用して、サイトと開発段階にある近日公開予定の AMP 機能の互換性を確認することができる

実験的チャンネル安定性は低い可能性があり、すべてのユーザーには提供されていない機能が含まれる場合があります。

長期安定版(LTS)

LTS リリースチャンネルは、1 か月間隔で、前の安定ビルドを提供します。毎月第 2 月曜日、現在の安定リリースは LTS に昇格されます。これは、すべての AMP サイト運営者に推奨されるチャンネルではなく、ウェブサイトでの QA サイクルをあまり頻繁に実施する意思のないサイト運営者が、特定のウェブページを LTS チャンネルにオプトインして実施できるように提供されているチャンネルです(LTS の Readme を参照してください)。

月の第 2 月曜日が休日である場合は、リリースフリーズの終了後に昇格されます。

LTS リリースチャンネルを使用するサイト運営者は、新たに導入される機能を使用してはいけません。サイクルの期間がより長期であるため、LTS リリースは ampproject/amphtmlHEAD から最大 7 週間遅れている可能性があります。変更内容が選択したリリースサイクルで使用できるかどうかを検証するには、「変更内容がリリースに含まれているかどうかを確認する」セクションを参照してください。

変更内容がリリースに含まれるかを確認する

Type: Release GitHub issues は、初期カットから、実験的/ベータチャンネルでのテスト、安定および LTS チャンネルでのリリースの評価まで、現行または過去のリリースのステータスを追跡するために使用されます。リリースに関する告知は、AMP Slack #release channel で行われます(Slack に登録)。

あるビルドのどの変更が含まれるかを判断するには、以下のいずれかを使用します。

リリースケイデンス

リリースケイデンスについては、意識的に大きく注意を払っています。

AMP の新規バージョンをどれくらいの頻度で全ユーザーに対してプッシュするかを判断するには、以下のような多くの要因を考慮しなければなりません。

  • AMP を使って構築された何百万ものサイトや、何十億ものページの安定性
  • 新規バージョンをプッシュする際に発生する可能性のあるキャッシュ無効化
  • 新機能を素早く公開したいという願望

こういった要因をすべて考慮したうえで、プッシュサイクルを 1 ~ 2 週間に決定しました。これまでのところ、これが合理的な妥協として成り立っていますが、こういった要因を継続して評価し、将来的に変更を適用することも考えられます。

詳細スケジュール

このスケジュールにできるだけ緊密に従うように努めていますが、複雑化すれば遅延が生じる可能性もあります。リリースの最新ステータスは、「Type: Release GitHub issues」および AMP Slack #release channelSlack に登録)で追跡することができます。

  • 火曜日午前 11 時(米国太平洋時間): 新しい実験的およびベータリリースがすべてのテストに合格した最新のマスタービルドから構築され、AMP 実験的チャンネルまたは AMP ベータチャンネルにオプトインしている AMP ユーザーにプッシュされます。
  • 水曜日: 実験的チャンネルおよびベータチャンネルユーザーのバグレポートを確認し、すべてが良好であれば、AMP ページの 1% に対してベータをプッシュします。
  • 木曜日から月曜日: 実験的チャンネルおよびベータチャンネルユーザー、および実験的/ベータビルドを使用する 1% のページのエラー率とバグレポートを監視し続けます。
  • 翌週の火曜日: ベータビルドは安定ビルドに昇格されます(すべての AMP ページで個のビルドを使用できるようになります)。

リリースフリーズ

AMP の本番リリースを省略する場合がたまにあり、これをリリースフリーズと呼んでいます。

第 N 週に 1 週間のリリースフリーズが告知された場合、スケジュールは以下のようになります。

  • 前の週のリリースビルドは、もう 1 週間、実験的/ベータのままになります。通常スケジュールとは異なり、第 N-1 週のリリースカットは第 N 週に安定リリースにはならず、第 N+1 週に安定リリースにプッシュされます。
  • フリーズウィーク(第 N 週)には、新規ビルドはリリースされません
  • 通常スケジュールは、第 N+1 週に再開します。実験的/ベータは、第 N+1 週にカットされ、第 N+2 週に安定に昇格されます。
  • 第 N-1 週に昇格された安定リリースがもともと第 N 週中に LTS に昇格予定であった場合は、第 N+1
    週の月曜日に LTS に昇格されるようになります。
  • ナイトリーリリースは、完全に自動化されているため、そのまま生成されて昇格されます。

リリースフリーズには、以下のような原因があります。

  • AMP リリースを安定にプッシュしてそれを監視するのに十分な人員が確保されない時期。現在、AMP リリースを実施している人員のほとんどが米国を拠点としているため、通常、米国の独立記念日(7 月 4 日)、サンクスギビング(11 月第 4 木曜日)、クリスマス(12 月 25 日)、および大晦日と元日(12 月 31 日/ 1 月 1 日)といった主な米国の祝日が発生する週です。
  • 技術運営委員会(TSC)またはリリースを実施する人員によって、セキュリティやプライバシーに関する問題などの緊急事態が認められた場合。
  • TSC によってコードベースの安定性が特別に重要であると判定された場合など。

緊急時を除くすべてのケースでは、少なくとも 1 か月前にリリースフリーズを告知しています。

リリースフリーズは、そのように指定がない限りコードフリーズではありません。リリースフリーズ中、コードの記述、レビュー、およびマージはそのまま続行することができます。