2024 年 12 月 02 日

Prisma ORM 宣言:清晰和协作

本宣言概述了 Prisma 对未来的愿景:解决关键挑战,设定明确的优先级,并加强协作,为我们的社区构建更好的体验。

Prisma ORM Manifesto title with image of scroll with official looking seal

重新聚焦未来

Prisma 已经取得了长足的进步,我们为我们共同取得的成就感到自豪。从 Accelerate 到 TypedSQL 和 Prisma Postgres,我们构建的工具与每天依赖 Prisma 的杰出开发者社区共同成长。

但随着 Prisma ORM 的范围不断扩大,我们在治理、问题管理和沟通方面面临着挑战。优先级并不总是清晰,截止日期未能始终如一地实现,而且随着时间的推移,我们积累了 3.2k 个未解决问题和多年积压的预览功能。

我们想要做得更好——这就是我们正在改变的原因。

本宣言是我们声明将要做出哪些不同的改变——我们将如何设定明确的优先级、更有效地管理我们的工作,并让您,我们的社区,参与到每一步中。如果您觉得这里没有代表某些重要的内容,请开启讨论——我们正在倾听。

我们今天的立场

Prisma 为 GitHub 上 547,000 个存储库提供支持,服务于 超过 400,000 名月活跃开发者,并提供高达 每月 900 万次 NPM 下载。多年来,我们取得了许多成就

  • 200 个版本发布
  • 5537 个合并的拉取请求
  • 7511 个已关闭的问题

这些数字突显了我们的进步,但我们知道还有更多工作要做,以确保我们的社区感到被重视和支持。由于有如此多的开发者和组织依赖 Prisma ORM,因此开发必须与社区紧密合作,并且 Prisma 团队必须按照一套清晰且明确的原则工作,这一点非常重要。

我们正在如何改变

我们正在为未来设定清晰的道路,以便您了解对我们的期望,专注于产品方向、问题管理、功能开发,并与 Prisma 社区建立更牢固的关系。以下是我们前进的方式

1. 定义一流数据库

我们将重点关注对我们的社区、客户和合作伙伴最重要的数据库(从迄今为止的使用数据和社区参与中得出)。展望未来,Prisma Postgres、PostgreSQL、MySQL、SQLite、MongoDB 和 MariaDB 将成为我们的一流数据库 (FCDB)

这意味着什么

  • 优先级排序:这些数据库将成为我们修复错误、改进性能和开发新功能的主要关注点。
  • 创新:未来的产品开发将以 FCDB 为中心进行设计,确保无缝集成和兼容性。
  • 社区贡献:对于此组之外的数据库,我们提供明确的扩展点,使社区能够满足自身需求。开发者可以通过创建自定义数据库适配器来扩展 Prisma 的功能,从而增加对其他数据库的支持。有关构建和使用这些适配器的指南,请参阅我们的文档
  • 企业支持:需要对非 FCDB 进行官方支持的组织可以了解我们的企业支持计划

通过专注于这一核心数据库集,我们希望确保您所依赖的工具具有最高的质量和可靠性,同时还使我们的社区能够扩展 Prisma 的覆盖范围。随着使用情况和需求的变化,我们将重新评估我们的一流数据库,以确保它们反映我们的社区、客户和合作伙伴的需求。

2. 更清晰的问题管理、社区优先级排序和参与

我们的 GitHub 存储库中有超过 3,000 个未解决问题,因此快速有效地响应一直具有挑战性。为了解决这个问题,我们正在采取更结构化的方法,以确保您的反馈能够塑造我们的优先级并推动有意义的进展。

为什么这很重要

一套组织良好的问题有助于我们专注于最重要和最具影响力的事项。我们非常重视您投入时间和精力来提出和讨论问题——这正是推动 Prisma 前进的动力。为了确保清晰度和可持续性,我们承诺组织我们的积压工作、关闭过时的问题,并使用自动化来扩展我们与您互动的能力。

您可以期待什么

  1. 审查、组织和关闭
    • 在接下来的几周内,您将在 GitHub 上看到更多活动,因为我们将审查、更新和组织现有问题。
    • 如果某些问题已过时、已解决或不再符合我们的路线图,则这些问题将被关闭。这对于确保剩余问题具有相关性和可操作性至关重要。
    • 我们将提供时间表、标签和优先级,以明确说明我们计划如何以及何时解决特定事项。
    • 如果我们关闭了一个与您的团队/组织相关的问题,并且该问题没有获得足够的社区支持,那么您始终可以考虑通过我们的企业支持计划与我们建立直接关系。
  2. 社区驱动的优先级排序
    • 获得最多赞成票和评论的问题将优先处理,确保您的声音能够塑造我们的路线图。自从 2024 年 1 月采用此政策以来,我们已经发布了备受追捧的功能,例如更好的 RAW SQL 支持、全局 omit 和多架构文件。
    • 一流数据库的错误和功能将优先考虑,而其他数据库的错误和功能将取决于社区贡献或企业赞助。
  3. Dosu 合作进行问题自动化
    • 我们正在与 Dosu 合作,以帮助我们更快地互动并管理我们不断增长的 Github 问题量。正如 AI 使我们能够处理文档中每天超过 500 个问题(感谢 Kapa)一样,我们希望 Dosu 能够使我们能够编写周到的回复、保持有效的互动并解决 GitHub 上的更多问题。

通过简化问题管理并专注于最重要的事情,我们正在为更快的响应和更有意义的进展奠定基础。

3. 可预测的预览功能生命周期

我们正在对处理预览功能的方式进行重大更改。从现在开始,如果我们在本季度发布一个 预览版功能,您可以期望它在下个季度达到 正式发布 (GA) 状态。我们所做的工作应该尽快交付到您手中,而不是无限期地停留在预览版中。

正在发生的变化

  1. 交付承诺
    • 只有当我们确信某个功能能够达到 GA 状态时,它才会进入预览版。
    • 我们不再将预览版用作测试功能本身是否可行的场所。如果某个功能处于预览版状态,我们正在测试的是实现,而不是概念。如果我们的方法不起作用,我们将发布更新并尝试不同的方法。
  2. 清理积压工作
    • 我们将审查所有现有的预览功能,并承诺按照明确的时间表交付它们,或者弃用它们。

通过承诺从预览版到 GA 的可预测时间表,我们确保功能不会停滞不前,并且我们所做的工作能够尽快让您受益。现在,预览版将意味着进步,而不是不确定性。

4. 支持社区扩展和协作

从历史上看,Prisma 的架构限制了社区贡献。诸如查询解析、验证和执行之类的核心功能一直由我们的 Rust 引擎管理,这对我们以 TypeScript 为中心的社区来说是不透明的。扩展功能或修复核心问题通常完全落在我们的团队身上。

我们正在通过将 Prisma 的核心逻辑从 Rust 迁移到 TypeScript 并重新设计 ORM,使其更易于自定义和扩展来解决这个问题。

这意味着什么

  • TypeScript 中的核心:为 TypeScript 开发者提供更易于访问和开放的架构
  • 设计上的可扩展性:为最终用户自定义和社区扩展提供清晰的路径
  • 协作增长:一个平易近人的代码库使社区能够直接解决问题并添加功能

通过使 Prisma 更加开放和可扩展,我们确保项目通过协作发展——不仅通过我们的团队,而且通过整个社区的贡献。

我们将如何保持互动

开源在协作中蓬勃发展,我们正在进行更改以确保我们与社区的联系保持牢固和透明

  • GitHub 作为核心:GitHub Issues 将成为我们处理功能请求、错误报告和社区反馈的主要平台。如需帮助或提问,请前往 GitHub Discussions,我们的支持团队将在那里回复。
  • Discord:Discord 仍然是进行实时讨论的地方,社区成员可以在那里联系并互相帮助。
  • 每月 AMA:从 2025 年开始,我们将每月举办“Ask Me Anything”(随便问)环节(在 Discord 上,立即加入我们!)来回答您的问题、分享更新并获取您的反馈。

指导原则

当我们向前迈进时,这些原则将塑造我们的工作方式以及如何为社区交付价值

  1. 开发者优先:我们在设计工具时以开发者为中心,优先考虑可用性、生产力,并使团队能够轻松构建出色的产品。
  2. 专注于质量:我们通过严格测试我们的工具并在每个版本中优先考虑可靠性,来保持性能、稳定性和可维护性的高标准。
  3. 开放和透明:我们承诺进行清晰的沟通——通过 GitHub、路线图和社区讨论公开分享我们的优先级、决策和进展。
  4. 协作:我们积极征求社区的意见,将反馈纳入我们的路线图,并通过清晰的扩展点和贡献路径创造协作机会。
  5. 持续改进:我们接受反馈,站在技术进步的最前沿,并快速迭代以确保 Prisma 不断发展,以满足当今和未来开发者的需求。

携手前进:我们对您的承诺

这些不是空洞的承诺——我们致力于交付。在未来的几周和几个月里,您将看到我们在我们的存储库中组织问题、修复错误并交付预览功能。如果我们有任何不足之处,请指出我们

我们将优先考虑对您最重要的事项。提出问题、贡献代码或分享您的想法——我们希望您参与其中。在 Discord 上加入我们,在 GitHub 上不断鞭策我们,让我们一起构建更好的 Prisma。

Will Madden Prisma 核心团队工程经理

不要错过下一篇文章!

注册 Prisma 新闻通讯