Skip to content

Commit

Permalink
Merge 25268c0 into 3f2685c
Browse files Browse the repository at this point in the history
  • Loading branch information
tarepan committed Jun 20, 2024
2 parents 3f2685c + 25268c0 commit 5d9ebdb
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 121 deletions.
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# 貢献者ガイド
**このガイドラインは現在工事中です。**

VOICEVOX ENGINE はオープンソースプロジェクトです。本プロジェクトは活発に開発されており、その成果は製品版 VOICEVOX へも反映されています。VOICEVOX ENGINE はコミュニティの皆さんからのコントリビューションを歓迎しています。
本ガイドは開発方針・プルリクエスト手順・レビュープロセスなど、コントリビュータの皆さんの一助となる情報を提供します。
Expand Down Expand Up @@ -317,6 +316,8 @@ LIBONNXRUNTIME_PATH="/path/to/libonnxruntime" \
pyinstaller --noconfirm run.spec
```

TODO: Docker 版のビルド手順を GitHub Actions をベースに記述する

### Github Actions でビルド

fork したリポジトリで Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動すればビルドできます。
Expand Down
143 changes: 23 additions & 120 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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) に詳細があります。)

## 目次
目的に合わせたガイドはこちらです。

- [ユーザーガイド](#ユーザーガイド): 音声合成をしたい方向け
- [貢献者ガイド](#貢献者ガイド): コントリビュートしたい方向け
- [開発者ガイド](#開発者ガイド): コードを利用したい方向け

## ユーザーガイド

### ダウンロード
Expand Down Expand Up @@ -443,14 +450,14 @@ options:
エンジンディレクトリ内にあるファイルを全て消去し、新しいものに置き換えてください。
## 開発者・貢献者向けガイド
## 貢献者ガイド
VOICEVOX ENGINE は皆さんのコントリビューションをお待ちしています!
詳細は [CONTRIBUTING.md](./CONTRIBUTING.md) をご覧ください。
また [VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて、開発の議論や雑談を行っています。気軽にご参加ください。
### 貢献者の方へ
なお、Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成することを推奨しています。
Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、
Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成してください。
[VOICEVOX 非公式 Discord サーバー](https://discord.gg/WMwWetrzuh)にて、開発の議論や雑談を行っています。気軽にご参加ください。
## 開発者ガイド
### 環境構築
Expand Down Expand Up @@ -566,104 +573,23 @@ 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 tools/create_venv_and_generate_licenses.bash
# モックでビルドする場合
pyinstaller --noconfirm run.spec
`pyinstaller` を用いたパッケージ化と Dockerfile を用いたコンテナ化によりローカルでビルドが可能です。
手順の詳細は [貢献者ガイド#ビルド](./CONTRIBUTING.md#ビルド) を御覧ください。

# 製品版でビルドする場合
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`を起動すればビルドできます。
GitHub を用いる場合、fork したリポジトリで GitHub Actions によるビルドが可能です。
Actions を ON にし、workflow_dispatch で`build-engine-package.yml`を起動すればビルドできます。
成果物は Release にアップロードされます。
ビルドに必要な GitHub Actions の設定は [貢献者ガイド#GitHub Actions](./CONTRIBUTING.md#github-actions) を御覧ください。

### コードフォーマット
### テスト・静的解析

このソフトウェアでは、リモートにプッシュする前にコードフォーマットを確認する仕組み(静的解析ツール)を利用できます。
利用するには、開発に必要なライブラリのインストールに加えて、以下のコマンドを実行してください。
プルリクエストを作成する際は、利用することを推奨します。

```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) に従って`pyproject.toml`を編集してください。
`pytest` を用いたテストと各種リンターを用いた静的解析が可能です。
手順の詳細は [貢献者ガイド#テスト](./CONTRIBUTING.md#テスト), [貢献者ガイド#静的解析](./CONTRIBUTING.md#静的解析) を御覧ください。

### 依存関係

#### 更新

[Poetry](https://python-poetry.org/) を用いて依存ライブラリのバージョンを固定しています。
以下のコマンドで操作できます:

```bash
# パッケージを追加する場合
poetry add `パッケージ名`
poetry add --group dev `パッケージ名` # 開発依存の追加
poetry add --group build `パッケージ名` # ビルド依存の追加
# パッケージをアップデートする場合
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 build -o requirements-build.txt
```

#### ライセンス

依存ライブラリは「コアビルド時にリンクして一体化しても、コア部のコード非公開 OK」なライセンスを持つ必要があります。
主要ライセンスの可否は以下の通りです。

- MIT/Apache/BSD-3: OK
- LGPL: OK (コアと動的分離されているため)
- GPL: NG (全関連コードの公開が必要なため)
依存関係は `poetry` で管理されています。また、導入可能な依存ライブラリにはライセンス上の制約があります。
詳細は [貢献者ガイド#パッケージ](./CONTRIBUTING.md#パッケージ) を御覧ください。

### マルチエンジン機能に関して

Expand Down Expand Up @@ -713,29 +639,6 @@ VOICEVOX エディターにうまく読み込ませられないときは、エ

</details>

### API ドキュメントの確認

[API ドキュメント](https://voicevox.github.io/voicevox_engine/api/)(実体は`docs/api/index.html`)は自動で更新されます。
次のコマンドで API ドキュメントを手動で作成することができます。

```bash
PYTHONPATH=. python tools/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-client](https://github.com/voicevox-client) [@voicevox-client](https://github.com/voicevox-client)** ・・・ VOICEVOX ENGINE の各言語向け API ラッパー
Expand Down

0 comments on commit 5d9ebdb

Please sign in to comment.