Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

サードパーティがエンジンへのアクセス情報を得るための設定書き出し機能 #1765

Merged
merged 21 commits into from
Feb 13, 2024

Conversation

nmori
Copy link
Contributor

@nmori nmori commented Jan 26, 2024

内容

  • ポート番号動的変更に伴い、サードパーティツールが通信ポートを特定出来ない問題が発生する
  • この PR では、起動しているエンジンに関する情報をエクスポートする機能を追加する

対応として

  • エンジン起動時、再起動、停止時にサードパーティ向けのデータを書き出す
  • 書き出す場所は AppData/Roaming/VOICEVOX/runtime-info.json (Windows)

関連 Issue

ref #1738

スクリーンショット・動画など

その他

@nmori nmori requested a review from a team as a code owner January 26, 2024 14:04
@nmori nmori requested review from Hiroshiba and removed request for a team January 26, 2024 14:04
src/background/engineManager.ts Outdated Show resolved Hide resolved
src/background/engineManager.ts Outdated Show resolved Hide resolved
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

良いですね!!!!!
処理が簡潔で読みやすかったです!!!
この処理で良いはずと、いろいろなとこ読んでくださったんだなと感じました!

src/background/engineManager.ts Outdated Show resolved Hide resolved
src/background/engineManager.ts Outdated Show resolved Hide resolved
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(すみません、癖でapprove押してしまいました 🙇 )

* 排他ロックの追加
* 処理の非同期化
@nmori
Copy link
Contributor Author

nmori commented Jan 27, 2024

  • 自プロセス向けに、タイムアウト付きロックと非同期関数利用を追記。仮に数回呼ばれてもタイムアウトするのでVOICEVOX側に影響出さずにすむかと思います。
  • JSONの書き込みは、非同期関数が呼ばれてから処理したほうがスムーズかとおもったので、 fs-extra の JSON書き込み関数に差し替えました。
  • サードパーティツールがファイルを開いている時などは書き込みエラーが出ますが、ログにエラー記録が残るだけにしました。(ユーザの操作に伴わないエラーなので、ログだけで問題ないかと考えました)

ちなみに #1753 でファイルパスが変わるというアナウンスがあるので、サードパーティはこのデータを参照するようにという形につながるとよいかとおもいました。

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

すみません遅くなりました!!ほぼLGTMです!!

src/background/engineManager.ts Outdated Show resolved Hide resolved
src/background/engineManager.ts Outdated Show resolved Hide resolved
src/background/engineManager.ts Outdated Show resolved Hide resolved
* 関数をシンプルに
* ログメッセージ修正
* コメント位置修正
@nmori
Copy link
Contributor Author

nmori commented Jan 30, 2024

レビューありがとうございます。
コメント頂いた観点、理解しましたので織り込んでみました。
よろしくお願いいたします。

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

良い感じですね!!

いろいろ細かいことコメントしていますが、もう大枠は完成していると思うので、もしよければ!!

src/background/engineManager.ts Outdated Show resolved Hide resolved
src/background/engineManager.ts Outdated Show resolved Hide resolved
src/background.ts Outdated Show resolved Hide resolved
src/background.ts Outdated Show resolved Hide resolved
src/background/engineManager.ts Outdated Show resolved Hide resolved
* 変数、関数名修正
* いくつかの構造をクラス化
@nmori
Copy link
Contributor Author

nmori commented Feb 1, 2024

ファイルフォーマットの追加、クラス化しました。
クラス化は見様見真似で一旦形にしました。単純さを保つ部分で改良の余地はあるのかもしれません。
レビューよろしくお願いいたします。

@nmori nmori requested a review from Hiroshiba February 9, 2024 18:31
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

良い感じに整ってきているのを感じます!

RuntimeInfoManagerを後から拡張しやすいようにちょっと設計を提案してみました!
(微妙そうな点あったらすみません 🙇 )

src/background.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
* 変数名、コメントの修正
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!!

色々調整ありがとうございました、ものすごい分かりやすいコード・仕様になったと思います!!!
ちょっと細かいところをこちらでいくつか変更させていただきます!

あ、そういえば案内をどうしようか考えていませんでした!
そちらはissueの方とかで進めたり、別プルリクエストで進められればと思います!!

丁寧な進行ありがとうございました!!
また力をお借りできると非常に心強いです!!!

src/background.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
src/shared/RuntimeInfoManager.ts Outdated Show resolved Hide resolved
@Hiroshiba
Copy link
Member

ちょっと構造を変更させていただいて、テストを追加させていただきました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants