2024 年 12 月 02 日

Prisma ORM 宣言:清晰与协作

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

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

重新聚焦未来

Prisma 已经走了很长一段路,我们为我们共同取得的成就感到自豪。从 Accelerate 和 Pulse 到 TypedSQL 和 Prisma Postgres,我们构建的工具与每天依赖 Prisma 的一个令人难以置信的开发者社区一起成长。

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

我们想做得更好——所以这是我们正在改变的。

本宣言是我们将要做出不同做法的声明——我们将如何设定明确的优先级、更有效地管理我们的工作,并在每一步都让您(我们的社区)参与进来。如果您觉得这里没有代表重要的内容,请发起讨论——我们正在倾听。

我们目前的状况

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

  • 200 个版本
  • 合并了 5537 个拉取请求
  • 关闭了 7511 个问题

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

我们正在如何改变

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

1. 定义一流的数据库

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

这意味着什么

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

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

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

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

为什么这很重要

一套井井有条的问题有助于我们专注于最重要和最有影响的事情。我们非常重视您投入到提出和讨论问题中的时间和精力——正是这些推动着 Prisma 的发展。为了确保清晰性和可持续性,我们致力于整理我们的积压工作,关闭过时的问题,并使用自动化来扩展我们与您互动能力。

您可以期待什么

  1. 审查、组织和关闭
    • 在接下来的几周内,您将看到 GitHub 上更多的活动,因为我们将审查、更新和组织现有问题。
    • 如果某些问题已过时、已解决或不再与我们的路线图一致,则会将其关闭。这对于确保剩余问题具有相关性和可操作性至关重要。
    • 我们将提供时间表、标签和优先级,以明确说明我们计划如何以及何时处理特定项目。
    • 如果我们关闭了一个与您的团队/组织相关但没有足够社区支持的问题,那么您始终可以通过我们的企业支持计划来探索与我们建立直接关系的选项。
  2. 社区驱动的优先级
    • 获得最多赞和评论的问题将优先处理,确保您的声音能够影响我们的路线图。自从 2024 年 1 月采用此政策以来,我们发布了广受要求的功能,例如更好的 RAW SQL 支持、全局省略和多个架构文件。
    • 一流数据库的错误和功能将优先处理,而其他功能将取决于社区贡献或企业赞助。
  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 年开始,我们将每月举办“问我任何问题”会议(在 Discord 上,现在就加入我们吧!)来回答您的问题、分享更新并获取您的反馈。

指导原则

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

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

共同前进:我们对您的承诺

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

我们将优先考虑对您最重要的事项。提出问题、贡献代码或分享您的想法 - 我们希望您参与进来。在Discord上加入我们,在 GitHub 上不断推动我们,让我们共同构建一个更好的 Prisma。

Will Madden Prisma 工程经理,核心团队

不要错过下一篇文章!

注册 Prisma 新闻通讯