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

ビルドシステムをPyInstallerへ移行する #504

Merged
merged 10 commits into from
Nov 8, 2022
Merged

Conversation

y-chan
Copy link
Member

@y-chan y-chan commented Nov 6, 2022

内容

題の通り。一通りPyInstallerへの移行作業が終わったので(Dockerfileの扱いについては #482 で)masterにマージし、PyInstallerへの移行を完了させます。

関連 Issue

close #439
ref #505
ref #506
ref #507

その他

マージ前にビルドを回してみています
https://github.com/VOICEVOX/voicevox_engine/actions/runs/3402637779
問題が見つかったのでやり直し
https://github.com/VOICEVOX/voicevox_engine/actions/runs/3404096037

y-chan added 6 commits August 8, 2022 01:56
use pyinstaller in github action for windows build
* use pyinstaller in github action for mac build and integrate windows and mac build process

* use spec file in github actions

* fix folder name

* use noconfirm option

* remove build utils of macos

* fix miss and split step

* integrate steps

* add comment to run.spec
* use pyinstaller in github action for linux build and integrated job

* fix nvidia gpg key

* add build essential setup step

* update ubuntu version

* fix miss

* fix error

* fix download core

* fix shell miss

* fix typo

* fix miss

* fix tar command

* downgrade ubuntu version and fix pip command

* add create symlink step

* fix miss

* update cuda toolkit and remove prepare cuda apt key step

* command integrating

* use dist/run.dist directory in windows

* use setup python4 and remove no-cache dir option
* remove build-env from docker file

* remove nuitka build issue
@github-actions
Copy link

github-actions bot commented Nov 6, 2022

Coverage Result

Resultを開く
Name Stmts Miss Cover
voicevox_engine/init.py 1 0 coverage-100%
voicevox_engine/acoustic_feature_extractor.py 75 0 coverage-100%
voicevox_engine/dev/synthesis_engine/init.py 2 0 coverage-100%
voicevox_engine/dev/synthesis_engine/mock.py 36 2 coverage-94%
voicevox_engine/full_context_label.py 162 3 coverage-98%
voicevox_engine/kana_parser.py 86 1 coverage-99%
voicevox_engine/model.py 154 7 coverage-95%
voicevox_engine/mora_list.py 4 0 coverage-100%
voicevox_engine/part_of_speech_data.py 5 0 coverage-100%
voicevox_engine/preset/Preset.py 12 0 coverage-100%
voicevox_engine/preset/PresetLoader.py 34 1 coverage-97%
voicevox_engine/preset/init.py 3 0 coverage-100%
voicevox_engine/synthesis_engine/init.py 5 0 coverage-100%
voicevox_engine/synthesis_engine/core_wrapper.py 206 166 coverage-19%
voicevox_engine/synthesis_engine/make_synthesis_engines.py 57 49 coverage-14%
voicevox_engine/synthesis_engine/synthesis_engine.py 133 12 coverage-91%
voicevox_engine/synthesis_engine/synthesis_engine_base.py 67 9 coverage-87%
voicevox_engine/user_dict.py 129 6 coverage-95%
voicevox_engine/utility/init.py 3 0 coverage-100%
voicevox_engine/utility/connect_base64_waves.py 37 0 coverage-100%
voicevox_engine/utility/path_utility.py 26 6 coverage-77%
TOTAL 1237 262 coverage-79%

# Conflicts:
#	.github/workflows/build.yml
#	requirements-dev.txt
@y-chan
Copy link
Member Author

y-chan commented Nov 6, 2022

elif license.name.lower() == "nuitka":
with urllib.request.urlopen(
"https://raw.githubusercontent.com/Nuitka/Nuitka/develop/LICENSE.txt"
) as res:
license.text = res.read().decode()

ここみたくNuitka固有のコードが残ってるところもあるけど、特に気にしなくていいかなぁ...

@Hiroshiba
Copy link
Member

ここみたくNuitka固有のコードが残ってるところもあるけど、特に気にしなくていいかなぁ...

あー・・・。まあ、無い方が綺麗だなとは思いますね。。
気が向いたら殲滅して頂けると・・・・・・!!

@y-chan
Copy link
Member Author

y-chan commented Nov 6, 2022

Utility関数もあるので、派生ソフトウェアのために完全に消すのはやめた方がいいかもしれない...?(いやちょっとわからない...)

def is_development() -> bool:
"""
開発版かどうか判定する関数
Nuitka/Pyinstallerでコンパイルされていない場合は開発環境とする。
"""
# nuitkaビルドをした際はグローバルに__compiled__が含まれる
if "__compiled__" in globals():
return False
# pyinstallerでビルドをした際はsys.frozenが設定される
elif getattr(sys, "frozen", False):
return False
return True

@Hiroshiba
Copy link
Member

まあ・・・ここだけ残しておきますか・・・。

remove nuitka cache path specification from makefile
@y-chan
Copy link
Member Author

y-chan commented Nov 6, 2022

elif license.name.lower() == "nuitka":
with urllib.request.urlopen(
"https://raw.githubusercontent.com/Nuitka/Nuitka/develop/LICENSE.txt"
) as res:
license.text = res.read().decode()

ここみたくNuitka固有のコードが残ってるところもあるけど、特に気にしなくていいかなぁ...

こちらに関しては既に消してた(#443)ので大丈夫でした...!
その他に残ってる箇所はなさそうでした!

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!!

@Hiroshiba
Copy link
Member

@aoirint さん、 @PickledChair さん、もしよかったらレビューお願いできますでしょうか 🙇

たぶん全部事細かに見ていくのは大変だと思うので、なんとなく眺めて良さそうなら良いかなと思っています。
もし課題があったら実行時エラーで・・・!

Copy link
Member

@PickledChair PickledChair left a comment

Choose a reason for hiding this comment

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

たぶん全部事細かに見ていくのは大変だと思うので、なんとなく眺めて良さそうなら良いかなと思っています。
もし課題があったら実行時エラーで・・・!

了解です! 確かに変更量が多いので、大雑把に見るだけにしました。その分には LGTM です(マージ後に問題が見つかったら適宜対応ということに賛成です)

@Hiroshiba
Copy link
Member

レビューありがとうございます!
ではマージしたいと思います!!

@y-chan さん
丁寧なコーディングと検証・コミュニケーションでとても進めやすかったです!
変更の影響範囲が広く大変だったと思います。
本当にありがとうございました!!

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.

ビルド環境をNuitkaからPyInstallerへ移行する
3 participants