Contribution Guide
- Bug Reports
- Support Questions
- Which Branch?
- Compiled Assets
- AI-Generated Contributions
- Security Vulnerabilities
- Coding Style
- Code of Conduct
Bug Reports
積極的なコラボレーションを促進するため、Laravel では問題に対処するプルリクエストの作成を強く推奨しており、GitHub issue の作成は推奨していません。ファーストパーティパッケージの大半では、GitHub issue を無効にしています。
問題を見つけた場合は、その問題に対処するプルリクエストを作成してください。プルリクエストにはタイトルと、問題およびその解決方法を明確に説明する内容を含めてください。また、関連する情報をできるだけ多く添え、問題を示すコードサンプルも含めてください。プルリクエストの目的は、あなたや他の人が問題を理解し、修正を検証しやすくすることです。
問題を修正する方法がわからない場合は、コーディングエージェントに問題の内容を説明し、それを使ってプルリクエストを試みてください。
プルリクエストは「ready for review」とマークされていて(「draft」状態ではなく)、新機能に対するすべてのテストが成功している場合にのみレビューします。「draft」状態のまま放置されている非アクティブなプルリクエストは、数日後にクローズします。
Laravel のソース コードは GitHub で管理されており、Laravel プロジェクトごとにリポジトリがあります。
- Laravel AI SDK
- Laravel Application
- Laravel Art
- Laravel Boost
- Laravel Documentation
- Laravel Dusk
- Laravel Cashier Stripe
- Laravel Cashier Paddle
- Laravel Echo
- Laravel Envoy
- Laravel Folio
- Laravel Framework
- Laravel Horizon
- Laravel Passport
- Laravel Pennant
- Laravel Pint
- Laravel Prompts
- Laravel Reverb
- Laravel Sail
- Laravel Sanctum
- Laravel Scout
- Laravel Socialite
- Laravel Telescope
- Laravel Livewire Starter Kit
- Laravel React Starter Kit
- Laravel Svelte Starter Kit
- Laravel Vue Starter Kit
Support Questions
Laravel の GitHub 問題トラッカーは、Laravel のヘルプやサポートを提供することを目的としたものではありません。代わりに、次のいずれかのチャネルを使用してください。
Which Branch?
すべてのバグ修正は、バグ修正をサポートする最新バージョン (現在 13.x) に送信する必要があります。バグ修正は、今後のリリースにのみ存在する機能を修正するものでない限り、master ブランチには決して送信しないでください。
現在のリリースと完全に下位互換性がある、マイナー機能は、最新の安定したブランチ (現在 13.x) に送信される場合があります。
主要な新機能または重大な変更を伴う機能は、次のリリースが含まれる master ブランチに常に送信する必要があります。
Compiled Assets
laravel/laravel リポジトリの resources/css または resources/js 内のほとんどのファイルなど、コンパイル済みファイルに影響を与える変更を送信する場合は、コンパイル済みファイルをコミットしないでください。サイズが大きいため、現実的にはメンテナがレビューすることはできません。これは、悪意のあるコードを Laravel に挿入する方法として悪用される可能性があります。これを防御的に防ぐために、すべてのコンパイル済みファイルは Laravel メンテナによって生成およびコミットされます。
AI-Generated Contributions
Laravel に送られるすべてのプルリクエストに感謝します。ただし、十分な人間によるレビューと検討を経ず、主に AI が生成した大規模な貢献は受け付けられません。
フレームワークへの大規模または複雑なコントリビューションを支援するために AI ツールを使用する場合、生成されたコードを提出する前に、必ず自分自身で十分にレビューし、テストし、内容を理解してください。
プルリクエストの説明は、貢献者自身がすべて記述しなければなりません。AIが生成した説明を含むプルリクエストはクローズします。
完全に AI によって生成された問題やプル リクエストを大量に開くことは許容されません。 このようなプル リクエストはレビューなしで閉じられ、投稿したユーザーはリポジトリからブロックされる場合があります。
コントリビューターには、既存のコードベースに慣れ、コミュニティに参加し、解決しようとしている問題についての自身の理解と慎重な検討を反映したプル リクエストを送信することをお勧めします。
Security Vulnerabilities
Laravel 内でセキュリティ脆弱性を発見した場合は、[email protected] のセキュリティチームまでメールでご連絡ください。すべてのセキュリティ脆弱性は速やかに対応されます。
Coding Style
Laravel は、PSR-2 コーディング標準と PSR-4 オートロード標準に従っています。
PHPDoc
以下は、有効な Laravel ドキュメント ブロックの例です。 @param 属性の後には 2 つのスペース、引数の型、さらに 2 つのスペース、そして最後に変数名が続くことに注意してください。
/**
* Register a binding with the container.
*
* @param string|array $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
*
* @throws \Exception
*/
public function bind($abstract, $concrete = null, $shared = false)
{
// ...
}
@param 属性または @return 属性がネイティブ タイプの使用により冗長である場合、それらは削除できます。
/**
* Execute the job.
* [tl! remove]
* @return void [tl! remove]
*/
public function handle(AudioProcessor $processor): void
{
// ...
}
ただし、ネイティブ タイプがジェネリックの場合は、@param または @return 属性を使用してジェネリック タイプを指定してください。
/**
* Get the attachments for the message.
* [tl! add]
* @return array<int, \Illuminate\Mail\Mailables\Attachment> [tl! add]
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}
StyleCI
コードのスタイルが完璧でなくても心配する必要はありません。 StyleCI は、プルリクエストがマージされた後、スタイル修正を自動的に Laravel リポジトリにマージします。これにより、コード スタイルではなく、投稿の内容に集中できるようになります。
Code of Conduct
Laravel の行動規範は、Ruby の行動規範から派生しています。行動規範の違反は、Taylor Otwell ([email protected]) に報告される場合があります。
- 参加者は、異なる意見に対して寛容である必要があります。
- 参加者は、発言や行動に個人攻撃や他者を中傷する発言が含まれないようにしてください。
- 他者の発言や行動を解釈する際は、常に善意に基づくものと考えてください。
- 合理的にハラスメントとみなされる行為は許容されません。