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 将成为我们的一流数据库 (FCDBs)

这意味着什么

  • 优先处理:这些数据库将获得我们对错误修复、性能改进和新功能的首要关注。
  • 创新:未来的产品开发将以一流数据库为核心设计,确保无缝集成和兼容性。
  • 社区贡献:对于不在此范围内的数据库,我们提供明确的扩展点,以便社区能够满足自身需求。开发者可以通过创建自定义数据库适配器来扩展 Prisma 的功能,增加对其他数据库的支持。有关构建和使用这些适配器的指南可在我们的文档中找到。
  • 企业支持:需要非一流数据库官方支持的组织可以查看我们的企业支持计划

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

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

我们的 GitHub 代码库上有超过 3,000 个未解决问题,这使得快速有效地响应变得具有挑战性。为解决此问题,我们正采取一种更结构化的方法,以确保您的反馈塑造我们的优先事项并推动有意义的进展。

为什么这很重要

一套组织良好的问题有助于我们专注于最重要和最有影响力的事项。我们深切珍视您在提出和讨论问题上所付出的时间和精力——这正是推动 Prisma 前进的动力。为确保清晰度和可持续性,我们致力于整理我们的积压工作,关闭过时问题,并利用自动化来提升我们与您互动的能力。

您可以期待什么

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

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

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

我们正在对预览功能的处理方式进行重大改变。从现在起,如果本季度发布某功能进入预览版 (Preview),您预计它将在下一季度达到正式发布版 (GA)。我们所做的工作应该尽快交付给您,而不是无限期地停留在预览版中。

正在发生什么变化

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

通过承诺从预览版到正式发布的可预测时间表,我们确保功能不会停滞不前,并且我们所做的工作能够尽快惠及您。预览版现在意味着进展,而非不确定性。

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 新闻通讯

© . All rights reserved.