貢献
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-init - 貢献ガイドラインはcontributing.mdに記載する必要があります
- grunt-contrib-jade - basedirオプションのサポートを追加
- grunt-init-gruntfile - package.jsonが生成されない
- grunt-contrib-coffee - processオプションをサポート
- grunt - --gruntfileパラメータが親ディレクトリで壊れている
- grunt-contrib-compress - bzip2サポートを追加
- grunt-contrib-jasmine - ロギングを強化
- grunt-contrib-less 複数のsrcファイルを持つソースマップ
新しいバージョンの公開
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人に公開を依頼してください。
コード以外の貢献
コードを書きたくない場合でも、プロジェクトに貢献できます!
- ドキュメントの更新と改善を送信できます。
- ドキュメントの一部である記事とガイドを送信します。
- StackOverflow、IRC、GitHubで質問に答えて、Gruntユーザーを支援します。
Issueの報告
期待どおりに動作しない場合は、ドキュメント、特にはじめにガイドをお読みください。誰かとチャットしたい場合は、IRCのdiscussing-gruntにアクセスして、そこで質問してください。
ドキュメントで説明されていない質問がある場合、またはバグを報告する場合は、適切なIssueトラッカーに報告するのが最善の方法です。
- grunt、grunt-init、grunt-lib-???モジュール、または特定のgrunt-contrib-???プラグインに問題がある場合
- そのプロジェクトのIssueトラッカーにIssueを報告してください。
- 新しいプラグインを提供したい場合
- grunt-contribコレクションIssueトラッカーにIssueを報告してください。すべてのプラグインを受け入れるわけではありませんが、あなたのプラグインは確実に検討します。
- ウェブサイトに問題がある場合
- gruntjs.comウェブサイトIssueトラッカーにIssueを報告してください。
- 上記のいずれにも当てはまらない問題がある場合
- grunt IssueトラッカーにIssueを報告し、そこに報告する理由をお知らせください。
問題の簡素化
問題を再現するために必要な最小限のコードにコードを削減してみてください。これにより、問題の分離と修正がはるかに簡単(そしてはるかに高速)になります。
問題の説明
問題を再現できない場合、修正できません。問題を再現するために必要な手順を正確にリストしてください。OS、Node.js、gruntなどのバージョンを含めてください。関連するログまたはサンプルコードを含めてください。
gruntについて議論する
一般的な議論の場合はfreenode: IRC #gruntチャネルに、コアおよびプラグイン開発の議論の場合は#grunt-devチャネルに参加してください。ボットなどがあります。
プライベートメッセージは送信しないでください。
gruntの変更
まず、最新のNode.jsとnpmがインストールされていることを確認してください。
- grunt-cliがインストールされていることを確認します(詳細については、はじめにガイドを参照してください)
- リポジトリをフォークしてクローンします。
- masterブランチをチェックアウトします(ほとんどのgrunt / grunt-contrib開発はそこで行われます)。
npm install
を実行して、すべてのGrunt依存関係をインストールします。npm uninstall grunt
を実行します。これにより、node_modules
にある追加のGruntが削除されます。npm issue 3958を参照してくださいgrunt
を実行して、Grunt gruntを実行します。
赤が表示されない場合は、準備完了です。変更を加えた後には必ずgrunt
を実行して、何も壊れていないことを確認してください。
プルリクエストの送信
- 新しいブランチを作成します。
master
で直接作業しないでください。 - 行いたい変更の失敗するテストを追加します。
grunt
を実行して、テストが失敗することを確認します。 - 修正します。
grunt
を実行して、テストに合格するかどうかを確認します。完了するまで手順2〜4を繰り返します。- 変更を反映するようにドキュメントを更新します。
- フォークにプッシュしてプルリクエストを送信します。
構文
- インデントはスペース2つです。タブはどこにも使用しないでください。文字列にタブ文字が必要な場合は、
\t
を使用します。 - 末尾の空白は使用しないでください。ただし、改行を強制する必要があるmarkdownファイルは除きます。
- 空白を過剰に使用しないでください。
var
ステートメントごとに1つの代入までです。- 文字列は二重引用符
"
ではなく、一重引用符'
で区切ります。 ? :
条件演算子または||
、&&
論理演算子の「巧妙な」使用よりも、if
とelse
を優先します。- コメントは素晴らしいです。コード行の*前*に配置し、行の*末尾*には配置しないでください。
- 疑問がある場合は、ソースですでに使用されている規則に従ってください。
README
すべてのgrunt-contrib-*プラグインは、grunt-contrib-internalを使用して、README.md
ファイルとCONTRIBUTING.md
ファイルを構築します。ソースファイルは、対応するdocs/
フォルダーにあります。READMEの変更ログは、CHANGELOG
ファイルから生成されます。
READMEファイルに変更を送信する場合は、READMEを直接編集するのではなく、ソースファイルを編集してください。