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

[RFC] ビルド手順をよりシンプルにする #77

Closed
xuzijian629 opened this issue Feb 13, 2022 · 3 comments
Closed

[RFC] ビルド手順をよりシンプルにする #77

xuzijian629 opened this issue Feb 13, 2022 · 3 comments
Labels
機能向上 要議論 実行する前に議論が必要そうなもの

Comments

@xuzijian629
Copy link
Contributor

xuzijian629 commented Feb 13, 2022

内容

現在のビルド手順は、不要な共有ライブラリ(たとえばubuntuなのに.soファイルではなく.dylibファイル)をダウンロードする必要があるなど、 きれいではないと感じています。
(UPD) すみません、これはビルドには関係なく、releaseでの配布物のことでした。自分の中で混同していました。すみません。

また、Dockerfileのビルドが不安定 (rel: #44, #76) なこともあり、シンプルなビルドスクリプトが求められていると思います。

mkdir build
cd build
cmake ..

ですべてが完了するスクリプトがほしいと考えています。

イメージとしてはFetchContentなどでONNXRuntimeのCMakeを取り込むことを想定しています。
(UPD) ONNXRuntimeのcmakeを見たところ、外部から取り込むのがかなり大変そうだったので、ビルド済みのものを使うのはかなり理にかなっている気がしてきました。cmakeの代わりにbuild.shみたいなスクリプトを用意するだけでもかなり良くなるのではと思っています。要議論ということでコメント募集しています。

Pros 良くなる点

  • ビルド手順が簡単で、環境によらずやることが同じ。
  • 最小限のファイルからなるので見た目がきれい。デバッグがしやすい。
  • CIでテストしやすい。

Cons 悪くなる点

  • ビルド時間が長くなる
  • ライセンスの関係でビルド済みライブラリの配布がしにくい(詳しくは未調査です)。

実現方法

  • cmakeで-DUSE_EXTERNAL_ONNXRUNTIME等のオプションを設けて、既存のビルドと両立するのがいいかと思います。

その他

開発に協力いたします。

@xuzijian629 xuzijian629 changed the title ビルド手順をよりシンプルにする [RFC] ビルド手順をよりシンプルにする Feb 13, 2022
@Hiroshiba Hiroshiba added the 要議論 実行する前に議論が必要そうなもの label Feb 13, 2022
@Hiroshiba
Copy link
Member

issueありがとうございます!
ビルド手順がややこしい点と、配布物がややこしい点で改善の余地がありそうということでしょうか。

ビルド手順に関しては、Github Actionsで管理しているので実は開発チーム的にはあまり苦労していなかったりします!
ただ開発チーム以外には難しそうですが、そもそもビルドしたいことが無いのかなと思っています。
そもそもビルドできると嬉しい理由を伺いたいかもです!

配布物に関しては、たしかに仰るとおりややこしい気がしてきました・・・。
ちょっとこうなっている理由が不確かなのですが、実行に必要なバイナリデータがいくつかあり、それをOSやアーキテクチャごとに全部コピーするよりは、まとめてしまった方が管理が楽に感じたためだった気がします。
必要なバイナリをzipでまとめ、それとは別に環境ごとの動的ライブラリを配ったほうがわかりやすい・・・?あまり変わらないかもですね・・・

ご意見頂ければ!!

@xuzijian629
Copy link
Contributor Author

ビルドしようとした理由は、手元で動かすにあたってDockerを使おうと思ったときに、Dockerfileのビルドでつまづき、そのデバッグをしようとしたためです。

ユーザに実行してもらう方法としてはreleaseからのダウンロードを想定しており、ビルドはあまり想定していなかったのですね。
私もとりあえず実際に動かすまでには至ったのですが、githubページを見つけてから実際に動かすまでにけっこう時間がかかったと感じており、せっかくの素晴らしいソフトウェアなのでこの手順でユーザが諦めてしまうのはもったいないので、より簡単な方法でユーザが使えるようにしたいと思ってこのissueを立てました。

アーキテクチャによって手順は微妙に異なるものの、1つのシンプルなコマンドで環境が整えば、より使いやすくなるのではと思いました。

@Hiroshiba
Copy link
Member

なるほどです!!
実行手順をシンプルにする、というのがお互いのモチベーションに近いのかなと感じました!

どちらかというとaptとかyumとかbrewとかで1コマンドで入れられる、とかだと嬉しそうでしょうか。

issueのもとのモチベーションはビルドの簡単化なので、こちらは一旦closeでよいのかなと感じました。
他にあればまた新しくissueを建てて頂ければ・・・!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
機能向上 要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

2 participants