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

差分アップデートの実装 #238

Open
Yosshi999 opened this issue Sep 20, 2021 · 2 comments
Open

差分アップデートの実装 #238

Yosshi999 opened this issue Sep 20, 2021 · 2 comments

Comments

@Yosshi999
Copy link
Contributor

内容

アップデートの時間を節約するために、バージョンが変化しないLibTorchなどのサードパーティーライブラリのダウンロードを省略したい

Pros 良くなる点

データ容量の削減、アップデート時間の短縮

Cons 悪くなる点

サードパーティーライブラリを含むアップデートの時に急にファイルが大きくなり混乱する?

実現方法

インストーラかアプリにアップデート機能を実装

  • 今使っているバージョンの判別

  • 新バージョンの差分情報を確認してダウンロード(二個以上バージョン飛ばした場合も対応できるようにする)

    • リリースのnsis.7zを(メイン, サードパーティー)の二つに分割して公開
    • サードパーティーライブラリが最後に変更されたバージョン番号をリリースに記述
    • インストーラは現バージョンと比較しサードパーティーのダウンロードの必要性を確認する
  • 新バージョンを別フォルダに作成する場合、前バージョンからのライブラリのコピーが要る(現状のダウンロードよりは速い)

  • 上書きの場合は復帰処理が面倒?(アップデートが中断される、新バージョンがバグってたのでダウングレードしたくなる等)

VOICEVOXのバージョン

0.5.3

その他

サードパーティーの更新頻度をあまり把握してないんですが実際のところどうなんですかね?package-lockのdependencyは月1ペースでしか変わっていないように見えますが、こういう依存パッケージはどんどんアップデートする方が理想的だったり?

@Hiroshiba
Copy link
Member

良いですね!!

差分(パッチ?)にはファイルのdeleteが含まれることもありそうかなと思いました。
調べてみるとVPatchというのがあるっぽかったです。考え方とかは参考になるかも…?
https://nsis.sourceforge.io/Docs/VPatch/Readme.html

@Hiroshiba
Copy link
Member

将来差分アップデートを作る際のメモ。
LOCALAPPDATAに保存される7zファイルは、こちらのPRで削除しています。

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

No branches or pull requests

3 participants
@Hiroshiba @Yosshi999 and others