AMP

AMP 發佈排程

AMP 的新版本每週二都會推送至所有 AMP 頁面。一旦 AMP 的變更合併到 amphtml 儲存庫的主要分支中,通常需要 1-2 週的時間,變更才會對所有使用者生效。

AMPHTML 驗證工具有其自己的發佈排程

發佈管道

AMP 執行階段和擴充功能透過各種不同的發佈管道提供。每個管道都為開發人員和 AMP HTML 專案本身服務。請參閱發佈節奏章節,以更詳細地了解 ampproject/amphtml 儲存庫中的程式碼如何以及何時進入發佈版本。

若要判斷 PR 是否已包含在以下任何發佈管道中,請尋找 GitHub 標籤 PR Use: In CanaryPR Use: In ProductionPR Use: In LTS(詳情請參閱判斷您的變更是否包含在發佈版本中章節)。

每夜版

每夜版發佈管道(顧名思義)每週工作日晚上更新。此程序是自動化的,並且不保證任何給定的每夜版發佈版本都沒有錯誤或其他問題。每天晚上午夜(太平洋時間)過後,會選取當天最後一個「綠色」提交作為發佈截止點。綠色建置表示所有自動化測試都已在該建置上通過。

每夜版提供了一種機制,可以快速偵測和解決問題,並在問題到達流量更大的每週發佈管道之前解決。它還有助於減少受新引入問題影響的使用者數量。

可以選擇加入 每夜版管道,以測試過去幾天合併的提取請求。請參閱 [developing.md] 中的選擇加入章節以了解詳情。

每週版

每週發佈管道被視為主要的「常青」發佈管道。每週,前一週的 beta 發佈版本會升級為 stable 發佈管道,而前一週的最後一個 每夜版 發佈版本會升級為 experimentalbeta 發佈管道(請參閱詳細排程)。

在建立發佈版本時,使用了兩組建置組態:canary 組態和 production 組態。experimentalbeta 發佈管道是從同一個提交建置的。但是,experimental 管道使用 canary 組態,而 beta 管道使用 production 組態。canary 組態啟用可能在 production 中關閉的實驗性元件和功能。可以透過 實驗頁面選擇加入 experimentalbeta 管道。

stable 發佈管道使用 production 組態建置,並提供給大多數 AMP 流量。由於 beta 發佈管道也是從 production 組態建置的,因此它代表了將在下週成為 stable 的確切建置版本(有可能進行揀選以修復最後一刻的問題;請參閱貢獻程式碼)。

Beta 版和實驗性管道

Beta 版實驗性管道是 AMP 下一個穩定發佈版本的預發佈候選版本。每個星期二(除了有發佈凍結期的週),上週的 每夜版 會升級為開發人員選擇加入的 betaexperimental 管道。在 1 天的期間內,我們驗證這些管道中沒有引入任何功能或效能衰退後,我們會在星期三將此發佈版本升級到一小部分流量。然後,這個相同的發佈版本將在下週二升級到 stable 管道。

可以選擇加入這些管道。請參閱 [developing.md] 中的選擇加入章節以了解詳情。

選擇加入Beta 版管道的目的在於

  • 測試和體驗即將發佈的 AMP 執行階段版本
  • 在品質保證 (QA) 中使用,以確保您的網站與下一個 AMP 版本相容

實驗性管道的目的在於

  • 測試和體驗尚未向所有使用者提供的全新功能
  • 在品質保證 (QA) 中使用,以確保您的網站與仍在開發中的 AMP 即將推出的功能相容

實驗性管道可能較不穩定,並且可能包含尚未向所有使用者提供的功能。

長期穩定版 (lts)

lts 發佈管道為一月間隔提供先前的 stable 建置版本。在每個月的第二個星期一,目前的 stable 發佈版本會升級為 lts。不建議所有 AMP 發佈商都使用此管道。它提供的目的是讓希望較不頻繁地對其網站執行 QA 週期發佈商,可以透過將特定網頁選擇加入 lts 管道來執行 QA 週期(請參閱 lts 讀我檔案)。

如果每個月的第二個星期一適逢假日,則升級將在發佈凍結期結束後執行。

使用 lts 發佈管道的發佈商不應使用新推出的功能。由於週期較長,lts 發佈版本可能比 ampproject/amphtmlHEAD 落後多達七週。請參閱判斷您的變更是否包含在發佈版本中章節,以驗證變更是否已準備好用於您選擇的發佈週期。

判斷您的變更是否包含在發佈版本中

Type: Release GitHub 議題用於追蹤目前和過去發佈版本的狀態;從初始版本,到透過 experimental/beta 管道進行測試,到最終透過 stablelts 管道發佈。有關發佈版本的公告會在 AMP Slack #release 管道上發佈(註冊 Slack)。

您可以使用以下其中一種方法判斷給定發佈版本中包含哪些變更

發佈節奏

我們在發佈節奏方面非常謹慎。

在判斷我們應該多久向所有人推送新版本的 AMP 時,我們必須權衡許多因素,包括

  • 使用 AMP 建置的數百萬個網站/數十億個頁面的穩定性
  • 當我們推送新版本時可能發生的快取失效
  • 快速推出新功能的渴望

在考慮所有這些因素後,我們得出了 1-2 週的推送週期。到目前為止,我們發現這是一個合理的折衷方案,但我們將繼續評估所有這些因素,並可能在未來進行變更。

詳細排程

我們盡力嚴格遵守此排程,但複雜情況可能會導致延遲。您可以在 Type: Release GitHub 議題AMP Slack #release 管道註冊 Slack)中追蹤有關任何發佈版本的最新狀態。

  • 每週工作日晚上:自動切割並發佈新的 每夜版 建置版本到 AMP 每夜版管道
  • 星期二 @ 太平洋時間上午 11 點:從最近已知的良好每夜版管道發佈版本建立新的 experimentalbeta 發佈版本,並提供給選擇加入 AMP 實驗性管道AMP Beta 版管道 的使用者。
  • 星期三:我們檢查實驗性管道Beta 版管道使用者的錯誤報告,如果一切看起來正常,我們會將 beta 推送至 1% 的 AMP 頁面
  • 星期四至星期一:我們繼續監控實驗性管道Beta 版管道使用者以及具有 experimental/beta 建置版本的 1% 頁面的錯誤率和錯誤報告
  • 下週二:beta 發佈版本完全升級為 stable(即,所有 AMP 頁面現在都將使用此發佈版本)

發佈凍結期

在某些情況下,我們會跳過 AMP 發佈到生產環境,這稱為發佈凍結。

如果宣布第 N 週為期一週的發佈凍結

  • 前一週的 stable 發佈版本將額外保留一週,即在第 N 週不會像往常一樣升級新的發佈版本到 stable
  • 但是,新的 betaexperimental 發佈版本將在凍結週(第 N 週)期間建立。
  • 正常排程將在第 N+1 週恢復,即來自第 N 週的 experimental/beta 發佈版本在第 N+1 週升級為 stable。此外,新的 experimental/beta 發佈版本在第 N+1 週建立,並將在第 N+2 週升級為 stable
  • 如果在第 N-1 週升級的 stable 發佈版本原定於第 N 週升級為 lts,則現在將在第 N+1 週的星期一升級為 lts
  • 每夜版發佈版本仍會產生和升級,因為它們是完全自動化的。

發佈凍結可能因以下原因而發生

  • 沒有足夠的人員可以將 AMP 發佈版本推送至 stable 並監控它。目前,大多數執行 AMP 發佈的人員都位於美國,因此通常會是美國主要節假日的週,例如獨立日(7 月 4 日)、感恩節(11 月的第四個星期四)、聖誕節(12 月 25 日)和新年除夕/元旦(12 月 31 日/1 月 1 日)。
  • 緊急情況,例如由技術指導委員會 (TSC) 或執行發佈的人員確定的安全性或隱私問題。
  • TSC 確定程式碼庫穩定性被認為特別重要的其他情況。

在所有情況下,除了緊急情況外,發佈凍結將至少提前一個月宣布。

請注意,除非另有宣布,否則發佈凍結並不表示程式碼凍結。程式碼仍可以在發佈凍結期間編寫、審查和合併。