PR のルールとポリシー
PR に関するルール
- 小さめの PR を好む。
- 書き込み権限があれば Graphite でスタックされた PR を試すとよいです。十分貢献すると権限が付与されます。
- アーキテクチャ変更を含む PR では、先に Issue または Discussion を作成してください。
開発ポリシー
- データ指向設計を採用する。
- API はシンプルで、ドキュメントが揃っていること。
- 他プロジェクト由来の実装には必ず出典を示す。
パフォーマンス
- ランタイム・コンパイルを含む性能問題はすべてバグとみなす。
- Rust Performance Book の指針に従う。
regexクレートの利用は最小限に。イテレータや文字列メソッドを優先する。
- 開発フローや下流ツールへの影響を減らすため、コンパイル時間を抑える。
- サードパーティ依存を減らし、コンパイル速度と複雑さを抑える。
- コンパイルやバイナリサイズを悪化させる重いマクロ・ジェネリクス等は避ける。
- CI は約 3 分で完了する想定であり、劣化は修正が必要。
メンテナンス方針
- コードカバレッジを監視し、未使用コードに注意する。目標は約 99% カバレッジ。
- CI 時間を短縮して PR マージを加速する。現状 GitHub Actions は約 3 分。
- ドキュメントファースト。ドキュメントを真実の情報源にし、更新を維持し、同じ質問への繰り返し回答ではなくリンクを貼る。GitLab の handbook-first の考え方に近い。
- import の並び順は「遠いもの」から「近いもの」へ。
std- 外部クレート
- Oxc クレート
- 同一クレート内の
crate supermod
Conventional Commits
Conventional Commits に従います。
コミットには意図を伝えるための構造要素があります。
fix: バグ修正feat: 新機能- BREAKING CHANGE: 型やスコープのあとに
!を付け互換を壊す API 変更、例feat(parser)!: new feature - スコープはクレート名
- 型は
feat:、fix:、chore:、ci:、docs:、style:、refactor:、perf:、test:など
アクションの方針
Astral の価値観 より:
不確実さがあっても行動を優先する。議論を長引かせるより 実務的に動く ことを選び、許可を求めるより 事後の説明 を選ぶ。決定がはっきりしないとき、特に 取り消し可能 な決定ほど、決断力を重視する。
行動志向は無謀と同じではない。責任ある判断をし、曖昧さや既知の未知が残っていても 速やかに 実行することだ。