ORM 发布和成熟度级别
本页解释了 Prisma ORM 的发布流程、版本控制方式以及如何处理可能在不同版本中出现的重大变更(breaking changes)。
发布
Prisma ORM 通常每三周发布一次。请注意,这不是一项硬性规定 – 发布可能会因内部原因推迟。
产品成熟度级别
一个版本可能包含不同成熟度级别的产品或功能。成熟度级别描述了产品或功能的完整性以及用户在重大变更(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
,递增
- 进行不兼容的 API 更改时,递增
MAJOR
版本, - 以向后兼容的方式添加新功能时,递增
MINOR
版本,以及 - 进行向后兼容的 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 的版本号按以下方式递增
- 主要产品更新 包含重大变更(breaking changes) 并发布到正式发布时,递增
MAJOR
版本。 - 发布添加向后兼容新功能的产品更新时,递增
MINOR
版本。包含重大变更的功能只能在它们是 可选(opt-in) 时引入,即抢先体验和预览功能。 - 修复功能错误(bug)且始终是 向后兼容 时,递增
PATCH
版本。
注意: 直到版本
2.28.0
,Prisma ORM 都没有严格遵循 SemVer 版本控制。这意味着在2.MINOR.PATCH
范围内的版本中,MINOR
版本可能包含了重大变更(breaking changes)。要了解更多关于 Prisma ORM 采用 SemVer 的信息,请查看这篇博客文章。