Closed dep5 closed 1 year ago
Visual Studio 2022 17.4.3でヘルプファイルのコンパイルをしてみました 最新の v143 ビルド ツール用 C++ MFC これを入れてからビルドするときに
このフレームワーク バージョンの Developer Pack (SDK/Targeting Pack) をインストールするか、 アプリケーションのターゲットを再設定してください。
というエラーが出たら 指定通りのバージョンのTargeting Packを入れるか
tools\ChmSourceConverter\ChmSourceConverter\ChmSourceConverter.csproj
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
ここをインストールしているTargeting Packのバージョンに合わせる必要がありました
:white_check_mark: Build sakura 1.0.4215 completed (commit https://github.com/sakura-editor/sakura/commit/e79c904e0d by @dep5)
berryzplusさん
pythonをインストールしていない環境で
build-chm.bat
を使ってヘルプをコンパイルしようとすると
pythonが必要ですと言われてコンパイルできません。
help\remove-comment.py
を使ってコメントを削除する時にpythonを使っています。代わりのコードを書けばpythonは必要ありません。
ソース中でpythonを使う場所はほかにもありますが ヘルプをコンパイルするだけならpythonが無くてもできるようにしました。
pythonをインストールしていない環境で
build-chm.bat
を使ってヘルプをコンパイルしようとすると pythonが必要ですと言われてコンパイルできません。
ヘルプをビルドするにはpythonが必要です。
だと思っています。
ビルド手順の最初は「pythonをインストールしていなければインストールします。」になります。
ドキュメントにpythonのインストール手順を書くべきなのかも知らんです。
pythonをインストールするには管理者権限でpowershellを開き、chocolateyのコマンドを叩きます。
cinst python
インターネット環境とPCの管理者権限が必要ですが、問題はないと思います。
ヘルプをビルドするにはpythonが必要です。
だと思っています。
ヘルプのビルド中、pythonを使用しているのは
help\remove-comment.py
1つだけです。
(pythonはよくわかりませんが)
%HH_INPUT%
をBOM付UTF8
で読んで行ごとにばらし
改行を削除し正規表現でコメントを削除し改行を付け直して、
%HH_OUTPUT%
にBOM付UTF8
で書き込んでいる。
ということだと思います。
Windows 付属のPowershellでは
UTF8はBOM付きを指します。
Get-Content
は配列として読み込むので同等のことをしています。
Pythonをインストール済みの方のテスト方法
build-chm.bat
の6行目に
set CMD_PYTHON=
と書き込めばpythonへのパスが消えるので
PR前後でテストしてみてください
ヘルプのビルド中にほかにpythonを使う箇所があれば教えてください。 あるならこのPRはクローズします。
ヘルプ以外のビルドではpythonが必要なのはわかっていますが、 本体のビルドはpythonが無くてもできているので、 できたらインストール必須にはしてほしくないな、と思います
pythonをインストールしない理由を詳しく聞いても 納得できなさそうな気がするので 他の回避策を模索してみます。
powershellのワンライナーで書けるので「python必須は無駄じゃね?」には同意できます。
pythonスクリプトにするメリットは「処理に対するテストを書ける」ですが 現状ではテストコードがないのでpythonである必然はありません。
CIにpythonのない環境はありませんが pythonのない環境をシミュレートするのは面倒です。 pythonの有無で分岐するバッチを書くと 「pythonなし」の分岐がCIでは実行されないことになります。 つまり、ローカルとCIで手順が二重化してしまいます。
「置き換え」であれば反対する理由がなくなるのですが、そちらの方向にはできないでしょうか?
ちなみにこのPRは仕様変更でも不具合修正でもない認識です。
:white_check_mark: Build sakura 1.0.4226 completed (commit https://github.com/sakura-editor/sakura/commit/47c148c841 by @dep5)
Kudos, SonarCloud Quality Gate passed!
:white_check_mark: Build sakura 1.0.4227 completed (commit https://github.com/sakura-editor/sakura/commit/5a141272ac by @dep5)
PR の目的
カテゴリ
PR の背景
ヘルプをコンパイルするのにPythonが必要です
PR のメリット
ヘルプのコンパイルだけならPythonのインストールがいらなくなります
PR のデメリット (トレードオフとかあれば)
仕様・動作説明
Pythonがインストールされていない時に Pythonの処理をPowershellで処理します
help\remove-comment.py
%HH_INPUT%
をBOM付UTF8
で読んで行ごとにばらし 改行を削除し正規表現でコメントを削除し改行を付け直して、%HH_OUTPUT%
にBOM付UTF8
で書き込んでいる。 ということだと思います。Windows 付属のPowershellでは UTF8はBOM付きを指します。
Get-Content
は配列として読み込むので同等のことをしています。 pythonでは改行があるとエラーになるので一旦削除している?ようですが Powershellではエラーにならなかったのでその処理はしていません。PR の影響範囲
テスト内容
Pythonで出力される内容と同じものができました
テスト1
手順 Pythonをインストール済みの方のテスト方法
build-chm.bat
の6行目にset CMD_PYTHON=
と書き込めばpythonへのパスが消えるので PR前後でテストしてみてください build-chm.batを起動するとchmヘルプがコンパイルできます関連 issue, PR
参考資料