跳到主要内容

ORM 发布和成熟度级别

本页解释了 Prisma ORM 的发布流程、版本控制方式以及如何处理可能在不同版本中出现的重大变更(breaking changes)。

发布

Prisma ORM 通常每三周发布一次。请注意,这不是一项硬性规定 – 发布可能会因内部原因推迟。

查看 GitHub 中的所有发布说明.

产品成熟度级别

一个版本可能包含不同成熟度级别的产品或功能。成熟度级别描述了产品或功能的完整性以及用户在重大变更(breaking changes)方面可以期待什么。

注意:从版本 2.13.0 开始,'Experimental' 不再是产品成熟度衡量标准的一部分。

抢先体验

如果某个功能或产品处于 抢先体验 阶段

  • 我们已经验证了一个问题并正在考虑解决方案,但尚未确定该解决方案是否完整或完全适合。
  • 我们希望收集更多反馈并根据需要调整解决方案,用户知道并准备好应对重大的重大变更(breaking changes)

我们不建议在生产环境中使用抢先体验功能或产品。

预览

如果某个功能或产品处于 预览 阶段

  • 我们已经在方向和表面(surface)方面验证了该功能或产品。
  • 用户可以预期此功能或产品及其相关的 API 基本稳定,除非在发布说明和文档中另有说明。
  • 没有重大的已知问题,但可能存在一些小错误(bug)。
  • 我们欢迎对这些功能提供反馈,以便尽快使其解决方案稳定。

预览功能通常位于一个功能标志(feature flag)之后,或者需要某种形式的选择启用(opt-in)(例如,在 CLI 中提供 --preview-feature 标志,或通过将它们添加到 Prisma schema 中 Prisma Client 的 generator 块的 previewFeatures 属性)。

我们不建议在生产环境中使用预览功能或产品。

另请参见:所有当前可用的预览功能

正式发布 (GA)

如果某个功能或产品处于 正式发布 阶段

  • 该解决方案已经过一段时间的测试,并收到了足够的反馈,我们认为它已稳定且可用于生产环境。
  • 在 99% 的情况下应该没有错误(完全无 bug 的软件无法保证)

版本控制

从版本 3.x.x 开始,Prisma ORM 的发布方案遵循语义化版本(SemVer)。

Prisma ORM 和语义化版本 (SemVer)

SemVer 版本控制如何工作?

语义化版本 (SemVer) 使用以下规则进行版本升级(引自 SemVer 规范)

给定版本号 MAJOR.MINOR.PATCH,递增

  1. 进行不兼容的 API 更改时,递增 MAJOR 版本,
  2. 以向后兼容的方式添加新功能时,递增 MINOR 版本,以及
  3. 进行向后兼容的 bug 修复时,递增 PATCH 版本。

Prisma ORM 版本控制如何遵循 SemVer?

从版本 3.x.x 开始,Prisma ORM 严格遵循 SemVer 版本控制方案。

以下是 Prisma ORM 如何遵循 SemVer 的简要概述

  • 稳定表面(即正式发布)中的重大变更(breaking changes)只会在新的 MAJOR 版本中引入。
  • 重大变更(breaking changes)仍然可以在 MINOR 版本中推出,但仅限于默认不启用的可选(opt-in)预览功能和抢先体验功能(例如通过预览功能标志或特定的选择启用选项或新的 CLI 命令)。
  • MINOR 版本中发布的可选(opt-in)重大变更,即预览功能和抢先体验功能,仅会在新的 MAJOR 版本中提升为正式发布(无需选择启用)。

给定版本号 MAJOR.MINOR.PATCH,Prisma ORM 的版本号按以下方式递增

  1. 主要产品更新 包含重大变更(breaking changes) 并发布到正式发布时,递增 MAJOR 版本。
  2. 发布添加向后兼容新功能的产品更新时,递增 MINOR 版本。包含重大变更的功能只能在它们是 可选(opt-in) 时引入,即抢先体验和预览功能。
  3. 修复功能错误(bug)且始终是 向后兼容 时,递增 PATCH 版本。

注意: 直到版本 2.28.0,Prisma ORM 都没有严格遵循 SemVer 版本控制。这意味着在 2.MINOR.PATCH 范围内的版本中,MINOR 版本可能包含了重大变更(breaking changes)。要了解更多关于 Prisma ORM 采用 SemVer 的信息,请查看这篇博客文章