Python 3.13 / 3.14 をサポートし、3.10 サポートを終了する - #13
Merged
Conversation
requires-python を >=3.11,<3.15 に広げ、cp314 ホイールの無い依存を 一斉に更新する(numpy 2.4.6 / pandas 2.3.3 / pandera 0.32.1 / ortools 9.15.6755)。numpy 2.3 以降が Python 3.10 を切っているため、 EOL(2026-10)直前の 3.10 は打ち切る。 - ortools 9.15 の Windows wheel は ortools/.libs/ に共有 DLL を置く 構成のため、同梱物(HiGHS / SCIP / SoPlex / Boost / bzip2 / utf8_range が追加)を再審査し、BUNDLED_NATIVE_COMPONENTS と ライセンス通知を更新。凍結ビルドで .libs が収集されるよう hook-ortools.py を追加 - numpy 2.4 は dist-info 内に同名ライセンスを入れ子で同梱するため、 distribution_license_files() を階層保存に変更 - pandera は pandera.pandas 名前空間へ移行、tomli フォールバックを撤去 - CI matrix を 3.11〜3.14 に変更(カバレッジ集計 3.12、凍結バイナリ 3.11 は据え置き)。バッジとドキュメントの表記も更新 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Coverage reportClick to see where and how coverage changed
This report was generated by python-coverage-comment-action |
||||||||||||||||||||||||
ortools の拡張モジュールが import する ortools/.libs の共有 DLL は、 PyInstaller の依存解決では最終的に PATH の探索へフォールバックする。 GitHub Actions の Windows ランナーのように PATH 上へ同名の無関係な DLL(abseil_dll.dll / libprotobuf.dll)を持つ環境では、そちらが解決されて バージョン違いの DLL が _internal/ 直下に混入し、 verify_runtime_dlls_are_accounted_for が検出してビルドが止まっていた。 wheel 自身の .libs を PATH の先頭に足してから PyInstaller を起動し、 常に正しいコピーが解決されるようにする。解決先が site-packages 配下に なるため配置も ortools/.libs のまま保たれ、hook-ortools.py の収集分と 重複しない。PATH に同名 DLL を置いた環境で失敗の再現と修正後の成功、 および binary テストの通過をローカルで確認済み。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pyinstaller_build.yml は PR ごとに dist/ChilmAI を組み立てて検証まで しているが、成果物は捨てていた。検証がすべて通った場合のみ actions/upload-artifact でアップロードし、Actions の実行ページから 動作確認用にダウンロードできるようにする。数百 MB 級なので保持期間は 7 日にする。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
upload-artifact はドット始まりのパスを隠しファイルとして既定で除外する (include-hidden-files: false)。ortools 9.15 の共有 DLL 置き場 ortools/.libs がこれに該当して丸ごと欠落し、Artifact からダウンロード した exe が DLL load failed で起動しなかった(CI の binary テストは アップロード前のローカル成果物に対して走るため検出できない)。 リリース ZIP は release_tag.yml の Compress-Archive で作られる別経路で、 こちらは Windows の Hidden 属性ベースの判定のため .libs を含むことを 確認済み。影響は PR 段階の Artifact のみ。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ciela
marked this pull request as ready for review
August 26, 2026 05:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
サポート対象の Python を 3.11〜3.14 に変更します(
requires-python = ">=3.11,<3.15")。3.13 / 3.14 対応には cp314 ホイールを持つ依存への一斉更新が必要で、numpy は 2.3 以降 Python 3.10 をサポートしないため、EOL(2026-10)直前の 3.10 サポートを終了します。
主な変更
依存の更新(すべて
==固定のまま)pandera.pandas名前空間へ移行ortools 9.15 のライセンス再審査
9.15 の Windows wheel は
ortools/.libs/に共有 DLL を置く構成で、同梱物が大きく変わります。apps/licenses/README.mdの手順どおり上流 CMake マニフェストと wheel 実バイナリのシンボルで裏取りし、以下を更新しました。BUNDLED_NATIVE_COMPONENTS: HiGHS (MIT) / SCIP v10 (Apache-2.0) / SoPlex (Apache-2.0) / Boost (BSL-1.0) / bzip2 / utf8_range (MIT) / pybind11_abseil を追加。Coin-OR 5 件・abseil・protobuf・re2・zlib・pybind11 はタグとパッチを更新NO_LICENSE_TEXT_PACKAGESを空にlicenses/native/の上流条文を再収集、licenses/spdx/に BSL-1.0 と bzip2-1.0.6 を追加PERMISSIVE_LICENSESに 0BSD と CC0-1.0 を追加凍結ビルドの修正
apps/pyinstaller_hooks/hook-ortools.pyを追加: ortools は<pkg>/.libs/の DLL を実行時にプリロードしますが(見つからない場合は黙ってスキップ)、PyInstaller が収集しないため凍結 exe がDLL load failedで起動不能になります。collect_dynamic_libsでパッケージ相対配置のまま収集しますdistribution_license_files()を階層保存に変更: numpy 2.4 は dist-info 内に同名ライセンス(LICENSE.md×9 など)を入れ子ディレクトリで同梱し、ファイル名への平坦化では上書き衝突するためCI・ドキュメント
3.11〜3.14に変更(カバレッジ集計 3.12、PyInstaller 凍結バイナリ 3.11 は据え置き)、lint の ruff ジョブを 3.11 に検証
uv sync(全 extra)と全テスト 522 件パスruff check/ruff format --check/mkdocs build --strictパスcheck_bundled_notices.pyをローカルで通過レビュー時の留意点
🤖 Generated with Claude Code