Skip to content

Conversation

PickledChair
Copy link
Member

@PickledChair PickledChair commented Apr 16, 2022

内容

現在 Releases にアップロードされる zip ファイルは、ダウンロードして unzip7z のコマンド等で解凍すると解凍時のカレントディレクトリに直接中身が展開されるようになっています。

これまでは core.zip をダウンロードして解凍すると core ディレクトリ以下に内容が入っている状態で展開されました。それと同様になるように(解凍すると core ディレクトリ以下にファイル群が存在するように)zip の生成方法を変更しました。

https://github.com/PickledChair/voicevox_core/releases/tag/0.12.0-pickledchair-1 で試しにリリースしたものを公開しています。 また、実装はしたのですが、修正やコメント追加等を行いたいので draft とさせていただきます。

その他

以前から、upload-to-release-cpp-shared ジョブが走るときは core.zip の内容を core という artifact としてアップロードするようになっています。#111 の変更においても、Releases にアップロードされる内容を core の中に全てアップロードしています。しかし、ライブラリ1ファイルあたりのバイナリサイズがかなり大きくなったため、core のサイズも顕著に大きくなりました(OSS版であっても core のサイズは 800 MB 以上になっています。 https://github.com/PickledChair/voicevox_core/actions/runs/2176719929 で確認できます。製品版ではさらに大きくなっていると予想しています)。今回の変更でこの core の存在が少しネックになったこともあって、これをどのように扱うべきか(アップロードしない or プラットフォームごとに分割してアップロードする、等)意見を聞かせていただき、必要であればこの PR で合わせて対応したいと考えました。特に、 #33 でこの部分を実装された @aoirint さんからご意見が頂ければ嬉しいです。

@Hiroshiba
Copy link
Member

全部まとめたcoreはアップロードしない感じで良いのかなと思いました!
(ちなみに製品版だと3.3GBありました)

@aoirint
Copy link
Member

aoirint commented Apr 17, 2022

ライブラリ1ファイルあたりのバイナリサイズがかなり大きくなった
これをどのように扱うべきか(アップロードしない or プラットフォームごとに分割してアップロードする、等)

Artifactのcoreは、Releasesと同じ分割単位でアップロードする(プラットフォームごとに分割してアップロードする)のがいいと思いました。このArtifactは、build-cpp-sharedですでにアップロードしていると思います。

#114 で共有ライブラリのリネームがなくなったので、Releaseへのアップロード処理をbuild-cpp-sharedに移して、
upload-to-release-cpp-sharedは削除してしまってもいいかなと思いました。

解凍すると core ディレクトリ以下にファイル群が存在するように

zipファイル名と同じディレクトリ名に解凍されてもいいかなと思いました(Windowsエクスプローラでディレクトリを圧縮したときの挙動)。

ちなみに、ONNX Runtimeもそうなっていました。

Releaseにアップロードするzipファイル名は、プラットフォーム名だけでなくて、voicevox_core-windows-x64-cpu-0.12.0.zipのような形式にしてもいいかなと思いました。手動でダウンロードするユーザにとっては扱いやすくなると思います。

ENGINEの方ではReleaseがプラットフォーム名だけになっているのですが、そちらも直したいなと思っています。
これは、Artifactの方の名前は、プラットフォーム名だけの方がGitHub Actionsが短くなって書きやすいのですが、そのArtifact名と同様にRelease Asset名を扱うようにしたためだけだったと思うので、ここを変えてもvoicevoxの自動ビルドで対応できると思います(YMM4が依存している可能性はありますが)。

@PickledChair
Copy link
Member Author

PickledChair commented Apr 17, 2022

@Hiroshiba

全部まとめたcoreはアップロードしない感じで良いのかなと思いました!
(ちなみに製品版だと3.3GBありました)

ご意見ありがとうございます! @aoirint さんの意見も合わせると、アーティファクトの core は削除でよさそうですね。

@aoirint

ご意見ありがとうございます! お話を聞いて、コア側での作業の要点は以下のような感じになりそうと思いました。問題点等あればご指摘ください。


  • artifact は、Releases と同様にプラットフォームごとに分割してアップロード
    • すでに build-cpp-shared でアップロードされているが、追加でヘッダファイルやVERSIONファイルも同梱する
  • Releases へのアップロード処理は build-cpp-shared に移して、upload-to-release-cpp-shared は削除
  • 各zipファイル名は voicevox_core-<プラットフォーム名>-<バージョン>.zip の形式にする
  • zip解凍後のディレクトリ名はzipファイル名と同じで良い

エンジンの方の説明もありがとうございます。この機会にもう少し聞きたいのですが、Artifact名はこれまで通りにしつつ、Release Asset名はコアの場合と同様にしたい、ということでしょうか?

@aoirint
Copy link
Member

aoirint commented Apr 17, 2022

@PickledChair

追加でヘッダファイルやVERSIONファイルも同梱する

それがよさそうです!

Artifact名はこれまで通りにしつつ、Release Asset名はコアの場合と同様にしたい

そうです!

@PickledChair
Copy link
Member Author

@aoirint わかりました!

@PickledChair PickledChair marked this pull request as ready for review April 19, 2022 09:38
@PickledChair
Copy link
Member Author

workflow の実装が完了しました。https://github.com/PickledChair/voicevox_core/releases/tag/0.12.0-pickledchair-4 に試しにリリースしたものがあります。レビューよろしくお願いします!

@Hiroshiba
Copy link
Member

LGTM!!

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.

大丈夫そうな気がしたのでマージしちゃいます・・・!

@Hiroshiba Hiroshiba merged commit 1daae42 into VOICEVOX:main Apr 25, 2022
y-chan pushed a commit to SHAREVOX/sharevox_core that referenced this pull request Sep 1, 2022
* releasesにuploadするzipの構造を変更

* artifactsディレクトリ以下にcoreディレクトリがあれば一時的に名前変更してから戻す

* coreをartifactとしてアップロードしないように変更

* changed the artifact to include header and version files

* change the structure of the artifact

* define and use ZIP_NAME

* fix artifact path

* define ASSET_NAME instead of ZIP_NAME and add it into GITHUB_ENV

* move release steps into build job

* use Compress-Archive commandlet on Windows

* fix archiving method on linux and mac

* create archive file in root directory

* edit comment

* サンプルのREADMEに記載のzipファイル名を更新
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.

3 participants