-
Notifications
You must be signed in to change notification settings - Fork 329
feat: 差分アップデートを追加 #2701
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
base: main
Are you sure you want to change the base?
feat: 差分アップデートを追加 #2701
Conversation
🚀 プレビュー用ページを作成しました 🚀 更新時点でのコミットハッシュ: |
メモ:
|
@@ -1,4 +1,4 @@ | |||
VITE_APP_NAME=voicevox | |||
VITE_APP_NAME=voicevox-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
メモ:戻す
package.json
Outdated
"name": "voicevox-test", | ||
"version": "0.24.8", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
メモ:戻す
[update snapshots]
dev-app-update.yml
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
メモ:消す
[update snapshots]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
お!
リクエストをもらったけど、状況が分かっていないので、プルリクエストの内容変更をお願いします 🙏
とりあえずどういう状態が目標で、どういうのを実装したのか教えていただけると!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
一通りできたのでDraft解除。
- electron-updaterはこんな感じで動いています:
- インストール時に7zを保存しておく
- アップデートがあったら、変更されたファイルの分だけ取得して、保存しておいた7zと組み合わせる
- 「アップデートがあったら」:特定の形式のyamlを配信する必要があります。
- blogの最新をベースに配信する鯖を立てています: https://github.com/sevenc-nanashi/vv-poc-editor-update-server
- 「変更されたファイルの分だけ取得して」:HTTPの部分リクエストを飛ばしてます
- 「アップデートがあったら」:特定の形式のyamlを配信する必要があります。
- インストーラーのpackage-file引数(7zのオーバーライド)を使って、組み合わせた7zをインストール
- テストビルド:https://github.com/sevenc-nanashi/voicevox/releases/tag/999.0.0
考慮メモ:
- OS、arch、デバイスを一位に特定できる文字列(target tuple的な)の仕様とかを雑でもいいので決めておく必要がありそう
- 仮称:artifact
- ファイル配信のサービスも考える必要がありそう
- 部分リクエストに対応してる配信鯖の中で、1番手っ取り早いのはhuggingface、1番安定をとるならR2あたり?
@@ -53,7 +53,7 @@ jobs: | |||
- artifact_name: linux-nvidia-prepackage | |||
artifact_path: dist_electron/linux-unpacked | |||
voicevox_engine_asset_name: linux-nvidia | |||
package_name: voicevox | |||
package_name: voicevox-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
メモ:ここら辺も戻す
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
いろいろコメントしてみました!!!
まあ正直結構複雑度が上がるなーという印象です!
でも有意義だと思うので頑張りたい寄りです・・・!
ちなみにこれってMacとかってどうなるんでしたっけ。今のままだとエラーになる?
もしエラーになるなら、Windowsのみの機構にするんじゃなく、MacとかLinuxでも動くように頑張ると良い気もしました!
署名でエラーになるんだったらどうしようもないけど・・・。
いや、もういい加減Developer登録をする時期なのかもしれない・・・!!
インストーラー周りになるので、 @sabonerune さんのチェックの力も借りれるとすごい心強そう!!
もしお時間あればぜひ気になる所コメントいただければ!!! 🙇
- name: Create app-update.yml | ||
run: | | ||
# prepackageを使うとapp-update.ymlが生成されないので、手動で作成する | ||
cat <<YAML > ${{ matrix.app_asar_dir }}/app-update.yml | ||
provider: generic | ||
url: https://vv-update-api.sevenc7c.workers.dev/${{ matrix.installer_artifact_name }} | ||
useMultipleRangeRequest: false | ||
updaterCacheDirName: ${{ matrix.package_name }}-updater | ||
YAML |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここはワークアラウンドって感じでしょうか?
これ、変更があった時に気づけなくて、結構バグになりやすそうな気がしました 😇
ちょっと大掛かりになっちゃうんですけれども、そもそもprepackageがもういらない気がしてきました。
prepackageを使わないようにしてここをなくす・・・というのはどうでしょう・・・?
ちょっとさすがにしんどすぎますかね・・・・? 🙇
(もしprepackageなくす場合、今のコードでprepackageなくしても問題ないかを @aoirint さんにもコメントいただけると心強そう。お忙しそうであれば僕と @sevenc-nanashi さんの判断だけで進んじゃって良さそう!)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ビルドフックでエンジン差し込みを行うって感じですかね?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
よくわかってないのですが、そんな感じな気がしました!
まあどんな方法でも良さそうだけど、署名周りとか、コマンドの権限とか、気にしないといけないこといろいろありそう。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PRとしてはここどうするかも考えどころですねぇ。
どっちルート行きますかね・・・?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
今作業中ですが、そこそこ大きくなりそうなので一旦別PRにしたほうが良さそう。このPRでは変更しない(一旦prepackageのまま or 先にprepackageをやめるPRが完成してマージされたらそっち)みたいな感じで行こうと思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
おお、失礼しました!!! お待ちしています!!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
review request頂いたけど、ここどうしましょう?👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このPRでは変更しない(一旦prepackageのまま or 先にprepackageをやめるPRが完成してマージされたらそっち)みたいな感じで行こうと思います。
これの気持ちですね。一旦これでレビューしてもらえると...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほどです。
レビューは進めますが、たぶんこのプルリクはシステム変更が大きく、マージに凄まじい時間がかかるので、途中で別PRもらえると助かるかもです。
dev-app-update.yml
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これも消す感じですかね
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ですね。
...pec.ts-snapshots/components-dialog-updatenotificationdialog--opened-dark-storybook-win32.png
Outdated
Show resolved
Hide resolved
ですね、Mac版でアップデートボタンを押すと死にます。 |
なるほどです! 死ぬのは良くない気がしますね。 |
メモ:今の状況です
![]() |
@@ -1,4 +1,4 @@ | |||
VITE_APP_NAME=voicevox | |||
VITE_APP_NAME=voicevox-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(ここに関係ないけど、議論分けたいのでここにコメントしました)
ちょっと相談です!!
かなりシステムが複雑化するのでどう進めようか迷っています。
例えばサーバーサイドのコードもこのリポジトリで管理するとか、projectブランチ作ってわりと途中な状態でもマージしやすくするとかを考えてます。
あるいは抜本的な解決策として、先にエンジン分離をやってしまえば、差分アプデがすごく簡単になる(githubのみで完結する)ことを思いつきました。
なので差分アプデを作り込んだときの恩恵は一時的でよく、そのためにサーバーを建てるのはかなり遠回りかもとか思いました。
huggingfaceとgithubのみで完結する形か、あるいは先にエンジン分離をやってしまうのはどうでしょうか…?
現状まだ考えきれてないですが、サーバー追加周りは考えることが山ほどあるなと思ってます。
例えばapi変更するときどうするのとか、セキュリティ的なのどうするのとか、ドキュメント書かないととか、ドメイン取らないととか、dev用サーバーどう建てようとか、単一情報源の法則どうしようとか(=blogへの依存を増やすのか)…。
あとはmacだけ解決してない(ダウンロード数見るにユーザー全体の2割くらいがmac)とかも考慮ポイントかも。
まああとで考えれば良いことが多いですが、であればもうエンジン分離してしまった方が早いんじゃないかと、ふと思ったのでコメントしてみました…。
自分の中でも結論でておらず、どうすべきかかなり悩んでいますが、サーバーを追加する場合サクッと実装するのが難しいのではと気づき始めていて、先にエンジン分離するのが丸いのかもと思い始めています🙇
以前と言ってること違ってたりしたらご指摘いただければ!!🙇
メモ:
|
いけそうだとわかったあと、実装する前に、この方法で進んだ時に問題がないのかをとりあえず1分くらい時間かけて考えると良さそうかもと感じました! たぶん、思いつく問題=アイデアは時間に相関する気がするので、かけた時間が重要なのかなぁと。 直感思いついたのとしては、例えば
とか。 |
内容
差分アップデーターを追加します。
関連 Issue
スクリーンショット・動画など
(なし)
その他
(なし)