コンテンツにスキップ

貢献ガイド

こんにちは!ESLint Stylisticへの貢献に関心をお持ちいただき、大変嬉しく思います!貢献を提出する前に、以下のガイドをお読みください。

バグ修正や機能実装には、StackBlitz Codeflowを利用できます。問題を修正するためのPRを開始する Codeflow ボタンがイシューに表示されます。ローカルでブランチをチェックアウトする必要なくレビューするためのボタンも PR に表示されます。Codeflow を使用すると、Vite リポジトリがオンラインエディタにクローンされ、変更をテストする準備が整ったウォッチモードで Vite パッケージがビルドされます。詳細については、Codeflow ドキュメントを参照してください。

Open in Codeflow

コードへの貢献

コードに取り組んで PR を送る前に、既存のイシューを確認するか、新しいイシューを最初に作成することをお勧めします。これにより、メンテナーとコミュニティが作業に取り組む前に方向性を議論する機会が得られ、最終的にマージされない可能性のあるものに時間を費やすことを避けることができます。

バグの修正

このプロジェクトでは、コードの品質を確保するために、テストとコードカバレッジを非常に重視しています。バグを修正する場合は、修正しているバグをカバーするテストケースを追加してください。テストファイルは、ルール実装と同じフォルダに *.test.ts 拡張子で配置されています。テストの実行の詳細をご覧ください。

新しいルールの提案

より多くのスタイルに関する問題をカバーする新しいルールの追加には前向きですが、新しいルールの追加には非常に慎重です。このプロジェクトのルールの数を管理し、保守性を維持したいと考えています。

一般的に、最初にルールを実装し、独自のプラグインとして配布することをお勧めします。これにより、あなたとコミュニティがルールを使用してフィードバックを収集できます。ルールが好評で、ルールが一般的に必要な場合は、ESLint Stylistic に追加するかどうかを議論できます。

ローカルセットアップ

ローカルで開発するには、このリポジトリをフォークし、ローカルマシンにクローンしてください。このリポジトリは、pnpm ワークスペースを使用するモノレポです。依存関係のインストールとリンクに使用するパッケージマネージャは、pnpm である必要があります。

このプロジェクトを開発およびテストするには

  1. ルートフォルダで pnpm i を実行します。

  2. ルートフォルダで pnpm run build を実行します。

  3. コードに変更を加えたら、pnpm run test を再度実行してプロジェクトをビルドします。

pnpm v8 を使用しています。異なるバージョンの pnpm で複数のプロジェクトに取り組んでいる場合は、corepack enable を実行して Corepack を有効にすることをお勧めします。

テストの実行

単体テスト

各ルールには、実装とともに *.test.ts テストファイルがあります。テストは、Vitest を使用して実行されます。

  • pnpm test は、デフォルトですべての単体テストを実行します。

  • pnpm test [rule-name] は、特定のルールのフィルタリングされたテストを実行します。

結合テスト

単体テストの他に、一連のフィクスチャに対して ESLint を実行する高レベルの結合テストも提供しています。

  • pnpm run test:fixtures は、フィクスチャテストを実行します。

フィクスチャテストは、スナップショットを使用して、出力の一貫性を確保します。出力がスナップショットと一致しない場合、テストは失敗します。変更が予期される場合は、テストの実行時に u キーを渡してスナップショットを更新できます。

Linting

プロジェクトでは、ESLint とそれ自体を使用してコードをリントおよびフォーマットします。pnpm run lint --fix を実行して、コードをリントおよび修正できます。

MITライセンスの下でリリースされています。