Black Lives Matter(黒人の命は大切だ)

貢献

Gruntプロジェクトは複数あります。

  • grunt - メインのGruntプロジェクト
  • grunt-init - スタンドアロンのgrunt-initプロジェクトスキャフォールディングツール
  • gruntjs.com - gruntjs.comウェブサイト
  • grunt-contribコレクション - すべてのGrunt "contrib"プラグインのコレクション

さらに、個々のgrunt-contribプラグインは、gruntjs組織のホームページにリストされている個別のリポジトリです。各リポジトリには独自のメンテナーがいます。最近のコミットとプッシュを見ることで、メンテナーを簡単に見つけることができます。興味のあるリポジトリでIssueを作成し、メンテナーの1人を@メンションして開始してください。

貢献者ライセンス契約

他のユーザーへのサポート提供以外のほとんどの貢献形態では、jQuery Foundationとの貢献者ライセンス契約(略して「CLA」)に署名して提出する必要があります。

要約すると、CLAは、修正やドキュメントを提供する場合、提出するコードを所有し、jQuery Foundationがそのコードを他の人にライセンスできることを主張するものです。

CLAの送信は1回限りのもので、完了すれば、すべてのjQuery Foundationプロジェクトへの貢献を開始できます!ただし、効果を発揮するには、貢献者とコミッターがどのように作業を調整しているかについて少し知る必要があるため、まずは参加して質問をすることが最初のステップです。

CLAの詳細については、Alex Russellの「なぜこれに署名する必要があるのですか?」をご覧ください。

貢献したいですか?

貢献したいが、どこから始めればよいかわからない場合は、これをご覧ください。以下にリンクされているIssueは、プルリクエストが必要としてマークされています。これは、修正するためにプルリクエストが必要であることを意味します。これらのIssueからいずれかを選択し、作業している場合は必ずコメントしてください。

新しいバージョンの公開

grunt-contrib-*プラグインの新しいバージョンを公開するには、次の手順に従います

  • プラグインのGitHubページを確認して、Travis CIを通過していることを確認します。
  • プラグインディレクトリにcdします。
  • masterブランチから最新の変更をgit pullします。
  • rm -rf node_modules古いノードモジュールを削除します。
  • npm installを実行して、最新バージョンのノードモジュールを取得します。
  • npm testを実行し、すべてのテストがローカルでパスすることを確認します。
  • package.jsonのバージョンを上げます
  • CHANGELOG.mdを更新します
  • プラグインディレクトリでgruntを実行します。これにより、新しいREADMEが生成されます。
  • changelog、package.json、およびREADMEの変更をコミットします。
  • 新しいバージョンの新しいgitタグを作成します。タグには次の形式を使用します:vX.Y.Z。(v0.1.13など)
  • 変更をmasterにプッシュし、タグをプラグインリポジトリにプッシュします。
  • npmに公開します:npm publish .npm publishへのアクセス権がない場合は、コアコントリビューターの1人に公開を依頼してください。

コード以外の貢献

コードを書きたくない場合でも、プロジェクトに貢献できます!

Issueの報告

期待どおりに動作しない場合は、ドキュメント、特にはじめにガイドをお読みください。誰かとチャットしたい場合は、IRCのdiscussing-gruntにアクセスして、そこで質問してください。

ドキュメントで説明されていない質問がある場合、またはバグを報告する場合は、適切なIssueトラッカーに報告するのが最善の方法です。

  • grunt、grunt-init、grunt-lib-???モジュール、または特定のgrunt-contrib-???プラグインに問題がある場合
    • そのプロジェクトのIssueトラッカーにIssueを報告してください。
  • 新しいプラグインを提供したい場合
  • ウェブサイトに問題がある場合
  • 上記のいずれにも当てはまらない問題がある場合

問題の簡素化

問題を再現するために必要な最小限のコードにコードを削減してみてください。これにより、問題の分離と修正がはるかに簡単(そしてはるかに高速)になります。

問題の説明

問題を再現できない場合、修正できません。問題を再現するために必要な手順を正確にリストしてください。OS、Node.js、gruntなどのバージョンを含めてください。関連するログまたはサンプルコードを含めてください。

gruntについて議論する

一般的な議論の場合はfreenode: IRC #gruntチャネルに、コアおよびプラグイン開発の議論の場合は#grunt-devチャネルに参加してください。ボットなどがあります。

プライベートメッセージは送信しないでください。

gruntの変更

まず、最新のNode.jsnpmがインストールされていることを確認してください。

  1. grunt-cliがインストールされていることを確認します(詳細については、はじめにガイドを参照してください)
  2. リポジトリをフォークしてクローンします。
  3. masterブランチをチェックアウトします(ほとんどのgrunt / grunt-contrib開発はそこで行われます)。
  4. npm installを実行して、すべてのGrunt依存関係をインストールします。
  5. npm uninstall gruntを実行します。これにより、node_modulesにある追加のGruntが削除されます。npm issue 3958を参照してください
  6. gruntを実行して、Grunt gruntを実行します。

赤が表示されない場合は、準備完了です。変更を加えた後には必ずgruntを実行して、何も壊れていないことを確認してください。

プルリクエストの送信

  1. 新しいブランチを作成します。masterで直接作業しないでください。
  2. 行いたい変更の失敗するテストを追加します。 gruntを実行して、テストが失敗することを確認します。
  3. 修正します。
  4. gruntを実行して、テストに合格するかどうかを確認します。完了するまで手順2〜4を繰り返します。
  5. 変更を反映するようにドキュメントを更新します。
  6. フォークにプッシュしてプルリクエストを送信します。

構文

  • インデントはスペース2つです。タブはどこにも使用しないでください。文字列にタブ文字が必要な場合は、\tを使用します。
  • 末尾の空白は使用しないでください。ただし、改行を強制する必要があるmarkdownファイルは除きます。
  • 空白を過剰に使用しないでください。
  • varステートメントごとに1つの代入までです。
  • 文字列は二重引用符"ではなく、一重引用符'で区切ります。
  • ? :条件演算子または||&&論理演算子の「巧妙な」使用よりも、ifelseを優先します。
  • コメントは素晴らしいです。コード行の*前*に配置し、行の*末尾*には配置しないでください。
  • 疑問がある場合は、ソースですでに使用されている規則に従ってください。

README

すべてのgrunt-contrib-*プラグインは、grunt-contrib-internalを使用して、README.mdファイルとCONTRIBUTING.mdファイルを構築します。ソースファイルは、対応するdocs/フォルダーにあります。READMEの変更ログは、CHANGELOGファイルから生成されます。

READMEファイルに変更を送信する場合は、READMEを直接編集するのではなく、ソースファイルを編集してください。