HoraeDB開発ガイド:コントリビューションとコミュニティ参加の方法
Apache HoraeDB (incubating) は高性能で分散型のクラウドネイティブ時系列データベースです。プロジェクトのアドレス: https://gitcode.com/gh_mirrors/hor/horaedb
Apache HoraeDBは、開発者と企業に強力な時間序列データ処理能力を提供する高性能、分散型、クラウドネイティブの時系列データベースです。このガイドでは、このオープンソースプロジェクトにコードを貢献し、コミュニティ活動に参加する方法について詳しく説明します。
貢献開始前の準備
貢献を開始する前に、まずHoraeDBの基本アーキテクチャを理解する必要があります。プロジェクトは主に2つの核心コンポーネントで構成されています:
- horaedb:メインデータベースエンジン、Rustで記述
- horaemeta:メタデータ管理サービス、Goで記述
開発に参加するには、まずリポジトリをクローンします:
git clone https://gitcode.com/gh_mirrors/hor/horaedb
cd horaedb
課題と機能リクエストの提出
新しい課題を提出する前に、既存の課題を検索して重複を避けてください。プロジェクトのメンテナは定期的にコミュニティからの機能リクエストをレビューし、サポートされていない機能については関連するチケットをクローズします。
課題提出のベストプラクティス
- GitHubの課題テンプレートを使用してバグ報告または機能リクエストを提出する
- 詳細な環境情報と再現手順を提供する
- 欠陥を引き起こすテストケースを提供できる場合、問題解決の効率が大幅に向上します
コード貢献のプロセス
1. Pull Requestの作成
PRを提出するには、まずhoraedbリポジトリをフォークし、自分のブランチで作業します。修正を完了したら、Pull Requestを提出してコードレビューを受けます。
2. ローカルでの検証
PRを提出する前に、ローカルで以下の内容を検証してください:
- コミットメッセージがConventional Commits仕様に準拠している
- すべてのテストとベンチマークテスト(ドキュメンテーションテストを含む)がパスしている
- コードフォーマットが正しく、すべてのclippyチェックをパスしている
- 「コードゴミ」が残っていない
テストの実行
Rustコンポーネントのテスト
Rustで記述されたhoraedbメインエンジンのテストを実行するには:
cargo test --workspace
テストでログ記録を有効にするには:
RUST_LOG=info cargo test --workspace
Goコンポーネントのテスト
horaemetaメタデータサービスのテストを実行するには、Makefileを使用します:
make test
コードのフォーマットと品質チェック
Rustコードのフォーマット
rustfmtコンポーネントをインストールします:
rustup component add rustfmt
コードをフォーマットします:
cargo fmt --all
コード品質のチェック
clippyコンポーネントをインストールします:
rustup component add clippy
clippyチェックを実行します:
cargo clippy --all-targets --workspace -- -D warnings
Goコードのチェック
horaemetaコンポーネントのコードチェックを実行します:
make check
統合テスト
HoraeDBには、integration_tests/ディレクトリに完全な統合テストスイートが含まれています。これらのテストはSQLレベルで機能を検証し、ユーザーのクエリ実行に影響を与える可能性のある変更はすべて統合テストでカバーされる必要があります。
統合テストはシナリオごとに編成されており、特定機能のSQLテストは同じファイルに配置されます。例えば:
top_k.sqlはTopK演算子をテストするために使用されますlimit.sqlはLIMIT関数をテストするために使用されます
統合テストを実行します:
# すべての環境
make run
# ローカル環境のみ
make run-local
# クラスタ環境のみ
make run-cluster
PR提出後の作業
PRを提出した後、以下の作業を行う必要があります:
- すべてのCIステータスチェックがパスし、PRが緑色表示されていることを確認する
- ステータスチェックが赤色表示で理由が不明な場合は、PRで助けを求める
- チームメンバーによるPRレビューを数日待つ
貢献の提案
初心者向けの貢献分野
- ドキュメントの改善と翻訳
- 簡単なバグ修正
- テストケースの追加
- コードコメントの改善
上級者向けの貢献方向
- パフォーマンスの最適化
- 新機能の開発
- アーキテクチャの改善
- エコシステムツールの開発
コミュニティへの参加
HoraeDBコミュニティへの参加は、コード貢献に限定されません。以下のような活動も含まれます:
- 他のユーザーの質問に答える
- 技術的な議論に参加する
- 使用経験を共有する
- プロジェクトを宣伝する
コミュニティ活動に積極的に参加することで、技術レベルを向上させると同時に、同じ志を持つ開発者と出会い、時系列データベース技術の発展に貢献することができます。
覚えておきましょう:どのような貢献も、その大きさにかかわらず、プロジェクトの発展にとって極めて重要です! 🌟
Apache HoraeDB (incubating) は高性能で分散型のクラウドネイティブ時系列データベースです。プロジェクトのアドレス: https://gitcode.com/gh_mirrors/hor/horaedb