# コミュニティガイド

Wailsのユーザ数は驚異的な速度で増えており、これを読んでいるあなたは、すでにコミュニティに参加する準備ができているかもしれません。 さあ... ようこそ!

## リソース

### 行動規範

[行動規範](./coc)は、私たちが参加する技術コミュニティを発展させていくための簡単なガイドになります。

### 最新情報の入手

- [公式Twitterアカウント](https://twitter.com/wailsapp)をフォローしてください。

### サポートを受ける

- [GitHub](https://github.com/wailsapp/wails) - バグの報告や機能のリクエストは、GitHubのイシューで行ってください。 その際、各リポジトリのイシューテンプレートで指定されているルールを順守してください。
- [Discord](https://discord.gg/JDdSxwjhGf) - Wailsの開発者たちが集ってリアルタイムにチャットをしている場所です。
- [QQ Group(中文)](https://qm.qq.com/cgi-bin/qm/qr?k=PmIURne5hFGNd7QWzW5qd6FV-INEjNJv&jump_from=webapi) - 中国の開発者がコミュニケーションをするためのWailsグループで、他の開発者に助けを求めることができます。

### エコシステムの探索

- [The Awesome Wails Page](https://github.com/wailsapp/awesome-wails) - 素晴らしい人によって公開された素晴らしいリソースを見つけてみましょう。

## 貢献方法

Wailsはオープンソースであり、コミュニティ主導のプロジェクトです。 プロジェクトへ貢献していただける皆さんを歓迎します。 このドキュメントは、プロジェクトや開発プロセスに精通したい人を対象としています。

プロジェクトへの貢献方法はたくさんあります:

- 新しい機能の開発
- バグの修正
- テスト
- 機能のドキュメント化
- チュートリアルやガイドの執筆
- イシュー上で他者を助ける + ディスカッションボード

それぞれの貢献方法について、各セクションで説明します。 まず初めに、[Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520)ディスカッションで自己紹介をしましょう。

### 新しい機能の開発

私たちは常に、Wailsへ新しい機能を組み込んでいき、プロジェクトでできることを増やしていきたいと考えています。 新しい機能を追加するプロセスは次のとおりです:

- "TODO"ラベルがついたenhancementチケットを選びます。 現時点での[バックログ](https://github.com/orgs/wailsapp/projects/1/views/1)から1つを選ぶことをお勧めしますが、何を選ぶかはあなた次第です。
- 開発を始める前に、チケットに以下の情報が含まれていることを確認してください:
  - 機能強化の目的
  - 機能強化の対象外となる範囲
  - 機能強化の対象となるプラットフォーム (特別な理由がない限り、ほぼすべての機能はクロスプラットフォーム対応でなければなりません)
- チケットにこれらの情報が含まれていない場合、チケットをオープンした人に、これらの情報をリクエストしてください。 プレースホルダーのチケットが作成され、より詳細な情報が必要となる場合もあります。
- あなたが当該チケットの機能を開発したい場合は、チケットにコメントをしてください。
- リポジトリをクローンし、`feature/<ticket_number>_<ticket_title>`の形式でブランチを作成してください。
- 新しい機能に関するドキュメントが必要となる場合がほとんどですので、変更の一環として、ドキュメントを追加または変更してください。
- 機能をテストする準備ができたら、プルリクエストのドラフトを作成してください。 プルリクエストの説明欄には、テストシナリオおよびチェックマーク付きのテストケースをリストアップしてください。これにより、何をテストすべきなのかを他の人が把握できるようになります。
- すべてのテストが完了したら、プルリクエストのステータスをドラフトから更新し、メッセージを残してください。

:::note
自分でチケットをオープンして作業することを止めはしませんが、すべての機能強化リクエストは、それが適切かどうかを審査されているという点に留意してください。 すべてのアイデアが採択されるわけでは無いため、まずは当該機能強化についてディスカッションすることを推奨します。
:::

:::warning
紐づくチケットが無い状態でオープンされたプルリクエストは、リジェクトされることがあります。
:::

### バグの修正

バグを修正するプロセスは次のとおりです:

- 現時点での[バックログ](https://github.com/orgs/wailsapp/projects/1/views/1)を確認し、修正するつもりのバグを選んでください。
- 開発を始める前に、チケットに以下の情報が含まれていることを確認してください:
- 影響のあるプラットフォームといった、イシューの対象範囲。
- バグの再現手順。 内容によっては、Wailsの問題ではないバグだったということもあるため、最小限で再現可能な手順を報告し、あくまでWailsの問題であるということを、裏付けるように努めてください。
- `wails doctor`の出力内容。
- バグを再現できるテスト。
- チケットにこれらの情報が含まれていない場合、チケットをオープンした人に、これらの情報をリクエストしてください。
- 修正作業を実施する旨を、チケットにコメントしてください。
- リポジトリをクローンし、`bugfix/<ticket_number>_<ticket_title>`の命名形式でブランチを作成してください。
- 修正をテストする準備ができたら、プルリクエストのドラフトを作成してください。 プルリクエストの説明欄には、テストシナリオおよびチェックマーク付きのテストケースをリストアップしてください。これにより、何をテストすべきなのかを他の人が把握できるようになります。
- すべてのテストが完了したら、プルリクエストのステータスをドラフトから更新し、メッセージを残してください。

:::note
自分でチケットをオープンして作業することを止めはしませんが、あなたの修正アプローチには副作用が発生する可能性もあるため、どのようなバグ修正であっても、議論をするようにしてください。
:::

:::warning
紐づくチケットが無い状態でオープンされたプルリクエストは、リジェクトされることがあります。
:::

### テスト

テストは、プロジェクトの品質を保つために極めて重要なものです。 実際に、テストがプロジェクトに役立つ場面はいくつかあります:

- ローカルマシンでバグが再現するかどうかのテスト
- プルリクエストの内容が正しく動作するかを確認するテスト

誰かが報告しているバグが自身のローカルシステムでも再現するかどうかをテストした場合、`wails doctor`の出力結果を含めたテスト結果のコメントを、自由にチケットに追加してください。

プルリクエストをテストする場合、プルリクエストの説明欄にテストシナリオがリストアップされているかどうかを最初に確認してください。 リストアップされていない場合、プルリクエストをオープンした人に、テストシナリオを提供するように依頼してください。 有効なテストシナリオが定まったら、結果をプルリクエスト内で報告してください。

テストに関して、より詳細な情報やヘルプが必要な場合は、[Contributing to Wails](https://github.com/wailsapp/wails/discussions/1520)ディスカッションまたはslackで質問してください。

### ドキュメント

ご覧のウェブサイトは、プロジェクトのメインドキュメントサイトの役割も担っています。 しばしば、ドキュメントの内容は古くなっていることがあるため、多少の修正が必要になってきます。 また、内容がベストな品質となっていないドキュメントもいくつかあります。 ドキュメントを作成する作業は労力がかかるものであるため、これらへの貢献は大歓迎です。 ドキュメント化されていない機能はプロジェクトとしてまだ未完成である、と言っていいほど、ドキュメントはコードと同じくらい_重要なもの_です。

通常、ドキュメントの更新に関するチケットは作成しませんので、もし更新や文言修正が必要なドキュメントが存在する場合は、気兼ねなくプルリクエストを作成してください。 このサイトは、メインリポジトリの`website`ディレクトリ内に格納されています。 サイト制作には[Docusaurus](https://docusaurus.io/)というツールを使用しており、このツールを使うためのドキュメントやチュートリアルはたくさん用意されています。

自身のローカル環境にドキュメント作成環境を構築するには、次の手順を実施してください:

- [npmをインストール](https://docs.npmjs.com/cli/v8/configuring-npm/install)
- `cd website`
- `npm install`
- `npm run start`

上記の手順をすべて実施後、[`http://localhost:3000`](http://localhost:3000)へアクセスすると、サイトが表示されるはずです。 サイト内のテキストに変更を加えると、すぐにブラウザに変更が反映されます。

#### バージョン管理

ドキュメントにはバージョン管理システムを使用しており、"最新(次期バージョン)" のドキュメントには、直近のリリース以降に発生したすべての更新内容が記載されています。 また、直近リリース分とその1つ前のリリース分のドキュメントを保持するようにしています。

通常、リリース済みのドキュメントを更新する理由はないため、`versioned_docs`ディレクトリや`versioned_sidebars`ディレクトリは基本的に更新しません。

"次期バージョン"のドキュメントは`website/docs`ディレクトリ、バージョンに依存しないドキュメントは`src/pages`ディレクトリに存在します。 すべての更新は`website/docs`ディレクトリで実施してください。

#### 翻訳

Wailsプロジェクトのデフォルトドキュメントは英語です。 私たちは、"crowdin"というツールを使用してドキュメントを様々な言語に翻訳し、Webサイトに同期させています。 翻訳に貢献していただける場合は、[私たちのcrowdinプロジェクトに参加](https://crowdin.com/project/wails)してください。

##### 新しい言語の追加

ドキュメントに新しい言語を追加したい場合は、プロンプトに従って[イシューを作成](https://github.com/wailsapp/wails/issues/new?assignees=&labels=documentation&template=documentation.yml)してください。 管理者が確認し次第、"crowdin"に言語が追加され、翻訳をはじめることができます。

### 他者を助ける

困難に直面している他者を助けることは、プロジェクトにとって大きな貢献となります。 WailsのDiscordサーバでは、助けを求めている人が、チケットまたはメッセージを投稿しています。 曖昧な問題をより明確にしていただくだけでも、非常に助かります。 問題が議論されていき、最終的に解決されると、同じ問題に直面している人を助けるために、ガイドを作成する場合があります。

WailsのDiscordサーバに参加するには、[こちら](https://discord.gg/JDdSxwjhGf)をクリックしてください。

:::note

このドキュメントは書きかけの状態です。

:::
