ORM 發布與成熟度級別
本頁面說明 Prisma ORM 的發佈流程、版本控制方式,以及如何處理發佈過程中可能出現的重大變更(breaking changes)。
發佈 (Releases)
Prisma ORM 通常每兩週發佈一次。請注意,這並非嚴格的硬性規定,發佈可能會因內部因素而延期。
產品成熟度等級 (Product maturity levels)
發佈內容可能包含處於不同成熟度等級的產品或功能。成熟度等級描述了產品或功能的完整性,以及使用者在重大變更方面應有的預期。
注意:自 2.13.0 版本起,「實驗性 (Experimental)」已不再屬於產品成熟度劃分的一部分。
搶先體驗 (Early Access)
如果某個功能或產品處於 搶先體驗 (Early Access) 階段:
- 我們已經驗證了一個問題,並正在考慮解決方案,但不確定該方案是否完整或完全適用。
- 我們希望收集更多回饋並根據需要調整解決方案,同時預設使用者已準備好應對重大的變更。
我們不建議在生產環境中使用處於搶先體驗階段的功能或產品。
預覽 (Preview)
如果某個功能或產品處於 預覽 (Preview) 階段:
- 我們已在方向和介面方面驗證了該功能或產品。
- 使用者可以預期該功能或產品及其關聯的 API 大致穩定,除非發佈說明和文件中另有說明。
- 目前沒有已知的重大問題,儘管可能仍存在少數錯誤。
- 我們歡迎針對這些功能提出回饋,以協助我們盡快使其穩定。
預覽功能通常透過功能旗標(feature flag)提供,或需要某種形式的啟用(例如,在 CLI 中提供 --preview-feature 旗標,或在 Prisma Schema 的 generator 區塊中為 Prisma Client 將其新增至 previewFeatures 屬性)。
我們不建議在生產環境中使用預覽功能或產品。
另請參閱:目前所有可用的預覽功能。
正式發佈 (Generally Available, GA)
如果某個功能或產品處於 正式發佈 (Generally Available) 階段:
- 該解決方案已經過一段時間的測試,我們已收到足夠的回饋,認為它穩定且適合投入生產環境使用。
- 在 99% 的情況下應該不會有錯誤(無法保證軟體絕對零錯誤)。
版本控制 (Versioning)
從 3.x.x 版本開始,Prisma ORM 的發佈計畫遵循語意化版本控制(SemVer)。
Prisma ORM 與語意化版本控制 (SemVer)
SemVer 版本控制如何運作?
語意化版本控制 (SemVer) 對版本升級使用以下規則(引用自 SemVer 規範):
給定版本號 主版本號.次版本號.修訂號 (MAJOR.MINOR.PATCH),請遞增:
- 當您進行不相容的 API 變更時,遞增
主版本號 (MAJOR), - 當您以向後相容的方式新增功能時,遞增
次版本號 (MINOR),以及 - 當您進行向後相容的錯誤修復時,遞增
修訂號 (PATCH)。
Prisma ORM 版本控制如何遵循 SemVer?
從 3.x.x 版本開始,Prisma ORM 嚴格遵循 SemVer 版本控制方案。
以下是 Prisma ORM 遵循 SemVer 的簡要概述:
- 穩定介面(即 正式發佈)中的重大變更只會在新的
主版本號 (MAJOR)發佈中引入。 - 重大變更仍可能在
次版本號 (MINOR)中發佈,但僅限於預設為關閉的「搶先體驗」和「預覽」功能(例如透過預覽功能旗標、特定的啟用選項或新的 CLI 指令)。 - 在
次版本號 (MINOR)中發佈的「搶先體驗」和「預覽」重大變更,只有在新的主版本號 (MAJOR)發佈中才會升級為正式發佈(屆時無需額外啟用)。
給定版本號 MAJOR.MINOR.PATCH,Prisma ORM 的版本號遞增方式如下:
- 當包含 重大變更 的大型產品更新發佈至「正式發佈」階段時,會遞增
主版本號 (MAJOR)。 - 當發佈增加向後相容新功能的產品更新時,會遞增
次版本號 (MINOR)。只有在屬於 可選擇啟用 (opt-in)(即「搶先體驗」和「預覽」)的前提下,才能引入帶有重大變更的功能。 - 當修復功能錯誤且皆為向後相容時,會遞增
修訂號 (PATCH)。
注意:在
2.28.0版本之前,Prisma ORM 並未嚴格遵循 SemVer 版本控制。這意味著在2.MINOR.PATCH範圍內的發佈中,次版本號 (MINOR)可能包含過重大變更。若要進一步了解 Prisma ORM 採用 SemVer 的相關資訊,請參閱此 部落格文章。