StationAPIへのコントリビュートに興味を持っていただきありがとうございます!
StationAPIは日本の鉄道駅情報を提供するgRPC APIです。コード・データの両面でコントリビューションを歓迎しています。
- Rust (stable toolchain):
rustup default stable - protoc (Protocol Buffers コンパイラ):
sudo apt-get install protobuf-compiler - PostgreSQL 15+ (
pg_trgm,btree_gist拡張が必要) - Docker / Docker Compose (推奨)
# Docker Composeで起動(PostgreSQL + API)
docker compose up
# もしくは手動で起動
# 1. PostgreSQLを準備し、DATABASE_URLを設定
# 2. APIを起動
cargo run -p stationapiPostgreSQLが利用できない環境では、環境変数を設定してビルドできます:
SQLX_OFFLINE=true cargo build- 既存のIssueを確認し、重複がないか確認してください
- 新しい機能やバグ修正に取り組む前に、Issueを作成して相談することをお勧めします
以下の命名規則に従ってブランチを作成してください:
| 種類 | プレフィックス | 例 |
|---|---|---|
| 新機能 | feature/ |
feature/add-new-rpc |
| バグ修正 | fix/ |
fix/station-query-error |
| データ変更 | data/ |
data/update-numbering |
| 雑務 | chore/ |
chore/update-deps |
| リリース | release/ |
release/v1.2.0 |
- Rustの標準的なコーディング規約に従ってください
- 新しいRPCを追加する場合は AGENTS.md のアーキテクチャパターンを参照してください
- データの構造については data/README.md を参照してください
- CSVファイルは
data/ディレクトリにN!table.csvの命名規則で配置されています - データバリデーションは
cargo run -p data_validatorで実行できます
コミットする前に以下のチェックを必ず実行してください:
# フォーマットチェック
cargo fmt --all -- --check
# Lintチェック
SQLX_OFFLINE=true cargo clippy -- -D warnings
# テスト
SQLX_OFFLINE=true cargo testdevブランチに向けてPRを作成してください- PRテンプレートに従って説明を記入してください
- 関連するIssueがあればリンクしてください
鉄道データの修正・追加は特に歓迎しています。詳細は data/README.md を参照してください。
- Discord コミュニティで質問やディスカッションができます
- Issueでの質問も歓迎しています
コントリビューションは本プロジェクトのライセンスに従います。