Amplify CLIにバグ報告をしてコントリビュートしてみる

こんにちは。「[AWS Amplify Advent Calendar 2020](https://qiita.com/advent-calendar/2020/amplify)」の7日目です。

AWS AmplifyはAWSのプロダクトとしてOSS（オープンソースソフトウェア）なため、ソースコードは公開されておりGitHub上のIssueとして自由にバグレポート、機能の提案も自由に行うことができます。

本エントリではAWS Amplifyの機能の1つであるAmplify CLIにフォーカスして、どのようにコントリビューションすることができるのか、その入り口としてバグ報告をすることによる貢献のやり方を紹介していきます。

## Amplify CLIとは

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241955/074858e3-f7ef-66a5-f05b-339da6b177ff.png)

AWS Amplifyには大枠で2つに分けられており「Amplify フレームワーク」と「Amplify コンソール」があります。Amplify フレームワークはその中でも「Amplify CLI」、「Amplify ライブラリ」、「Amplify UIコンポーネント」の3つの機能で構成されており、Amplify CLIの役割はアプリの開発において必要となるバックエンドの環境をコマンドラインを通して作成することができます。

詳しくは「AWS Amplify Advent Calendar 2020」の1日目で @yuukiyo
 が書いてくれている「[2020年のAmplify進化の軌跡](https://qiita.com/yuukiyo/items/69012f7a610edda4cdfc)」も非常に参考になるのでそちらもご覧ください。

## コントリビューションするには

https://github.com/aws-amplify/amplify-cli/blob/master/CONTRIBUTING.md

基本的にはここに手順がまとまっています。

## バグレポートを作成する

`npm install -g @aws-amplify/cli` が完了したのでコマンドライン上でamplifyコマンドが使えるようになりました！ですが

「ドキュメントを読んでも想定通りの挙動にならず調べても前例がなさそう・・・😢」

そんなときにはバグレポートを作成してみましょう。

前例が無いかを確認しても不明な問題が起きているのであれば世界中でAWS Amplifyを使っている他のユーザーのためにも、問題を解決したい自分のためにもコミュニティに報告をすることで更により良いAWS Amplifyに繋がっていきます。もちろんOSSなので誰にでも報告する権利があります、安心して問題となっている事象を登録していきましょう。

### Issueを確認してみよう

https://github.com/aws-amplify/amplify-cli/issues

Issueというのは、GitHub上で公開されているソフトウェアに対する問題提起、バグレポート、機能追加の要望などを単位の1つとして扱うものです。上記URLにアクセスするとこのように様々なタグ付けされたIssueの一覧を確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241955/9829f224-bd3d-2c24-7b96-23091f3fef24.png)

#### Issueのタグの種類

オープンになってるIssueとして100件を超えるタグのラベルのみ抜粋しました。これらのタグに絞ってIssueを眺めるだけでも様々な情報が手に入りそうですね。

| タグ | 説明 |
| --- | --- |
| [🛠enhancement](https://github.com/aws-amplify/amplify-cli/labels/enhancement) | 機能開発もしくは、要望 |
| [✏️feature-request](https://github.com/aws-amplify/amplify-cli/labels/feature-requestt) | 新機能の要望 |
| [🧐pending-review](https://github.com/aws-amplify/amplify-cli/labels/pending-review) | AWS Amplifyコアチームによるレビュー中となっているもの |
| [🐛bug](https://github.com/aws-amplify/amplify-cli/labels/bug) | バグレポート |

### バグレポートのIssueを作成してみよう

「New issue」と書かれたボタンを選択します。その後にIssueの種類がどれなのかを選択肢の中から選ぶことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241955/63df6221-4993-5b4f-789c-abb56643a2ec.png)

バグレポートを報告したいので、**Bug reportの「Get started」**ボタンを選択します。すると最初からテンプレートの文章がIssueの内容として設定されているため、報告したい内容に合わせて書き換えていきます。

### バグレポートのフォーマット

**Describe the bug**

どんなバグが発生したか分かりやすく説明をします

**Amplify CLI Version**

バグが発生したAmplify CLIのバージョンを書きましょう

```
$ amplify -v
> 4.2.0
```

**To Reproduce**

バグが発生した手順を書きましょう。1 ... 、 2 ... といった形で書かれていると開発メンバーが原因を特定しやすくなるので再現性があるように書いておくことで早い解決に繋がっていきます。

**Expected behavior**

本来この問題が起きていない場合の理想の結果を書きます。

**Screenshots**

問題の説明に役に立つスクリーンショットがある場合は追加しましょう。

**Desktop**

利用してる環境についてに記載します。

- OS
    Amplify CLIを利用しているコンピュータのOSの種類
    `e.g. Mac / Windows / Ubuntu`

- Node Version

    Amplify CLIを利用しているNodeのバージョン

    ```
    $ node -v
    > v13.2.0
    ```

**Additional context**

これまでの他に関係する問題があって伝えたいことがあれば共有しましょう。

### 完了したら登録してみよう

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/241955/1b23d316-db0f-21b8-69f0-49adf30d3ec1.png)

このあとは問題に取り組むメンバーが対応することで問題の修正が行われていきます。登録お疲れ様でした👏

## おわりに

ここではバグレポートを出す基本のフローのみを紹介していたため、他のことについては扱っていません。ですが心配ありません！オープンソースプロジェクトに関わるにはあらゆる方法があります。そして少しの善意があれば目の前で起きた経験を最大限活かす事ができるようになります。

なので必ずしもコントリビュートとはコードを書くこととイコールではなく、この記事で紹介したようなことを1つするだけでもAWS Amplifyはどんどん進化していきます！みんなでよりよいプロダクトにしていくように活動の一歩を踏み出していきましょう！

## AWS Amplify JapanコミュニティのSlackができました

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">日本語のAmplify関連リソースリンク集にもSlackのリンクを追加しました :) <a href="https://t.co/1yYuX9Y92x">https://t.co/1yYuX9Y92x</a> <a href="https://twitter.com/hashtag/AWSAmplifyJP?src=hash&amp;ref_src=twsrc%5Etfw">#AWSAmplifyJP</a></p>&mdash; Daijiro Wachi☔ (@watilde) <a href="https://twitter.com/watilde/status/1332296709758623746?ref_src=twsrc%5Etfw">November 27, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

このたびAWS Amplify Japanコミュニティとしてユーザー同士でやりとりが出来るSlackが開設されました :clap:

活発にやり取りしたい方は是非ご参加ください！

[こちらから参加できます](https://join.slack.com/t/aws-amplify-jp/shared_invite/zt-j960fgev-77L_1RHo~sxMz03X4CyHVw)