Skip to content

Commit

Permalink
Update: mainブランチからマージ (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
Hiroshiba authored Jan 23, 2024
2 parents 3e5a256 + ed6c283 commit 0acfe45
Show file tree
Hide file tree
Showing 88 changed files with 2,896 additions and 1,628 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ on:

env:
VOICEVOX_ENGINE_REPO_URL: "https://github.com/VOICEVOX/voicevox_engine"
VOICEVOX_ENGINE_VERSION: 0.14.6
VOICEVOX_ENGINE_VERSION: 0.14.7
VOICEVOX_RESOURCE_VERSION: 0.15.0-preview.3
VOICEVOX_EDITOR_VERSION:
|- # releaseタグ名か、workflow_dispatchでのバージョン名か、999.999.999-developが入る
Expand Down
63 changes: 58 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,16 +84,34 @@ jobs:
sed -i -e 's|"executionArgs": \[\],|"executionArgs": ["--port=50021"],|' .env.test
cp .env.test .env
- name: Check if commit message includes [update snapshots]
id: check-whether-to-update-snapshots
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const commits = ${{ toJson(github.event.commits) }};
if (!commits) {
// pull_request などでコミットがない場合はスキップ
core.setOutput("shouldUpdateSnapshots", false);
process.exit(0);
}
const shouldUpdateSnapshots = commits.some((commit) =>
commit.message.toLowerCase().includes("[update snapshots]")
);
core.setOutput("shouldUpdateSnapshots", shouldUpdateSnapshots);
console.log(`shouldUpdateSnapshots: ${shouldUpdateSnapshots}`);
- name: Run npm run test:browser-e2e
run: |
if [ -n "${{ runner.debug }}" ]; then
export DEBUG="pw:browser*"
fi
if [[ ${{ matrix.os }} == ubuntu-* ]]; then
xvfb-run --auto-servernum npm run test:browser-e2e
else
npm run test:browser-e2e
ARGS=""
if [[ ${{ steps.check-whether-to-update-snapshots.outputs.shouldUpdateSnapshots }} == 'true' ]]; then
ARGS="--update-snapshots"
fi
npm run test:browser-e2e -- $ARGS
- name: Run npm run test:electron-e2e
run: |
Expand All @@ -110,9 +128,44 @@ jobs:
if: failure()
uses: actions/upload-artifact@v3
with:
name: playwright-report
name: playwright-report-${{ matrix.os }}
path: playwright-report

- name: Upload updated snapshots to artifact
if: steps.check-whether-to-update-snapshots.outputs.shouldUpdateSnapshots == 'true'
uses: actions/upload-artifact@v4
with:
name: updated-snapshots-${{ matrix.os }}
path: tests/e2e/browser/*-snapshots/*

commit-snapshots:
runs-on: ubuntu-latest
permissions:
contents: write
needs:
- e2e-test
steps:
- uses: actions/checkout@v3

- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: updated-snapshots-*
path: tests/e2e/browser
merge-multiple: true

- name: Commit updated snapshots
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
if [ -n "$(git status --porcelain)" ]; then
git add tests/e2e/browser
git commit -m "(スナップショットを更新)"
git push
else
echo "No changes to commit"
fi
lint:
runs-on: ubuntu-latest
steps:
Expand Down
3 changes: 2 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@ LGPL_LICENSEを参照してください。

2. ソースコードの公開が不要な別ライセンス

別ライセンスを取得したい場合は、ヒホ(twitter: @hiho_karuta)に求めてください。
別ライセンスを取得したい場合は、ヒホに求めてください。
X アカウント: @hiho_karuta
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,14 +190,29 @@ npm run test-watch:browser-e2e -- --headed # テスト中の UI を表示
```

Playwright を使用しているためテストパターンを生成することもできます。
ブラウザ版を起動している状態で以下のコマンドを実行してください
**ブラウザ版を起動している状態で**以下のコマンドを実行してください

```bash
npx playwright codegen http://localhost:5173/#/home --viewport-size=800,600
```

詳細は [Playwright ドキュメントの Test generator](https://playwright.dev/docs/codegen-intro) を参照してください。

#### スクリーンショットの更新

ブラウザ End to End テストでは Visual Regression Testing を行っています。
以下の手順でスクリーンショットを更新できます:

1. フォークしたリポジトリの設定で GitHub Actions を有効にします。
2. リポジトリの設定の Actions > General > Workflow permissions で Read and write permissions を選択します。
3. `[update snapshots]` という文字列をコミットメッセージに含めてコミットします。

```bash
git commit -m "UIを変更 [update snapshots]"
```

4. Github Workflow が完了すると、更新されたスクリーンショットがコミットされます。

### Electron End to End テスト

Electron の機能が必要な、エンジン起動・終了などを含めた End to End テストを実行します。
Expand All @@ -209,6 +224,8 @@ npm run test-watch:electron-e2e # 監視モード

## 依存ライブラリのライセンス情報の生成

依存ライブラリのライセンス情報は Github Workflow でのビルド時に自動生成されます。以下のコマンドで生成できます。

```bash
# get licenses.json from voicevox_engine as engine_licenses.json

Expand Down Expand Up @@ -278,6 +295,14 @@ npx openapi-generator-cli generate \
npm run fmt
```

### OpanAPI generator のバージョンアップ

新しいバージョンの確認・インストールは次のコマンドで行えます。

```bash
npx openapi-generator-cli version-manager list
```

## VS Code でのデバッグ実行

npm scripts の `serve``electron:serve` などの開発ビルド下では、ビルドに使用している vite で sourcemap を出力するため、ソースコードと出力されたコードの対応付けが行われます。
Expand All @@ -287,4 +312,5 @@ npm scripts の `serve` や `electron:serve` などの開発ビルド下では
## ライセンス

LGPL v3 と、ソースコードの公開が不要な別ライセンスのデュアルライセンスです。
別ライセンスを取得したい場合は、ヒホ(twitter: [@hiho_karuta](https://twitter.com/hiho_karuta))に求めてください。
別ライセンスを取得したい場合は、ヒホに求めてください。
X アカウント: [@hiho_karuta](https://x.com/hiho_karuta)
4 changes: 2 additions & 2 deletions build/splitNsisArchive.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ const createIni = (sizes, hashes) => {
// target: electron-builder.Target
exports.default = async function (target) {
const projectName = process.env.npm_package_name;
if (projectName === undefined) {
if (projectName == undefined) {
const ErrorMessage = "Project name is undefined.";
console.error(ErrorMessage);
throw ErrorMessage;
}
const projectVersion = process.env.npm_package_version;
if (projectVersion === undefined) {
if (projectVersion == undefined) {
const ErrorMessage = "Project version is undefined.";
console.error(ErrorMessage);
throw ErrorMessage;
Expand Down
19 changes: 16 additions & 3 deletions docs/細かい設計方針.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,28 @@ SpeakerId は話者が持つ ID で、世界で唯一かつ不変。エンジン
StyleId はスタイルごとの ID で、エンジンごとに唯一であれば良いです。

声を一意に決めるには、(EngineId, SpeakerId, StyleId)の3組が揃っている必要がある、という仕様を目指しています。
現状は、音声合成APIに SpeakerId 引数が無いため、(EngineId, StyleId)の2組で一意に声が決まっています。
現状は、音声合成 API に SpeakerId 引数が無いため、(EngineId, StyleId)の2組で一意に声が決まっています。
現状は StyleId はエンジンごとに唯一である必要がありますが、話者ごとに唯一であれば良いという仕様を目指しています。

VOICEVOX は歴史的経緯により、 SpeakerId と StyleId が混同していることがあります。
特に型が整数値になっている SpeakerId は StyleId と混同している場合があります。
(エンジン API の SpeakerId 引数に StyleId を渡したりなど。)

StyleId は現在整数値型になっていますが、将来的にはUuidにしたいと考えています
StyleId は現在整数値型になっていますが、将来的には Uuid にしたいと考えています

## シングルファイルコンポーネント(SFC、`.vue`ファイル)のtemplate、script、styleの順序
## シングルファイルコンポーネント(SFC、`.vue`ファイル)の template、script、style の順序

`<template>``<script>``<style>`の順序で記述してください。

## Zod のスキーマと型定義

Zod のスキーマ(`z.object`)の変数名は、`[camelCaseでの名前]Schema`、型定義(`z.infer`)の名前は、`[PascalCaseでの名前]Type`としてください。

```ts
export const hogeFugaSchema = z.object({
hoge: z.string(),
fuga: z.number(),
});

export type HogeFugaType = z.infer<typeof hogeFugaSchema>;
```
2 changes: 1 addition & 1 deletion openapi.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion openapitools.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
"$schema": "node_modules/@openapitools/openapi-generator-cli/config.schema.json",
"spaces": 2,
"generator-cli": {
"version": "7.0.0"
"version": "7.2.0"
}
}
Loading

0 comments on commit 0acfe45

Please sign in to comment.