From d06a742ddc53cbccc1ec2eb3f5f51dceb09f4df7 Mon Sep 17 00:00:00 2001 From: tarepan Date: Sun, 10 Mar 2024 16:49:21 +0000 Subject: [PATCH 01/12] =?UTF-8?q?add:=20`README.md`=20=E3=81=A8=20`CONTRIB?= =?UTF-8?q?UTING.md`=20=E3=81=AE=E9=87=8D=E8=A4=87=E5=89=8A=E9=99=A4?= =?UTF-8?q?=E3=81=A8=E3=83=AA=E3=83=AA=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 4 -- README.md | 133 ++---------------------------------------------- 2 files changed, 4 insertions(+), 133 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6e7b0d12a..2cccbfeb2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,3 @@ -**このガイドラインは現在工事中です。** - -TODO: 重複部分を省く - ## 目次 * [インストール](#インストール) diff --git a/README.md b/README.md index 07a1149b7..e4c2c7b82 100644 --- a/README.md +++ b/README.md @@ -377,14 +377,7 @@ options: エンジンディレクトリ内にあるファイルを全て消去し、新しいものに置き換えてください。 -## 開発者・貢献者向けガイド - -### 貢献者の方へ - -Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、 -Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成してください。 - -[VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて、開発の議論や雑談を行っています。気軽にご参加ください。 +## 開発者向けガイド ### 環境構築 @@ -498,105 +491,6 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo - macOS: `/Users//Library/Application\ Support/` - Linux: `/home//.local/share/` -### ビルド - -この方法でビルドしたものは、リリースで公開されているものとは異なります。 -また、GPU で利用するには cuDNN や CUDA、DirectML などのライブラリが追加で必要となります。 - -```bash -python -m pip install -r requirements-dev.txt - -OUTPUT_LICENSE_JSON_PATH=licenses.json \ -bash build_util/create_venv_and_generate_licenses.bash - -# モックでビルドする場合 -pyinstaller --noconfirm run.spec - -# 製品版でビルドする場合 -CORE_MODEL_DIR_PATH="/path/to/core_model" \ -LIBCORE_PATH="/path/to/libcore" \ -LIBONNXRUNTIME_PATH="/path/to/libonnxruntime" \ -pyinstaller --noconfirm run.spec -``` - -#### Github Actions でビルド - -fork したリポジトリで Actions を ON にし、workflow_dispatch で`build.yml`を起動すればビルドできます。 -成果物は Release にアップロードされます。 - -### コードフォーマット - -このソフトウェアでは、リモートにプッシュする前にコードフォーマットを確認する仕組み(静的解析ツール)を利用できます。 -利用するには、開発に必要なライブラリのインストールに加えて、以下のコマンドを実行してください。 -プルリクエストを作成する際は、利用することを推奨します。 - -```bash -pre-commit install -t pre-push -``` - -エラーが出た際は、以下のコマンドで修正することが可能です。なお、完全に修正できるわけではないので注意してください。 - -```bash -pysen run format lint -``` - -### テスト - -```bash -python -m pytest -``` - -#### スナップショットの更新 - -```bash -python -m pytest --snapshot-update -``` - -### タイポチェック - -[typos](https://github.com/crate-ci/typos) を使ってタイポのチェックを行っています。 -[typos をインストール](https://github.com/crate-ci/typos#install) した後 - -```bash -typos -``` - -でタイポチェックを行えます。 -もし誤判定やチェックから除外すべきファイルがあれば -[設定ファイルの説明](https://github.com/crate-ci/typos#false-positives) に従って`_typos.toml`を編集してください。 - -### 依存関係 - -#### 更新 - -[Poetry](https://python-poetry.org/) を用いて依存ライブラリのバージョンを固定しています。 -以下のコマンドで操作できます: - -```bash -# パッケージを追加する場合 -poetry add `パッケージ名` -poetry add --group dev `パッケージ名` # 開発依存の追加 -poetry add --group test `パッケージ名` # テスト依存の追加 - -# パッケージをアップデートする場合 -poetry update `パッケージ名` -poetry update # 全部更新 - -# requirements.txtの更新 -poetry export --without-hashes -o requirements.txt # こちらを更新する場合は下3つも更新する必要があります。 -poetry export --without-hashes --with dev -o requirements-dev.txt -poetry export --without-hashes --with test -o requirements-test.txt -poetry export --without-hashes --with license -o requirements-license.txt -``` - -#### ライセンス - -依存ライブラリは「コアビルド時にリンクして一体化しても、コア部のコード非公開 OK」なライセンスを持つ必要があります。 -主要ライセンスの可否は以下の通りです。 - -- MIT/Apache/BSD-3: OK -- LGPL: OK (コアと動的分離されているため) -- GPL: NG (全関連コードの公開が必要なため) ### マルチエンジン機能に関して @@ -645,28 +539,9 @@ VOICEVOX エディターにうまく読み込ませられないときは、エ -### API ドキュメントの確認 - -[API ドキュメント](https://voicevox.github.io/voicevox_engine/api/)(実体は`docs/api/index.html`)は自動で更新されます。 -次のコマンドで API ドキュメントを手動で作成することができます。 - -```bash -PYTHONPATH=. python build_util/make_docs.py -``` - -### GitHub Actions - -#### Variables - -| name | description | -| :----------------- | :------------------ | -| DOCKERHUB_USERNAME | Docker Hub ユーザ名 | - -#### Secrets - -| name | description | -| :-------------- | :---------------------------------------------------------------------- | -| DOCKERHUB_TOKEN | [Docker Hub アクセストークン](https://hub.docker.com/settings/security) | +## 貢献者向けガイド +VOICEVOX ENGINE は皆さんのコントリビューションをお待ちしています! +詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。 ## 事例紹介 From 421ab44b0aebc0aa71ee5de4129347e8e1ddbb89 Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:21:38 +0000 Subject: [PATCH 02/12] =?UTF-8?q?refactor:=20`README.md`=20=E3=81=AE?= =?UTF-8?q?=E4=B8=80=E9=83=A8=E3=82=92=E6=A1=88=E5=86=85=E3=83=AA=E3=83=B3?= =?UTF-8?q?=E3=82=AF=E3=81=A7=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 42 +++++++----------------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 9aaab161c..8745a67ce 100644 --- a/README.md +++ b/README.md @@ -442,7 +442,7 @@ options: エンジンディレクトリ内にあるファイルを全て消去し、新しいものに置き換えてください。 -## 開発者向けガイド +## 開発者ガイド ### 環境構築 @@ -558,42 +558,14 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo ### ビルド -この方法でビルドしたものは、リリースで公開されているものとは異なります。 -また、GPU で利用するには cuDNN や CUDA、DirectML などのライブラリが追加で必要となります。 - -```bash -python -m pip install -r requirements-build.txt - -OUTPUT_LICENSE_JSON_PATH=licenses.json \ -bash build_util/create_venv_and_generate_licenses.bash - -# モックでビルドする場合 -pyinstaller --noconfirm run.spec - -# 製品版でビルドする場合 -CORE_MODEL_DIR_PATH="/path/to/core_model" \ -LIBCORE_PATH="/path/to/libcore" \ -LIBONNXRUNTIME_PATH="/path/to/libonnxruntime" \ -pyinstaller --noconfirm run.spec -``` - -TODO: Docker 版のビルド手順を GitHub Actions をベースに記述する - -#### Github Actions でビルド - -fork したリポジトリで Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動すればビルドできます。 -成果物は Release にアップロードされます。 +`pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりビルドが可能です。 +手順の詳細は [貢献者ガイド#ビルド](./CONTRIBUTING.md#ビルド) を御覧ください。 +ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。 ### 依存関係 -#### ライセンス - -依存ライブラリは「コアビルド時にリンクして一体化しても、コア部のコード非公開 OK」なライセンスを持つ必要があります。 -主要ライセンスの可否は以下の通りです。 - -- MIT/Apache/BSD-3: OK -- LGPL: OK (コアと動的分離されているため) -- GPL: NG (全関連コードの公開が必要なため) +依存関係は `poetry` で管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。 +詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。 ### マルチエンジン機能に関して @@ -642,7 +614,7 @@ VOICEVOX エディターにうまく読み込ませられないときは、エ -## 貢献者向けガイド +## 貢献者ガイド VOICEVOX ENGINE は皆さんのコントリビューションをお待ちしています! 詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。 From 19246e479b3adb37b75e009d069cb47e674172a5 Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:23:25 +0000 Subject: [PATCH 03/12] =?UTF-8?q?=E8=BF=BD=E5=8A=A0:=20=E7=9B=AE=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 8745a67ce..24e6ae32d 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,13 @@ コアは [VOICEVOX CORE](https://github.com/VOICEVOX/voicevox_core/) 、 全体構成は [こちら](https://github.com/VOICEVOX/voicevox/blob/main/docs/%E5%85%A8%E4%BD%93%E6%A7%8B%E6%88%90.md) に詳細があります。) +## 目次 +利用目的に合わせたガイドを以下から確認できます。 + +- [ユーザーガイド](#ユーザーガイド): 音声合成をしたい方向け +- [開発者ガイド](#開発者ガイド): コードを利用したい方向け +- [貢献者ガイド](#貢献者ガイド): ENGINEへコントリビュートしたい方向け + ## ユーザーガイド ### ダウンロード From c0f26c4732c1ac9b14b0bdcda2ad184a98d6625b Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:30:43 +0000 Subject: [PATCH 04/12] =?UTF-8?q?fix:=20Actions=20=E3=83=93=E3=83=AB?= =?UTF-8?q?=E3=83=89=E3=81=AE=E6=89=8B=E9=A0=86=E3=82=92=E5=BE=A9=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 24e6ae32d..c297f5ff1 100644 --- a/README.md +++ b/README.md @@ -565,8 +565,12 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo ### ビルド -`pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりビルドが可能です。 +`pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。 手順の詳細は [貢献者ガイド#ビルド](./CONTRIBUTING.md#ビルド) を御覧ください。 + +GitHub を用いる場合、fork したリポジトリで GitHub Actions を用いたビルドが可能です。 +Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動すればビルドできます。 +成果物は Release にアップロードされます。 ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。 ### 依存関係 From 8caf68fa4dc96323f46652cd277483de5be66726 Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:34:44 +0000 Subject: [PATCH 05/12] =?UTF-8?q?fix:=20=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=BB=E9=9D=99=E7=9A=84=E8=A7=A3=E6=9E=90=E3=81=AE=E6=89=8B?= =?UTF-8?q?=E9=A0=86=E3=82=92=E5=BE=A9=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index c297f5ff1..2e1c676d4 100644 --- a/README.md +++ b/README.md @@ -563,6 +563,11 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo - macOS: `/Users//Library/Application\ Support/` - Linux: `/home//.local/share/` +### テスト・静的解析 + +`pytest` を用いたテストと各種リンターを用いた静的解析が可能です。 +手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。 + ### ビルド `pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。 From bc13dcf7973b3c09ff2c4b52e732e54aa4b4a658 Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:36:50 +0000 Subject: [PATCH 06/12] =?UTF-8?q?fix:=20=E8=A8=80=E3=81=84=E5=9B=9E?= =?UTF-8?q?=E3=81=97=E3=82=92=E6=98=8E=E7=A2=BA=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e1c676d4..c1ed3ac66 100644 --- a/README.md +++ b/README.md @@ -573,7 +573,7 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo `pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。 手順の詳細は [貢献者ガイド#ビルド](./CONTRIBUTING.md#ビルド) を御覧ください。 -GitHub を用いる場合、fork したリポジトリで GitHub Actions を用いたビルドが可能です。 +GitHub を用いる場合、fork したリポジトリで GitHub Actions によるビルドが可能です。 Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動すればビルドできます。 成果物は Release にアップロードされます。 ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。 From bfcce9b7fec4b3067b94072e9542bf8580b2fec6 Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:44:40 +0000 Subject: [PATCH 07/12] =?UTF-8?q?refactor:=20=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=BB=E9=9D=99=E7=9A=84=E8=A7=A3=E6=9E=90=E3=82=92=E7=A7=BB?= =?UTF-8?q?=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c1ed3ac66..954e331e5 100644 --- a/README.md +++ b/README.md @@ -563,11 +563,6 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo - macOS: `/Users//Library/Application\ Support/` - Linux: `/home//.local/share/` -### テスト・静的解析 - -`pytest` を用いたテストと各種リンターを用いた静的解析が可能です。 -手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。 - ### ビルド `pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。 @@ -583,6 +578,11 @@ Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動 依存関係は `poetry` で管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。 詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。 +### テスト・静的解析 + +`pytest` を用いたテストと各種リンターを用いた静的解析が可能です。 +手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。 + ### マルチエンジン機能に関して VOICEVOX エディターでは、複数のエンジンを同時に起動することができます。 From 92bcd32124410a62c4c86ff93fdcb53a578862ed Mon Sep 17 00:00:00 2001 From: tarepan Date: Mon, 3 Jun 2024 12:46:04 +0000 Subject: [PATCH 08/12] =?UTF-8?q?refactor:=20=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=BB=E9=9D=99=E7=9A=84=E8=A7=A3=E6=9E=90=E3=82=92=E7=A7=BB?= =?UTF-8?q?=E5=8B=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 954e331e5..d8dcc6b3b 100644 --- a/README.md +++ b/README.md @@ -573,16 +573,16 @@ Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動 成果物は Release にアップロードされます。 ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。 -### 依存関係 - -依存関係は `poetry` で管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。 -詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。 - ### テスト・静的解析 `pytest` を用いたテストと各種リンターを用いた静的解析が可能です。 手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。 +### 依存関係 + +依存関係は `poetry` で管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。 +詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。 + ### マルチエンジン機能に関して VOICEVOX エディターでは、複数のエンジンを同時に起動することができます。 From bf47f3d997e3b08e538eec45799f9c051f5116e4 Mon Sep 17 00:00:00 2001 From: tarepan Date: Fri, 21 Jun 2024 03:28:10 +0900 Subject: [PATCH 09/12] =?UTF-8?q?fix:=20=E7=A1=AC=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=81=84=E8=A1=A8=E7=8F=BE=E3=81=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hiroshiba --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c8ddcbf0..c3d025c8c 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ 全体構成は [こちら](https://github.com/VOICEVOX/voicevox/blob/main/docs/%E5%85%A8%E4%BD%93%E6%A7%8B%E6%88%90.md) に詳細があります。) ## 目次 -利用目的に合わせたガイドを以下から確認できます。 +目的に合わせたガイドはこちらです。 - [ユーザーガイド](#ユーザーガイド): 音声合成をしたい方向け - [開発者ガイド](#開発者ガイド): コードを利用したい方向け From e7e70c3d19f2c113de1824b0284d2c471e147ba9 Mon Sep 17 00:00:00 2001 From: tarepan Date: Thu, 20 Jun 2024 18:32:05 +0000 Subject: [PATCH 10/12] =?UTF-8?q?refactor:=20=E8=B2=A2=E7=8C=AE=E8=80=85?= =?UTF-8?q?=E3=82=AC=E3=82=A4=E3=83=89=E7=AF=80=E3=82=92=E4=B8=8A=E3=81=B8?= =?UTF-8?q?=E7=A7=BB=E5=8B=95=E3=81=97=20Discord=20=E3=81=A8=20PR=20?= =?UTF-8?q?=E3=81=AB=E9=96=A2=E3=81=99=E3=82=8B=E5=B0=8F=E3=81=95=E3=81=84?= =?UTF-8?q?=E7=B4=B9=E4=BB=8B=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c3d025c8c..05227830d 100644 --- a/README.md +++ b/README.md @@ -450,6 +450,13 @@ options: エンジンディレクトリ内にあるファイルを全て消去し、新しいものに置き換えてください。 +## 貢献者ガイド +VOICEVOX ENGINE は皆さんのコントリビューションをお待ちしています! +詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。 +また [VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて、開発の議論や雑談を行っています。気軽にご参加ください。 + +なお、Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成することを推奨しています。 + ## 開発者ガイド ### 環境構築 @@ -632,10 +639,6 @@ VOICEVOX エディターにうまく読み込ませられないときは、エ -## 貢献者ガイド -VOICEVOX ENGINE は皆さんのコントリビューションをお待ちしています! -詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。 - ## 事例紹介 **[voicevox-client](https://github.com/voicevox-client) [@voicevox-client](https://github.com/voicevox-client)** ・・・ VOICEVOX ENGINE の各言語向け API ラッパー From 25268c0adaec2f7b9f9151e89cc768e474832c9b Mon Sep 17 00:00:00 2001 From: Hiroshiba Date: Fri, 21 Jun 2024 07:51:05 +0900 Subject: [PATCH 11/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 05227830d..e8aeb0f49 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ 目的に合わせたガイドはこちらです。 - [ユーザーガイド](#ユーザーガイド): 音声合成をしたい方向け +- [貢献者ガイド](#貢献者ガイド): コントリビュートしたい方向け - [開発者ガイド](#開発者ガイド): コードを利用したい方向け -- [貢献者ガイド](#貢献者ガイド): ENGINEへコントリビュートしたい方向け ## ユーザーガイド From c6702c084442993c3ab4b82db59db4379797d009 Mon Sep 17 00:00:00 2001 From: Hiroshiba Kazuyuki Date: Fri, 21 Jun 2024 07:53:38 +0900 Subject: [PATCH 12/12] =?UTF-8?q?=E3=83=95=E3=82=A9=E3=83=BC=E3=83=9E?= =?UTF-8?q?=E3=83=83=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONTRIBUTING.md | 99 +++++++++++++++++++++++++++++++++---------------- README.md | 12 +++--- 2 files changed, 74 insertions(+), 37 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e7aee4833..42ea68fba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,10 +1,11 @@ # 貢献者ガイド VOICEVOX ENGINE はオープンソースプロジェクトです。本プロジェクトは活発に開発されており、その成果は製品版 VOICEVOX へも反映されています。VOICEVOX ENGINE はコミュニティの皆さんからのコントリビューションを歓迎しています。 -本ガイドは開発方針・プルリクエスト手順・レビュープロセスなど、コントリビュータの皆さんの一助となる情報を提供します。 +本ガイドは開発方針・プルリクエスト手順・レビュープロセスなど、コントリビュータの皆さんの一助となる情報を提供します。 ## 目次 -VOICEVOX ENGINE の方針に関するガイドは以下から確認できます。 + +VOICEVOX ENGINE の方針に関するガイドは以下から確認できます。 - [開発ガバナンス](#開発ガバナンス) - [バージョニング](#バージョニング) @@ -17,7 +18,7 @@ VOICEVOX ENGINE の方針に関するガイドは以下から確認できます - [テスト](#テスト) - [ライセンス](#ライセンス) -コントリビュータの目的に応じたガイドは以下から確認できます。 +コントリビュータの目的に応じたガイドは以下から確認できます。 - [プルリクエストを送る](#プルリクエストを送る) - バグ @@ -31,7 +32,7 @@ VOICEVOX ENGINE の方針に関するガイドは以下から確認できます - [環境構築](#環境構築) - [コード実行](#コード実行) -開発にあたって頻繁に利用されるコマンドは以下から確認できます。 +開発にあたって頻繁に利用されるコマンドは以下から確認できます。 - [依存ライブラリをインストールする](#依存ライブラリをインストールする) - [音声ライブラリ無しで実行](#音声ライブラリ無しで実行) @@ -48,27 +49,32 @@ VOICEVOX ENGINE の方針に関するガイドは以下から確認できます - [脆弱性を診断する](#脆弱性を診断する) ## 開発ガバナンス + VOICEVOX ENGINE は GitHub ベースのオープンな開発をおこなっています。 -コミュニティの皆さんからの機能要望・バグ報告・質問を GitHub Issues で受け付けています。またプルリクエストも歓迎しています。Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成することを推奨しています。 +コミュニティの皆さんからの機能要望・バグ報告・質問を GitHub Issues で受け付けています。またプルリクエストも歓迎しています。Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成することを推奨しています。 より気軽な開発を可能にする目的で、[VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて開発の議論や雑談を行っています。気軽にご参加ください。 ## バージョニング + セマンティックバージョニングを採用しています。 現段階ではメジャーバージョンが 0 であり、破壊的変更を含むマイナーアップデートを許容しています。大きな機能追加・変更ではマイナーバージョンを、バグ修正やキャラクター追加ではパッチバージョンを更新しています。 -変更内容の概要は各バージョンの [Releases](https://github.com/VOICEVOX/voicevox_engine/releases) にて確認できます。 +変更内容の概要は各バージョンの [Releases](https://github.com/VOICEVOX/voicevox_engine/releases) にて確認できます。 ## ブランチ戦略 + ブランチ戦略としてリリースブランチ付き GitHub Flow を採用しています。 プルリクエストは基本的に `master` ブランチへマージされます。例外として製品版 VOICEVOX の更新時期にはリリースブランチ `release-X.Y` が用意され、一時的に `master` から分岐します。リリースに必要なコミットが `release-X.Y` へおこなわれ、このブランチからリリースがおこなわれます。リリース直後の hotfix 等は `release-X.Y` に対してまずマージされ、リリースの後にブランチごと `master` へマージされます。 ## プルリクエスト + 全てのコード変更はプルリクエストを介しておこなわれます。 -プルリクエストは [GitHub Pull requests](https://github.com/VOICEVOX/voicevox_engine/pulls) で一括管理され、[レビュー](#レビュー)を経てマージされます。VOICEVOX ENGINE はコミュニティの皆さんからのプルリクエストを歓迎しています。 +プルリクエストは [GitHub Pull requests](https://github.com/VOICEVOX/voicevox_engine/pulls) で一括管理され、[レビュー](#レビュー)を経てマージされます。VOICEVOX ENGINE はコミュニティの皆さんからのプルリクエストを歓迎しています。 ### プルリクエストを送る -以下の手順でプルリクエストを作成できます。 + +以下の手順でプルリクエストを作成できます。 - [開発環境](#環境構築)を用意する - このレポジトリをフォークし、`master` ブランチからプルリクエスト用ブランチを作る @@ -80,32 +86,41 @@ VOICEVOX ENGINE は GitHub ベースのオープンな開発をおこなって - ブランチをリモートへプッシュし、このレポジトリに対してプルリクエストを作成する ## レビュー + 全てのプルリクエストはレビューを経てマージされます。 -レビューは [GitHub Pull requests](https://github.com/VOICEVOX/voicevox_engine/pulls) 上でオープンにおこなわれ、コミュニティの誰でもコメント等の形で参加可能です。レビューを経たのちに `master` (あるいは `release-X.Y`) ブランチへマージされます。マージには VOICEVOX チームによる approve が必須です。 +レビューは [GitHub Pull requests](https://github.com/VOICEVOX/voicevox_engine/pulls) 上でオープンにおこなわれ、コミュニティの誰でもコメント等の形で参加可能です。レビューを経たのちに `master` (あるいは `release-X.Y`) ブランチへマージされます。マージには VOICEVOX チームによる approve が必須です。 ## バグ -GitHub Issues を用いてバグを一元管理しています。 + +GitHub Issues を用いてバグを一元管理しています。 ### バグを探す -[`バグ` ラベルでのフィルタリング](https://github.com/VOICEVOX/voicevox_engine/issues?q=is%3Aissue+is%3Aopen+label%3Aバグ)により既知バグの一覧にアクセスできます。バグの修正状況は各バグの issue にて確認できます。 + +[`バグ` ラベルでのフィルタリング](https://github.com/VOICEVOX/voicevox_engine/issues?q=is%3Aissue+is%3Aopen+label%3Aバグ)により既知バグの一覧にアクセスできます。バグの修正状況は各バグの issue にて確認できます。 ### バグを報告する -既知バグの一覧にないバグ(新規バグ)を見つけた場合、GitHub Issues で報告が可能です。VOICEVOX ENGINE は新規バグの報告を歓迎しています。 + +既知バグの一覧にないバグ(新規バグ)を見つけた場合、GitHub Issues で報告が可能です。VOICEVOX ENGINE は新規バグの報告を歓迎しています。 ### バグを直す -バグの修正は Issue 上で議論され、プルリクエストを用いて修正されます。プルリクエストを作成する手順は "[プルリクエストを送る](#プルリクエストを送る)" でガイドされています。VOICEVOX ENGINE はバグを修正するプルリクエストを歓迎しています。 + +バグの修正は Issue 上で議論され、プルリクエストを用いて修正されます。プルリクエストを作成する手順は "[プルリクエストを送る](#プルリクエストを送る)" でガイドされています。VOICEVOX ENGINE はバグを修正するプルリクエストを歓迎しています。 ## 機能向上 -GitHub Issues を用いて機能向上を一元管理しています。 + +GitHub Issues を用いて機能向上を一元管理しています。 ### 機能向上タスクを探す -[`機能向上` ラベルでのフィルタリング](https://github.com/VOICEVOX/voicevox_engine/issues?q=is%3Aissue+is%3Aopen+label%3A機能向上)により新規機能追加や仕様変更の一覧にアクセスできます。機能向上の実装状況は各機能向上の issue にて確認できます。 + +[`機能向上` ラベルでのフィルタリング](https://github.com/VOICEVOX/voicevox_engine/issues?q=is%3Aissue+is%3Aopen+label%3A機能向上)により新規機能追加や仕様変更の一覧にアクセスできます。機能向上の実装状況は各機能向上の issue にて確認できます。 ### 機能を要望する -既存提案一覧にない機能向上案がある場合、GitHub Issues で提案が可能です。VOICEVOX ENGINE は機能向上の提案を歓迎しています。 + +既存提案一覧にない機能向上案がある場合、GitHub Issues で提案が可能です。VOICEVOX ENGINE は機能向上の提案を歓迎しています。 ### 機能を向上させる(実装する) -機能向上は Issue 上で議論され、プルリクエストを用いて実装されます。プルリクエストを作成する手順は "[プルリクエストを送る](#プルリクエストを送る)" でガイドされています。VOICEVOX ENGINE は機能向上を実装するプルリクエストを歓迎しています。 + +機能向上は Issue 上で議論され、プルリクエストを用いて実装されます。プルリクエストを作成する手順は "[プルリクエストを送る](#プルリクエストを送る)" でガイドされています。VOICEVOX ENGINE は機能向上を実装するプルリクエストを歓迎しています。 ## 環境構築 @@ -113,6 +128,7 @@ GitHub Issues を用いて機能向上を一元管理しています。 インストールするには、各 OS ごとの C/C++ コンパイラ、CMake が必要になります。 ### 依存ライブラリをインストールする + シェルで以下のコマンドを実行することで依存ライブラリがインストールされます。 ```bash @@ -124,11 +140,13 @@ pre-commit install -t pre-push ``` ## 音声ライブラリ -OSS 版 VOICEVOX ENGINE は製品版 VOICEVOX の音声ライブラリを同梱していないため、音声合成がモック版となっています。 -製品版 VOICEVOX の音声ライブラリは、利用規約を遵守の上、以下のいずれかの手順で導入できます。これにより「ずんだもん」等の製品版キャラクター音声を合成できます。 +OSS 版 VOICEVOX ENGINE は製品版 VOICEVOX の音声ライブラリを同梱していないため、音声合成がモック版となっています。 + +製品版 VOICEVOX の音声ライブラリは、利用規約を遵守の上、以下のいずれかの手順で導入できます。これにより「ずんだもん」等の製品版キャラクター音声を合成できます。 ### 音声ライブラリを導入する + 音声ライブラリは以下のいずれかの手順で導入できます。 #### 製品版 VOICEVOX を用いた音声ライブラリの導入 @@ -170,7 +188,9 @@ python run.py --help ``` ### 音声ライブラリ無しで実行 + 音声ライブラリを導入しなかった場合あるいは軽量のモック版音声合成を利用したい場合、シェルで以下のコマンドを実行することでエンジンが実行されます。 + ```bash python run.py --enable_mock ``` @@ -198,10 +218,12 @@ VV_OUTPUT_LOG_UTF8=1 python run.py ``` ## コードを編集する + ### パッケージ + `poetry` によってパッケージを管理しています。また `pip` ユーザー向けに `requirements-*.txt` を生成しています。 依存パッケージは「ビルドにより音声ライブラリと一体化しても、音声ライブラリのライセンスと衝突しない」ライセンスを持つ必要があります。 -主要ライセンスの可否は以下の通りです。 +主要ライセンスの可否は以下の通りです。 - MIT/Apache/BSD-3: OK - LGPL: OK (コアと動的分離されているため) @@ -231,58 +253,68 @@ poetry export --without-hashes --with build -o requirements-build.txt ``` ## 静的解析 + ### 型検査 + 型検査を採用しています。 -目的は安全性の向上であり、チェッカーには `mypy` を採用しています。 +目的は安全性の向上であり、チェッカーには `mypy` を採用しています。 -型検査の実行は "[静的解析を一括実行する](#静的解析を一括実行する)" 節を参照してください。 +型検査の実行は "[静的解析を一括実行する](#静的解析を一括実行する)" 節を参照してください。 ### リント + 自動リントを採用しています。 -目的は安全性の向上であり、リンターには `flake8` と `isort` を採用しています。 +目的は安全性の向上であり、リンターには `flake8` と `isort` を採用しています。 -リンターの実行は "[静的解析を一括実行する](#静的解析を一括実行する)" 節を参照してください。 +リンターの実行は "[静的解析を一括実行する](#静的解析を一括実行する)" 節を参照してください。 ### 整形 + コード自動整形を採用しています。 -目的は可読性の向上であり、フォーマッタには `black` を採用しています。 +目的は可読性の向上であり、フォーマッタには `black` を採用しています。 -フォーマッタの実行は "[静的解析を一括実行する](#静的解析を一括実行する)" 節を参照してください。 +フォーマッタの実行は "[静的解析を一括実行する](#静的解析を一括実行する)" 節を参照してください。 なお、ドキュメント自動整形は現段階では採用していません。メンテナが定期的に `prettier` で整形しています。 ### タイポ検査 + タイポ検査を採用しています。 目的は可読性の向上であり、チェッカーには [`typos`](https://github.com/crate-ci/typos) を採用しています。誤判定やチェックから除外すべきファイルがあれば[設定ファイルの説明](https://github.com/crate-ci/typos#false-positives)に従って `pyproject.toml` を編集してください。 ローカルへの `typos` 導入は各自の環境に合わせて公式ドキュメントを参照してください。ローカルへの導入が難しい場合、プルリクエスト時に GitHub Actions で自動実行される `typos` の結果を参照してください。 #### タイポを検査する -シェルで以下のコマンドを実行することでタイポが検査されます。 + +シェルで以下のコマンドを実行することでタイポが検査されます。 ```bash typos ``` ### 静的解析を一括実行する + シェルで以下のコマンドを実行することで静的解析([型検査](#型検査)・[リント](#リント)・[整形](#整形))が一括実行されます。 -この際、可能な範囲で自動修正がおこなわれます。 +この際、可能な範囲で自動修正がおこなわれます。 ```bash pysen run format lint ``` ## テスト + 自動テストを採用しています。 -長期的に安定した開発を目指して単体テスト・End-to-End テスト共に充実させており、値の不変を保証するスナップショットテストも採用しています。テストランナーには `pytest` を採用しています。 +長期的に安定した開発を目指して単体テスト・End-to-End テスト共に充実させており、値の不変を保証するスナップショットテストも採用しています。テストランナーには `pytest` を採用しています。 ### コードをテストする -シェルで以下のコマンドを実行することでテストが走ります。 + +シェルで以下のコマンドを実行することでテストが走ります。 ```bash python -m pytest ``` ### スナップショットを更新する + コード変更により想定される出力値が変わり、スナップショットの更新が必要となる場合があります。 シェルで以下のコマンドを実行することでスナップショットが更新されます。 @@ -291,8 +323,9 @@ python -m pytest --snapshot-update ``` ### 脆弱性を診断する + `safety` を用いた脆弱性診断により依存パッケージの安全性を確保しています。 -シェルで以下のコマンドを実行することで脆弱性が診断されます。 +シェルで以下のコマンドを実行することで脆弱性が診断されます。 ```bash safety check -r requirements.txt -r requirements-dev.txt -r requirements-build.txt @@ -351,8 +384,9 @@ PYTHONPATH=. python tools/make_docs.py 不具合の報告、機能要望、改善提案、質問はIssueの方に報告してください。 ### Issue の状態 + VOICEVOX ENGINE では issue の状態遷移を以下のように整理しています。 -各状態は GitHub の `状態:〇〇` ラベルと対応しています(例: [`状態:実装者募集`](https://github.com/VOICEVOX/voicevox_engine/labels/状態:実装者募集))。 +各状態は GitHub の `状態:〇〇` ラベルと対応しています(例: [`状態:実装者募集`](https://github.com/VOICEVOX/voicevox_engine/labels/状態:実装者募集))。 ```mermaid --- @@ -372,6 +406,7 @@ stateDiagram-v2 opened --> ロードマップ : 停滞 ロードマップ --> opened ``` + NOTE: ロードマップ化すべきかの棚卸し判定は、issue が `必要性議論` で 30 日、`設計`・`実装者募集`・`実装` で 180 日停滞した場合におこなう。`実装` の停滞時にはサポートも検討する。 ## ライセンス diff --git a/README.md b/README.md index e8aeb0f49..116c4d88f 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ 全体構成は [こちら](https://github.com/VOICEVOX/voicevox/blob/main/docs/%E5%85%A8%E4%BD%93%E6%A7%8B%E6%88%90.md) に詳細があります。) ## 目次 + 目的に合わせたガイドはこちらです。 - [ユーザーガイド](#ユーザーガイド): 音声合成をしたい方向け @@ -451,6 +452,7 @@ options: エンジンディレクトリ内にあるファイルを全て消去し、新しいものに置き換えてください。 ## 貢献者ガイド + VOICEVOX ENGINE は皆さんのコントリビューションをお待ちしています! 詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。 また [VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて、開発の議論や雑談を行っています。気軽にご参加ください。 @@ -574,22 +576,22 @@ DYLD_LIBRARY_PATH="/path/to/onnx" python run.py --voicelib_dir="/path/to/voicevo ### ビルド `pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。 -手順の詳細は [貢献者ガイド#ビルド](./CONTRIBUTING.md#ビルド) を御覧ください。 +手順の詳細は [貢献者ガイド#ビルド](./CONTRIBUTING.md#ビルド) を御覧ください。 GitHub を用いる場合、fork したリポジトリで GitHub Actions によるビルドが可能です。 Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動すればビルドできます。 成果物は Release にアップロードされます。 -ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。 +ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。 ### テスト・静的解析 `pytest` を用いたテストと各種リンターを用いた静的解析が可能です。 -手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。 +手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。 ### 依存関係 依存関係は `poetry` で管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。 -詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。 +詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。 ### マルチエンジン機能に関して @@ -613,7 +615,7 @@ VOICEVOX ENGINE リポジトリを fork し、一部の機能を改造するの 改造すべき点はエンジン情報・キャラクター情報・音声合成の3点です。 エンジンの情報はルート直下のマニフェストファイル(`engine_manifest.json`)で管理されています。 -この形式のマニフェストファイルはVOICEVOX API準拠エンジンに必須です。 +この形式のマニフェストファイルは VOICEVOX API 準拠エンジンに必須です。 マニフェストファイル内の情報を見て適宜変更してください。 音声合成手法によっては、例えばモーフィング機能など、VOICEVOX と同じ機能を持つことができない場合があります。 その場合はマニフェストファイル内の`supported_features`内の情報を適宜変更してください。