2024年12月2日

Prisma ORM マニフェスト:明確さとコラボレーション

このマニフェストは、プリズマの将来のビジョンを概説するものです。主な課題への取り組み、明確な優先順位の設定、そしてコミュニティのためにより良い体験を構築するためのコラボレーションの促進です。

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

未来への再 fokus

Prismaは長い道のりを歩んできました。そして、私たちが共に達成してきたことを誇りに思っています。AccelerateからTypedSQL、そしてPrisma Postgresまで、私たちが構築してきたツールは、日々Prismaを利用する素晴らしい開発者コミュニティと共に成長してきました。

しかし、Prisma ORMのスコープが拡大するにつれて、ガバナンス、issue管理、そしてコミュニケーションにおいて課題に直面してきました。優先順位は必ずしも明確ではなく、締め切りは一貫して守られておらず、そして時間が経つにつれて、3.2k件の未解決issueと、数年前から積み残されたプレビュー機能のバックログが蓄積しました。

私たちはもっと良くしたいと考えています。そこで、私たちが変えようとしていることを以下に示します。

このマニフェストは、私たちがこれからどのように変化していくかの宣言です。明確な優先順位をどのように設定し、より効果的に業務を管理し、そして私たちコミュニティであるあなた方をすべてのステップでどのように巻き込んでいくかを示します。もしここで重要な何かが表現されていないと感じる場合は、議論を開始してください。私たちは耳を傾けています。

現在の状況

PrismaはGitHub上で547,000のリポジトリを支え、月間40万人以上のアクティブな開発者にサービスを提供し、そして毎月900万件以上のNPMダウンロードを提供しています。長年にわたり、私たちは多くのことを達成してきました。

  • 200回のリリース
  • 5537件のプルリクエストをマージ
  • 7511件のissueをクローズ

これらの数字は私たちの進捗状況を強調していますが、私たちのコミュニティが価値を感じ、サポートされていると感じられるようにするためには、まだやるべきことがあると認識しています。非常に多くの開発者や組織がPrisma ORMに依存しているため、開発がコミュニティとの緊密な連携の中で行われ、そしてPrismaチームが明確かつ明確に定義された一連の原則に従って業務を行うことが重要です。

私たちの変化

私たちは、将来に向けて明確な道筋を設定することで、皆様が私たちに何を期待できるかを明確にし、製品の方向性、issue管理、機能開発、そしてPrismaコミュニティとのより強固な関係構築に焦点を当てています。以下に、私たちがどのように前進していくかを示します。

1. ファーストクラスデータベースの定義

私たちは、コミュニティ、顧客、そしてパートナーにとって最も重要なデータベース(これまでの利用状況データとコミュニティエンゲージメントから導き出されたもの)に重点を置いていきます。今後、Prisma Postgres、PostgreSQL、MySQL、SQLite、MongoDB、そしてMariaDBが私たちのファーストクラスデータベース(FCDB)となります。

これが意味すること

  • 優先順位付け:これらのデータベースは、バグ修正、パフォーマンス改善、そして新機能に関して、私たちの主要な注意を払う対象となります。
  • イノベーション:将来の製品開発は、FCDBを念頭に置いて設計され、シームレスな統合と互換性を確保します。
  • コミュニティの貢献:このグループ外のデータベースについては、コミュニティが独自のニーズを満たせるように、明確な拡張ポイントを提供します。開発者は、カスタムデータベースアダプターを作成し、追加のデータベースのサポートを追加することで、Prismaの機能を拡張できます。これらのアダプターの構築と使用に関するガイダンスは、ドキュメントで入手できます。
  • エンタープライズサポート:FCDB以外のデータベースに対する公式サポートを必要とする組織は、当社のエンタープライズサポートプランをご検討ください。

このコアとなるデータベース群に焦点を当てることで、皆様が依存するツールの最高の品質と信頼性を確保すると同時に、コミュニティがPrismaのリーチを拡大できるようにしたいと考えています。利用状況と需要の変化に応じて、ファーストクラスデータベースを再評価し、コミュニティ、顧客、そしてパートナーのニーズを反映するようにします。

2. より明確なIssue管理、コミュニティの優先順位付けとエンゲージメント

GitHubリポジトリに3,000件以上の未解決issueがあるため、迅速かつ効果的に対応することが困難になっています。これに対処するために、皆様からのフィードバックが私たちの優先順位を形成し、有意義な進捗を推進するために、より構造化されたアプローチを採用します。

これが重要な理由

整然と整理されたissueのセットは、最も重要で影響力のあることに集中するのに役立ちます。皆様がissueを提起し議論するために費やしてきた時間と労力を深く尊重しています。それがPrismaを前進させる原動力です。明確さと持続可能性を確保するために、バックログの整理、古くなったissueのクローズ、そして皆様とのエンゲージメント能力を拡大するための自動化の使用に取り組んでいます。

期待できること

  1. レビュー、整理、そしてクローズ
    • 今後数週間で、既存のissueをレビュー、更新、そして整理するにつれて、GitHubでの活動が活発になるでしょう。
    • issueの中には、古くなっていたり、既に対応済みであったり、またはもはやロードマップに沿っていない場合はクローズされます。これは、残りのissueが関連性があり、実行可能であることを保証するために不可欠です。
    • 特定の項目にいつ、どのように対処する予定かを明確にするために、タイムライン、ラベル、そして優先順位を提供します。
    • もし私たちが、あなたのチーム/組織に関連があり、十分なコミュニティサポートがないissueをクローズした場合でも、当社のエンタープライズサポートプランを通じて、私たちとの直接的な関係を築くオプションをいつでも検討できます。
  2. コミュニティ主導の優先順位付け
    • 最も多くの賛成票とコメントが付いたissueが優先され、皆様の声が私たちのロードマップを形成することを保証します。2024年1月にこのポリシーを採用して以来、より優れたRAW SQLサポート、グローバルomit、そして複数のスキーマファイルのような、非常に要望の多かった機能をリリースしました。
    • ファーストクラスデータベースのバグと機能が優先され、それ以外はコミュニティの貢献またはエンタープライズスポンサーシップに依存します。
  3. DosuとのパートナーシップによるIssue自動化
    • 私たちは、Dosuと提携して、より迅速なエンゲージメントと、増え続けるGithub issueの管理を支援してもらいます。AIのおかげでドキュメント内の1日500件以上の質問に対応できるようになったのと同じように(Kapaのおかげです)、Dosuのおかげで、思慮深い回答を作成し、効果的なエンゲージメントを維持し、そしてGitHub上のより多くのissueを解決できることを期待しています。

issue管理を効率化し、最も重要なことに焦点を当てることで、より迅速な対応と、より有意義な進捗のための基盤を構築しています。

3. 予測可能なプレビュー機能ライフサイクル

私たちは、プレビュー機能の扱い方を大きく変更します。今後は、今四半期にプレビューに機能をリリースした場合、次の四半期には一般提供(GA)に達することを期待できます。私たちが取り組んできた仕事は、プレビューで無期限に放置されるのではなく、できるだけ早く皆様の手に渡るべきです。

変更点

  1. 提供へのコミットメント
    • 機能は、GAに到達すると確信できる場合にのみプレビューに移行します。
    • もはや、プレビューを機能自体の実現可能性をテストする場所としては使用しません。機能がプレビューにある場合、私たちはコンセプトではなく、実装をテストしています。私たちのアプローチがうまくいかない場合は、アップデートを発行し、別のアプローチを試みます。
  2. バックログの解消
    • 既存のすべてのプレビュー機能をレビューし、明確なタイムラインでコミットするか、または非推奨にします。

プレビューからGAへの予測可能なタイムラインにコミットすることで、機能が停滞せず、私たちの仕事が可能な限り迅速に皆様に利益をもたらすようにします。プレビューは今や不確実性ではなく、進捗を意味するようになります。

4. コミュニティの拡張とコラボレーションの実現

Prismaのアーキテクチャは、歴史的にコミュニティの貢献を制限してきました。クエリの解析、検証、そして実行のようなコア機能は、TypeScriptに焦点を当てたコミュニティには不透明なRustエンジンによって管理されてきました。機能の拡張やコアissueの修正は、しばしば私たちのチームのみに委ねられていました。

これに対処するために、PrismaのコアロジックをRustからTypeScriptに移行し、カスタマイズと拡張を容易にするためにORMを再設計しています。

これが意味すること

  • TypeScriptによるコア:TypeScript開発者にとってよりアクセスしやすくオープンなアーキテクチャ
  • 設計による拡張性:エンドユーザーによるカスタマイズとコミュニティによる拡張のための明確な道筋
  • 協調的な成長:親しみやすいコードベースは、コミュニティがissueに対処し、機能を直接追加することを可能にします

Prismaをよりオープンで拡張可能にすることで、プロジェクトがコラボレーションを通じて進化することを保証します。私たちのチームだけでなく、コミュニティ全体の貢献によって。

エンゲージメントを維持する方法

オープンソースはコラボレーションによって発展します。そして、私たちはコミュニティとのつながりを強固かつ透明に保つために変更を行っています。

  • GitHubをコアとして:GitHub Issuesは、機能リクエスト、バグレポート、そしてコミュニティフィードバックのための主要なプラットフォームとなります。ヘルプや質問については、GitHub Discussionsに進んでください。そこでサポートチームが対応します。
  • Discord:Discordは、リアルタイムな議論の場として残り、コミュニティメンバーが互いに繋がり、助け合うことができます。
  • 月例AMA:2025年から、皆様の質問に答え、最新情報を共有し、フィードバックを得るために、月例の「Ask Me Anything」セッション(Discordで実施しますので、今すぐ参加してください!)を開催します。

指針

今後、これらの原則は、私たちがどのように業務を行い、コミュニティに価値を提供するかを形作ります。

  1. 開発者第一:私たちは開発者を念頭にツールを設計し、使いやすさ、生産性、そしてチームが優れた製品を容易に構築できるようにすることを優先します。
  2. 品質重視:ツールの厳格なテストとすべてのリリースでの信頼性の優先順位付けにより、パフォーマンス、安定性、そして保守性に関する高い基準を維持します。
  3. オープンかつ透明性:GitHub、ロードマップ、そしてコミュニティディスカッションを通じて、優先順位、決定事項、そして進捗状況をオープンに共有し、明確なコミュニケーションを約束します。
  4. 協調的:コミュニティからの意見を積極的に求め、フィードバックをロードマップに組み込み、明確な拡張ポイントと貢献パスを通じてコラボレーションの機会を創出します。
  5. 継続的な改善:フィードバックを受け入れ、技術革新の最前線に立ち続け、そしてPrismaが今日そして明日の開発者のニーズを満たすように迅速に反復します。

共により前進:皆様へのコミットメント

これらは空約束ではありません。私たちは提供するためにここにいます。今後数週間から数ヶ月で、リポジトリ内のissueを整理し、バグを修正し、そしてプレビュー機能を提供している様子が見られるでしょう。もし私たちが至らない点があれば、遠慮なく指摘してください

私たちは皆様にとって最も重要なことを優先します。issueを提起し、コードを貢献し、または考えを共有してください。皆様の参加を歓迎します。Discordに参加し、GitHubで私たちをプッシュし続け、そしてより良いPrismaを共に構築しましょう。

Will Madden Prisma エンジニアリングマネージャー、コアチーム

次の投稿をお見逃しなく!

Prismaニュースレターに登録する