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 支援、全域 omit 和多個 schema 檔案。
    • 一流資料庫的錯誤和功能將優先處理,而其他資料庫的錯誤和功能將取決於社群貢獻或企業贊助。
  3. Dosu 合作的問題自動化
    • 我們正在與 Dosu 合作,以幫助我們更快地參與並管理我們日益增長的 Github 問題量。正如 AI 使我們能夠處理文件中超過 500 個日常問題(感謝 Kapa),我們希望 Dosu 能夠幫助我們撰寫周全的回應、維持有效的參與,並解決 GitHub 上更多的問題。

透過簡化問題管理並專注於最重要的事情,我們正在為更快速的回應和更有意義的進展奠定基礎。

3. 可預測的預覽功能生命週期

我們正在對我們處理預覽功能的方式進行重大變更。從現在開始,如果我們在本季發布功能到預覽版,您可以期望它在下個季度達到正式發行版 (GA)。我們完成的工作應該盡快交付到您手中,而不是無限期地停留在預覽版中。

正在改變什麼

  1. 交付承諾
    • 只有當我們確信功能能夠進入正式發行版時,才會將其移至預覽版。
    • 我們不再將預覽版作為測試功能本身是否可行的場所。如果某個功能處於預覽版,我們正在測試的是實作,而不是概念。如果我們的方法不起作用,我們將發布更新並嘗試不同的方法。
  2. 清除積壓工作
    • 我們將審查所有現有的預覽功能,並承諾為其制定明確的時間表或將其棄用。

透過承諾從預覽版到正式發行版的可預測時間表,我們確保功能不會停滯不前,並且我們所做的工作能盡快讓您受益。現在,預覽版將意味著進展,而不是不確定性。

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 電子報