Contribute
Installation
インストールにはNode.jsが必要です
git clone https://github.com/azu/JavaScript-Plugin-Architecture.git
cd JavaScript-Plugin-Architecture
npm install
Usage
この書籍はHonKitを使い書かれています。
表示の確認
npm start
でHonKitのローカルサーバを立ち上げて表示を確認できます。
npm start
テスト
npm test
でコードや文章の単語チェックを行えます
npm test
文章カバレッジ
textlintとtextlint-formatter-codecovを使って出してる文章に対するカバレッジ
100%を理想的目標として、それに対する現実的な値をカバレッジの%として表現しています。
現在の文章カバレッジは次のコマンドでも確認できます。
npm run textlint:coverage
Contributeのやりかた
この書籍ではJavaScriptにおけるプラグインアーキテクチャを色々なライブラリやツールを元に紹介する形をとっています。
Contributeは大きく分けて、既存の文章の修正や執筆とProposalの提案などがあります。
文章の修正
typoなどを見つけた場合は、1文字の修正からでも問題無いので、Pull Requestを送っていただけると助かります。
表記揺れを発見した場合は単純にIssueを立ててもらうか、Pull Requestでの修正をいただけると嬉しいです。
また、この書籍ではtest/prh.ymlで定義した辞書を使い表記揺れを辞書でテストできるようにしています。辞書による表記揺れの検知が可能なら、そちらも合わせてご指摘いただけるとありがたいです。
新しいプラグインの仕組みを書く
この書籍に載せたいプラグインアーキテクチャがある場合は、Issueを立ててください。
たとえば、XXXというライブラリ/ツールのアーキテクチャについてのIssueを立てる場合、次のようなことが1行とかでもいいので書かれているとよさそうです。
仕組みについて調べるのが大変な場合は、あとで調べれば問題ないため空欄で問題ありません。 JavaScriptはとにかく柔軟な言語なので、こういうプラグインの形式を取ってるというのを知らせるだけでも有用だと思います。
新しいプラグインの仕組みについて書く場合は、次のテンプレートを参照してください。
# XXXのアーキテクチャ
## どう書ける?
- 実際のコード例
## どういう仕組み?
- prototypeを拡張しているなど具体的な仕組み
- その機構のコードへのリンク
- その仕組みやプラグインについてドキュメントへのリンク
## どういうことに向いている?
- どういう用途で使われてる(ユースケース)
- 変換する毎にファイルとして吐き出さないので、高速に複数の変換をするのに向いている等
## どういうことに向いていない?
- 変換の仕組み上書き換え等を行うプラグインを扱いにくい等
## この仕組みを使っているもの
- XXX以外にも同様の仕組みを使っているものがあるなら
----
## チェックリスト
- [ ] どう書ける?
- [ ] どういう仕組み?
- [ ] どういうことに向いている?
- [ ] どういうことに向いていない?
- [ ] この仕組みを使っているもの
- [ ] 実装してみよう
- [ ] エコシステム
以下からこのテンプレートで使ったIssueを立てることができます。
Proposalの具体例
現在あるProposal一覧を参考にしてみるとよいかもしれません。
テスト
$ npm test
を実行するとコードや文章に対するテストが実行されます。
npm test
文章はtextlintによる単語のチェックが行われます。
コミットメッセージ
AngularJSのGit Commit Guidelinesをベースとしています。
次のような形で1行目に概要、3行目から本文、最後に関連するIssue(任意)を書きます。
feat(ngInclude): add template url parameter to events
The `src` (i.e. the url of the template to load) is now provided to the
`$includeContentRequested`, `$includeContentLoaded` and `$includeContentError`
events.
Closes #8453
Closes #8454
scope commit title
commit type / /
\ | |
feat(ngInclude): add template url parameter to events
body -> The 'src` (i.e. the url of the template to load) is now provided to the
`$includeContentRequested`, `$includeContentLoaded` and `$includeContentError`
events.
referenced -> Closes #8453
issues Closes #8454
1行のfeat
やfix
といったcommit typeは、迷ったらとりあえずchore
と書いて、scope
も省略して問題ないので次のような形でも問題ありません。
chore: コミットメッセージ
このコミットメッセージの規約はconventional-changelogによる自動生成のためでもありますが、取り込むときに調整できるので無視してもらっても問題はありません。
以下を見てみるとよいかもしれません。