-
Notifications
You must be signed in to change notification settings - Fork 165
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
Fix/expand externals #681
Fix/expand externals #681
Conversation
取り下げたいのは #679 で合っていますか? |
ちょっとこれには同意しかねます。PEヘッダーは普通のユーザーは参照できません。(やり方を知りません) PEヘッダーを自由に確認できるユーザーを想定しているわけではないです。 |
postBuild.batは削れないと思います。 これ削ると「必ずバッチを使ってビルドする」という前提になっちゃうのでビミョーです。 |
@berryzplus さん、postBuild.bat の目的はなんですか? #679 (comment) において berryzplus さんが書きました。
インストーラの作成処理が postBuild.bat に依存することによりソリューションを使わない MinGW ビルドで例外処理が必要になることをそれへの返信として書きました。
postBuild.bat はビルドの必須手順ではないので「必ずバッチを使ってビルドする」ことになるというのは正しくなく、インストーラ作成における postBuild.bat への依存はむしろソリューションを使ったビルドを必須にしています。 最初は、今後必要になるかもしれないから postBuild.bat の中身を空にするだけにとどめておいて枠組みは維持してほしい、という意見だと予想しましたが違いましたね。 |
コピペミスでした><。正しくは #630 です。
外部モジュールのコピーは「インストーラビルド」の処理なので、それをbatで行ってる以上ここかなとは思いました。こだわりは無いので別の箇所でも構いませんが、pre-build.batに書いても良さそうです。
うーん、そこまで重視するユーザーはいるんですかね?必要ならPEヘッダなり別ファイルをもとに書き換えてもいいんですが。 |
postBuild.bat についてちょっと早とちりだったかも。 単純に postBuild.bat のちょっとした手間を省くための機能を維持するために copy コマンドを2つ残してほしいということだったのでしょうか > @berryzplus さん |
たぶんyesです。 postBuild.batの存在目的は、ビルドの後処理を行うことです。 外部資材をzipで含めている理由は、版管理のわずらわしさを軽減する目的だった気がします。 |
bregonig.dllのコピーを入れたときの話では、「インストーラ配布物を借りる」というニュアンスだったように思います。(過去PRに残ってるはずだけど探す気力がない・・・ 借りるだけなのでインストーラの解凍パスと関係ない場所に展開してコピーする構造になっていたはずです。 タイムスタンプの話は・・・確かにそういう話も出たように思います。 |
私が読み取った範囲では、以下のようになってるはず
特にpostBuild.batはwin32とx64の差を吸収するためにわかりにくく、読み取りに苦労します。以下もzipの版管理よりbatが減らせるメリットのほうが大きいかなと思ってます。
|
実は自分も bregonig.dll のタイムスタンプは維持してほしい派です。 ファイル名が同じならタイムスタンプで新旧比較することが2番目の手段になります。存在するかどうかわからない プロパティ>詳細>製品バージョン(ファイルバージョン)を確認しようとはなかなか思いません。 bregonig.dll はわりとバージョンアップと機能追加があり、タイムスタンプの出番も多くなります。ユーザーが bregonig.dll の最新版をダウンロードしてきて上書きコピーしようとしたときに「古いファイルで新しいファイルを上書きしようとしています」と表示されるのは避けたい事態です。正しく対応できるユーザーは少ないでしょうし、その場合でも混乱は避けられません。 |
確かにその場合、バッチファイルを変更する必要がありますが、 もしこの PR を適用した場合、配布物を更新するとき、 その際、例えば 32bit 版のバイナリと 64bit版のバイナリを取り違える操作ミスが 現状自動で出来てる作業をわざわざ手作業ですることを必須にするもので、 この PR はユーザー観点でも開発者観点でもデメリットしかないと思います。 現状のバッチファイルが複雑なので、簡単にメンテできるようにバッチファイルを |
あー、dllをユーザーが差し替える場合は確かに。納得しました。 @m-tmatma 一方で、整理してバッチが十分簡潔になるならzipのままでもいいとは思います。ということで、改めて考えると以下のような感じが一番シンプルそう
|
配置を自動化するのなら、アーカイブの中身をコミットする必要はなくなります。
そのときはレビューで指摘していただければいいですし、 |
アーカイブにしろ展開後にしろ、バイナリのコミットは現状ではバージョン固定とダウンロード先が消える危険を消すために重要です。 アーカイブを展開するメリットはビルド時の流れが非常に単純でわかりやすくなることです。前のPRで私が「postBuild.batをいじったらcommon-sakura.issを変更しないといけないことに気づかなかった」といったやらかしを防げます。 といっても、このメリットもバッチの整理でどうとでもなりそうな気もします。一度zipをコミットする方針で再度用意してみたいのですが、↓の方針はどうでしょうか? (行けそうな気がしていますが、なにか明確な理由や必然性があってインストーラやzipArtifacts専用のディレクトリにコピーしてるなら無駄PRになってしまうので予め確認) |
ビルド完了と同時に配置が完了していて
ということですよね。すごくいいと思いますが何か穴があるでしょうか。 |
このPRは賞味期限切れだと思うので閉じておきます。 |
解決: #81 #477
関連: #679
置き換えたい: #630
#81 で言った、展開したいというパターンのPRです。
#679#630 は取り下げて、こちらの方を推したいです。メリットなどのまとめ
(確認はしたはずですが、インストーラやzipの中身が正しいか再チェックお願いします 🙏 )