chore(csharp): .NET 全プロジェクトを net10.0 LTS に直接移行 - #374
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR migrates the C# solution to .NET 10 by updating the C# SDK pin, all three project TFMs, and the dedicated C# workflows. It fits into the repository’s broader runtime-maintenance work by moving the .NET components onto the new LTS line.
Changes:
- Bump the C# SDK pin in
src/csharp/global.jsonfrom 9.0.100 to 10.0.100. - Retarget
PiperPlus.Core,PiperPlus.Cli, andPiperPlus.Core.Teststonet10.0. - Update the standalone C# CI/build workflows to provision
10.0.xinstead of the previous 8.x/9.x SDK set.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
src/csharp/global.json |
Updates the pinned C# SDK version to .NET 10. |
src/csharp/PiperPlus.Core/PiperPlus.Core.csproj |
Retargets the core library to net10.0. |
src/csharp/PiperPlus.Core.Tests/PiperPlus.Core.Tests.csproj |
Retargets the C# test project to net10.0. |
src/csharp/PiperPlus.Cli/PiperPlus.Cli.csproj |
Retargets the CLI tool to net10.0. |
.github/workflows/csharp-ci.yml |
Switches the dedicated C# CI workflow to install .NET 10. |
.github/workflows/csharp-build-all-platforms.yml |
Switches the cross-platform C# build workflow to install .NET 10. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
1 task
ayutaz
added a commit
that referenced
this pull request
May 3, 2026
PR #374 の Copilot レビューで指摘された 6 件に対応: - ci.yml の csharp-tests / csharp-build ジョブの dotnet-version を 10.0.x に統一 - dev-create-release.yml の csharp-cli / publish_nuget ジョブも 10.0.x に統一 - src/csharp/PiperPlus.Core/README.md の TFM 記載を net10.0 に更新 (2 箇所) - src/csharp/PiperPlus.Cli/README.md の TFM 記載を net10.0 に更新 - docs/guides/testing/multilingual-testing.md の CI matrix 表を更新 - CLAUDE.md の C# CLI セクションの TFM 表記を更新 - global.json を src/csharp/ → リポルートに移動 (ルートからの dotnet コマンドで SDK バージョンが解決されるよう) ローカル検証: - dotnet build src/csharp/PiperPlus.sln -c Release: 0 警告 / 0 エラー - dotnet test (net10.0): 1166/1166 PASS
.NET 9 (2026-05-12 EOL) と .NET 8 (2026-11-10 EOL) を経由する二度手間を避け、 LTS の net10.0 (2028-11 まで) に直接統一。Cli/Tests/Core 全 csproj、global.json、 CI workflows を一括更新。 ローカル検証: - dotnet build src/csharp/PiperPlus.sln -c Release: 0 警告 / 0 エラー - dotnet test (net10.0): 1166/1166 PASS Closes #371
PR #374 の Copilot レビューで指摘された 6 件に対応: - ci.yml の csharp-tests / csharp-build ジョブの dotnet-version を 10.0.x に統一 - dev-create-release.yml の csharp-cli / publish_nuget ジョブも 10.0.x に統一 - src/csharp/PiperPlus.Core/README.md の TFM 記載を net10.0 に更新 (2 箇所) - src/csharp/PiperPlus.Cli/README.md の TFM 記載を net10.0 に更新 - docs/guides/testing/multilingual-testing.md の CI matrix 表を更新 - CLAUDE.md の C# CLI セクションの TFM 表記を更新 - global.json を src/csharp/ → リポルートに移動 (ルートからの dotnet コマンドで SDK バージョンが解決されるよう) ローカル検証: - dotnet build src/csharp/PiperPlus.sln -c Release: 0 警告 / 0 エラー - dotnet test (net10.0): 1166/1166 PASS
ayutaz
force-pushed
the
chore/dotnet-10-lts-migration
branch
from
May 3, 2026 16:30
29fa75e to
be5c168
Compare
PR #374 のレビュー指摘調査で見つかった以下の漏れに対応: - src/wasm/openjtalk-web/test/QA-CHECKLIST.md: engines.node の期待値を ">=18.0.0" → ">=24.0.0" に更新 (PR #370 で package.json 側は >=24 に上げたが、QA チェックリストは漏れていた) - docker/webui/Dockerfile + docker/README.md: python:3.11-slim → python:3.11-slim-trixie に明示 (Debian バージョン明示で再現性向上、PR #373 の bookworm → trixie 方針と整合)
ayutaz
added a commit
that referenced
this pull request
May 3, 2026
Copilot 第 2 ラウンドのレビュー指摘に対応: - csharp-build-all-platforms.yml の summary ジョブを ubuntu-24.04 に pin - dev-create-release.yml の create_release / publish_pypi / publish_pypi_stub 等 6 箇所を ubuntu-24.04 に pin - release-shared-lib.yml の build-android を含む 2 箇所を ubuntu-24.04 に pin (ci.yml の changes / npm-package-tests / lint / ci-required は前コミット a1dca4d で対応済み。multilingual-testing.md の matrix 表記は PR #374 で修正済み。)
ayutaz
added a commit
that referenced
this pull request
May 3, 2026
Copilot 第 2 ラウンドのレビュー指摘に対応: - csharp-build-all-platforms.yml の summary ジョブを ubuntu-24.04 に pin - dev-create-release.yml の create_release / publish_pypi / publish_pypi_stub 等 6 箇所を ubuntu-24.04 に pin - release-shared-lib.yml の build-android を含む 2 箇所を ubuntu-24.04 に pin (ci.yml の changes / npm-package-tests / lint / ci-required は前コミット a1dca4d で対応済み。multilingual-testing.md の matrix 表記は PR #374 で修正済み。)
ayutaz
added a commit
that referenced
this pull request
May 4, 2026
…ixie に更新 (#373) * chore: GitHub Actions runner を ubuntu-24.04 に、Docker base を Debian trixie に更新 ubuntu-22.04 は 2025-12 から段階退役予定、Debian bookworm の通常サポートが 2026-06 終了予定のため、 ubuntu-24.04 と debian:trixie (Debian 13、2025-08 リリース) に統一。 * chore: ubuntu-24 統一を徹底 (Copilot 指摘 + test-cpp-inference 失敗対応) レビューと CI 失敗を踏まえて ubuntu-22 → 24 統一を完徹底: - ci.yml の changes / 他 3 ジョブの `runs-on: ubuntu-latest` を `ubuntu-24.04` に pin - test-arm64-tts.yml の docker run container を `ubuntu:22.04` → `ubuntu:24.04` - docker/cpp-inference/Dockerfile (builder + runtime) を `ubuntu:24.04` に - docker/cpp-inference/Dockerfile.test も同様 - docker/cpp-dev/Dockerfile も同様 - docker/README.md の表記も更新 CI 失敗 (test-cpp-inference の `apt-get install libgomp1` exit 100) は ubuntu:22.04 ベースで発生していたため、bump で根本対応になる見込み。 * chore: ubuntu-24.04 pin を関連 workflow にも展開 Copilot 第 2 ラウンドのレビュー指摘に対応: - csharp-build-all-platforms.yml の summary ジョブを ubuntu-24.04 に pin - dev-create-release.yml の create_release / publish_pypi / publish_pypi_stub 等 6 箇所を ubuntu-24.04 に pin - release-shared-lib.yml の build-android を含む 2 箇所を ubuntu-24.04 に pin (ci.yml の changes / npm-package-tests / lint / ci-required は前コミット a1dca4d で対応済み。multilingual-testing.md の matrix 表記は PR #374 で修正済み。) * fix(docker): ubuntu:24.04 の既存 ubuntu ユーザー (UID 1000) と衝突回避 ubuntu:24.04 には UID 1000 のデフォルト 'ubuntu' ユーザーが存在するため、 useradd -m -u 1000 piper が exit code 4 で失敗していた (CI test-cpp-inference, test-cpp-unit-tests)。userdel -r ubuntu で削除してから piper を作成するように修正。
ayutaz
added a commit
that referenced
this pull request
May 4, 2026
ユーザー向け文書から廃止/古い情報を一掃。 ### 多言語 README (11ファイル) - 9言語版 (DE/ES/FR/HI/KO/PT/RU/SV/ZH) で `--mb-istft` フラグ言及を除去 (v1.12.0 で常時有効) - 8言語版で Windows セットアップから espeak-ng / ESPEAK_DATA_PATH を削除し OpenJTalk 自動 DL 説明に統一 (espeak-ng は元から不使用) - 11言語全 README の .NET TFM `net8.0/net9.0` → `net10.0` (PR #374 反映) - 11言語全 README の Rust crate 例 `piper-plus = "0.2.0"` → `"0.3"` ### docs/ - docs/README.md, binary-selection.md, building-from-source.md, troubleshooting.md, windows-setup.md の `.NET 8/9` → `.NET 10` - docs/guides/training.md: `--stochastic` フラグ例を削除 (デフォルト有効のため) ### その他 - CLAUDE.md: npm version 表記 0.3.1 → 0.5.0、v1.12.0 Breaking changes 注意書き追加 - CONTRIBUTING.md: 例示バージョン v1.11.0 → v1.12.0、npm-v0.3.1 → npm-v0.5.0 - README.npm.md: importmap `piper-plus@0.4.0` → `piper-plus@0.5.0` - docker/README.md: C++ Dockerfile から espeak-ng 言及を削除 (HTS voice 依存除去 #342) - src/csharp/PiperPlus.Cli/README.md, src/python_run/README.md: .NET 10 同期 - src/python_run/README_http.md: 「Flask 版からの移行」→「v1.11 以前 (Flask) からの互換性」 - src/python_run/piper/http_server.py: docstring の "Flask-compatible" → "FastAPI compatible"
ayutaz
added a commit
that referenced
this pull request
May 4, 2026
* chore(release): v1.12.0 — MB-iSTFT 統一 + Voice Cloning/SSML/短テキスト品質改善 - VERSION を 1.11.0 → 1.12.0 に更新 - CHANGELOG.md に v1.12.0 の全変更点を整理 (34コミット分) ## v1.12.0 ハイライト ### Breaking - Decoder を MB-iSTFT-VITS2 に統一 (HiFi-GAN Generator 削除)、CPU 推論 2.21x 高速化 (#320) ### New Features - 全7ランタイムで短テキスト合成品質改善 Strategy A/B/C (#337) - Voice Cloning (5ランタイム) + SSML (4ランタイム) + Wyoming Docker + iOS/Android CI (#331) - Python ランタイム phoneme timing + ストリーミング文単位分割 (#349, #367) - HTTP server を Flask → FastAPI 移行 + StreamingResponse 対応 (#361) - 汎用 Colab ファインチューニングノートブック (#324) ### Refactor / Removed - HTS voice 依存を完全除去 (#342) - Unity UPM 削除 (#341) ### Chore - .NET 全プロジェクトを net10.0 LTS に移行 (#374) - GitHub Actions runner を ubuntu-24.04、Docker base を Debian trixie (#373) - EOL ランタイム (Node 18, Python 3.8) を更新 (#370) * chore(release): バージョンファイル整合性 + リリースワークフロー動的バージョン化 - src/python/piper_train/VERSION: 1.11.0 → 1.12.0 - src/python/pyproject.toml (piper-train): version 1.11.0 → 1.12.0 - uv.lock 再生成 (piper-train v1.12.0 反映) - CHANGELOG L94: Flask → FastAPI (HTTP server 移行と整合) - dev-create-release.yml: C#/Rust/npm のリリースノート install コマンドを各 manifest から動的取得に変更 (従来 0.1.0 ハードコード) * chore(packages): C#/Rust/npm パッケージのバージョンを v1.12.0 機能反映に合わせて bump v1.12.0 の Voice Cloning / SSML / 短テキスト品質改善 / Phoneme Timing は全ランタイムに影響するため、独立管理パッケージも MINOR を上げる。 - C# `PiperPlus.Core` / `PiperPlus.Cli`: 0.2.0 → 0.3.0 - Rust workspace (`piper-plus`, `piper-plus-cli`, `piper-plus-g2p` 等): 0.3.0 → 0.4.0 - 内部 path+version 依存も 0.3.0 → 0.4.0 に同期 - Cargo.lock 再生成 - npm `piper-plus` (openjtalk-web): 0.5.0 → 0.6.0 - npm `@piper-plus/g2p`: 0.3.0 → 0.4.0 - npm `piper-plus` の `@piper-plus/g2p` 依存も `^0.4.0` に更新 * fix(catalog): モデルカタログ size_bytes と説明を最新 HuggingFace アセットに同期 各言語実装 (cpp / C# / Go / Python / Rust) のモデルカタログで size_bytes と description が異なる値を持っていた問題を解消。HuggingFace Tree API で実ファイルサイズを取得して全実装で統一。 - tsukuyomi-chan-6lang-fp16.onnx: 39,652,717 B (HF 実サイズ) - css10-ja-6lang-fp16.onnx: 39,652,717 B (HF 実サイズ) - C# VoiceCatalog: tsukuyomi の size_bytes 77594624 (誤値、WavLM 旧モデル) → 39652717 に修正、描述 "WavLM discriminator (300 epochs)" → MB-iSTFT 版に更新 - Go voice_catalog: tsukuyomi の placeholder filename を実ファイル名 `tsukuyomi-chan-6lang-fp16.onnx` に修正、css10 の RepoID 誤り (piper-plus-base 指定) を `piper-plus-css10-ja-6lang` に修正 - config.json サイズも HF 実サイズ (6279 B / 5912 B) に統一 - md5_digest は空のまま (verification はスキップ動作で対応済み) * docs: 多言語 README と各種ドキュメントを v1.12.0 内容に追従 ユーザー向け文書から廃止/古い情報を一掃。 ### 多言語 README (11ファイル) - 9言語版 (DE/ES/FR/HI/KO/PT/RU/SV/ZH) で `--mb-istft` フラグ言及を除去 (v1.12.0 で常時有効) - 8言語版で Windows セットアップから espeak-ng / ESPEAK_DATA_PATH を削除し OpenJTalk 自動 DL 説明に統一 (espeak-ng は元から不使用) - 11言語全 README の .NET TFM `net8.0/net9.0` → `net10.0` (PR #374 反映) - 11言語全 README の Rust crate 例 `piper-plus = "0.2.0"` → `"0.3"` ### docs/ - docs/README.md, binary-selection.md, building-from-source.md, troubleshooting.md, windows-setup.md の `.NET 8/9` → `.NET 10` - docs/guides/training.md: `--stochastic` フラグ例を削除 (デフォルト有効のため) ### その他 - CLAUDE.md: npm version 表記 0.3.1 → 0.5.0、v1.12.0 Breaking changes 注意書き追加 - CONTRIBUTING.md: 例示バージョン v1.11.0 → v1.12.0、npm-v0.3.1 → npm-v0.5.0 - README.npm.md: importmap `piper-plus@0.4.0` → `piper-plus@0.5.0` - docker/README.md: C++ Dockerfile から espeak-ng 言及を削除 (HTS voice 依存除去 #342) - src/csharp/PiperPlus.Cli/README.md, src/python_run/README.md: .NET 10 同期 - src/python_run/README_http.md: 「Flask 版からの移行」→「v1.11 以前 (Flask) からの互換性」 - src/python_run/piper/http_server.py: docstring の "Flask-compatible" → "FastAPI compatible" * docs(readme): Rust crate version 例を 0.3 → 0.4 に修正 11 言語 README で workspace 実バージョン (`0.4.0`) と整合させる。前コミット (2686d43) で `0.2.0 → 0.3` に置換したが、bump コミット (9516bb5) で workspace は `0.4.0` まで上げているため不整合。 * docs(changelog): phonemize() Breaking 格上げ + マイグレーションガイド新設 ### CHANGELOG - `PiperVoice.phonemize()` の戻り値**意味論**変更を Added → Changed (Breaking) セクションに移動。 - 戻り値型 `list[list[str]]` は v1.11 と同じだが、v1.11 は 1 要素 (whole text) を返していたのに対し v1.12 は文ごとに N 要素返す。 - `phonemize(text)[0]` で固定アクセスしている呼び出し側は壊れるため Breaking 扱いが妥当。 ### docs/migration/v1.11-to-v1.12.md (新規) ユーザー種別ごとの移行手順を集約: - 推論のみ利用 (Breaking なし) - HiFi-GAN ckpt から学習継続中 (再 FT 必要) - Flask `[http]` extras 利用 (FastAPI 自動切替) - Unity UPM 利用 (`ayutaz/uPiper` 別 repo) - `PiperVoice.phonemize()` 直接利用 (戻り値要素数変更) - バージョン対応表 + トラブルシューティング * feat(train): HiFi-GAN ckpt resume 検出 + CONTRIBUTING に npm リリース順序追記 ### __main__.py: HiFi-GAN ckpt 検出 v1.11.0 以前の HiFi-GAN ckpt を `--resume_from_checkpoint` または `--resume-from-multispeaker-checkpoint` に渡された際、強制的に RuntimeError で migration ガイドへ案内する。検出ロジックは: - state_dict に `model_g.dec.*` がある (= decoder 入りモデル) - かつ `model_g.dec.subband_conv_post` / `model_g.dec.pqmf` の MB-iSTFT マーカーが**ない** これに合致する ckpt は HiFi-GAN ベースとみなしてエラー。従来の strict=False フォールバック (info ログだけ吐いて静かに学習継続) では構造不一致のまま 学習が進み、ユーザーが原因に気づきにくかった。 ### CONTRIBUTING.md: npm リリース順序 `@piper-plus/g2p` のリリースを先に行ってから `piper-plus` を上げる必要が あることを Release order セクションに明記。Manual Release ワークフローは PyPI/NuGet/crates.io のみ自動化されており、npm は `npm-v*` / `g2p-v*` タグ別経路で動くため、順序を間違うと `No matching version found for @piper-plus/g2p@^0.4.0` で install 失敗する。 * chore(deps): ONNX Runtime 1.14.x → 1.17.0 統一 (C++ / Android PR CI / Docker) CVE 残存リスク (GHSA-fp9j-rgxr-w83q 他) のあった C++ ローカルビルドと Android PR CI を release 配布 (release-shared-lib.yml) と同じ 1.17.0 に揃える。 - cmake/OnnxRuntime.cmake: Linux/macOS download URL を 1.14.1 → 1.17.0 - cmake/find_onnxruntime_windows.cmake: Windows download URL を 1.14.1 → 1.17.0 - docker/cpp-dev/Dockerfile: Linux x64 prebuilt 1.14.1 → 1.17.0 - _build-test-cpp.yml: Linux x64 / macOS arm64 / macOS x86_64 / Windows x64 各 ダウンロード URL を 1.14.1 → 1.17.0 - android-build.yml (PR CI): ONNXRUNTIME_VERSION 1.14.0 → 1.17.0 - ort-versions.md: Android (PR CI) 行を 1.14.0 → 1.17.0 に表更新 これで release / iOS / Android (release+PR) / C++ build / Docker dev 全てが 1.17.0 に揃う。Issue #372 の Rust ort 2.0.0-rc.12 や Python `>=1.17` (open range)、C# 1.24.3、Go 1.27.0 はそのまま (別途検討)。 * ci(security): pip-audit / cargo-audit / npm audit + Dependency Review を追加 Dependabot は週次の reactive な検出に依存していたが、PR 時点で proactive に 脆弱性を捕捉するため CVE スキャナを CI に統合。 - dependency-review-action (PR のみ): 新規追加依存の HIGH 以上で fail - pip-audit: pyproject.toml + src/python_run の OSV データソース照合 - cargo-audit: src/rust ワークスペース、warnings も deny - npm audit: src/wasm/{openjtalk-web,g2p} の production 依存 HIGH 以上で fail トリガー: - pull_request (依存ファイル変更時のみ paths フィルタ) - push to dev/main - schedule (weekly Mon 03:00 UTC = 12:00 JST) - workflow_dispatch (手動) * ci(release): WebUI Docker 自動配信 + shared-lib Windows ビルド修正 ### docker-build.yml: build-webui ジョブ追加 build-wyoming と同じパターンで build-webui ジョブを追加。タグ push 時に - ghcr.io/<owner>/<repo>/webui (常時) - DockerHub <USER>/piper-plus-webui (DOCKERHUB_USERNAME/TOKEN 設定時のみ) の両方に publish される。これで python-inference / python-train / cpp-dev / cpp-inference / wyoming / webui の 6 イメージが揃って自動更新される。 ### release-shared-lib.yml: Windows ビルドの CMake パスエスケープ修正 v1.11.0 で Windows ビルドが「`D:apiper-pluspiper-plus/install/...`」と 化けて失敗していた問題を修正。原因は bash on windows-2022 が `${{ github.workspace }}` (= `D:\a\piper-plus\piper-plus`) を展開する際、 バックスラッシュをエスケープシーケンスとして消費していたこと。 対応: - Configure CMake / Build / Verify install layout / Create archive を Unix と Windows で別ステップに分離 - Windows 側は `pwsh` + `${env:GITHUB_WORKSPACE}` + 手動で `\` → `/` 置換 - Install ステップは引数でパスを使わないので bash 共通のまま これで iOS / Android / Linux / macOS / Windows 全 5 ターゲットの shared lib が release タグで揃って配布される。 * docs(changelog): Copilot レビュー指摘を反映 — Colab notebook と HTS voice の記述を正確化 PR #375 の Copilot Reviewer インラインコメント 2 件への対応。 - L62 Colab notebook: 「任意のカスタムデータセット」→「LJSpeech 形式 (wavs/ + metadata.csv) のカスタムデータセット」 notebook の実装は LJSpeech レイアウト前提。任意形式が使える誤解を防ぐ。 - L127 HTS voice 削除: 「ピュアな pyopenjtalk-plus パスのみ使用」→ 「Python ランタイムから HTS voice 依存を完全除去 — Python は pyopenjtalk-plus パスのみ。C++/Go/Rust/WASM の OpenJTalk バックエンドは引き続き利用」 PR #342 は Python ランタイム限定の変更で、他言語の OpenJTalk バックエンドは そのまま残っている。「ピュアな…パスのみ」表記は他ランタイムユーザーを 誤解させる。 * fix(lint): except 内の raise に from None を付与 (ruff B904) HiFi-GAN ckpt 検出ロジック (c873fd4) で追加した raise RuntimeError が except ブロック内にあったため B904 違反。元の Lightning の RuntimeError は strict=False フォールバックの起点であり、HiFi-GAN 検出エラーとは無関係なので from None で抑制する。 * docs(claude): CLAUDE.md を最適化 (966 → 323 行、67% 削減) v1.12.0 リリース直前の状態に同期しつつ、構造を整理して可読性向上。 ### 削減ポイント - **学習コマンドの重複削除**: 6lang 事前学習コマンドとつくよみちゃん FT コマンドを Template A/B に統合 (3重複 → 1) - **実装済み機能セクションの圧縮**: 22 機能をカテゴリ別 (Decoder/学習補助/ONNX/Voice Cloning/G2P/ランタイム/サーバー) にグルーピング、各機能を 1-2 行に - **ファイルパス索引の集約**: 7 言語別の重複表を「Python 学習側 / ランタイム側 / 横断仕様 / 各言語ランタイム」の 4 表に統合 - **アーカイブ圧縮**: バイリンガル v2/v3/v4 詳細をバージョン比較表 + Key learnings に圧縮 - **HuggingFace モデル一覧の更新**: css10-ja-6lang を追加 ### 新規/更新内容 - v1.12.0 Breaking changes 注記をヘッダーに昇格、マイグレーションガイドへリンク - 学習済みモデル一覧を MB-iSTFT 版含めて整理 - ランタイム別パッケージ表で各言語の最新バージョン (1.12.0 / 0.3.0 / 0.4.0 / 0.6.0) を明示 - HiFi-GAN ckpt resume 不可のトラブルシューティング項目追加 - 横断仕様 (`docs/spec/*.toml`) の参照を主要ファイル索引に集約 機能の網羅性は維持。詳細な実装ファイルパスは各機能行に保持し、別途索引と二重管理しない方針に変更。 * fix(ci): CI 失敗 3 件を修正 (build-piper ORT 同期 + audit 設定調整) PR #375 で発生していた CI 失敗 3 件を解消。 ### macOS TTS test (Test Japanese TTS / Test Multilingual TTS on macos-latest) 原因: build-piper.yml は 1.14.1 を /usr/local/lib に置くが、CMake は 1.17.0 を ExternalProject 経由で取得。piper バイナリが rpath @rpath/libonnxruntime.1.17.0.dylib を期待するが、dist/piper/lib にコピーされた のは 1.14.1 dylib。結果「unloadable mach-o file type 10」(dSYM 扱い) で fail。 対応: build-piper.yml の ONNX Runtime 全参照を 1.17.0 に同期 (Linux x64 + macOS arm64、キャッシュキー suffix を v3 に更新)。これで先の C++ ORT 同期コミット (33c203b) と整合する。 ### cargo-audit (Rust) 原因: --deny warnings 指定で unmaintained 警告 (RUSTSEC-2025-0141 bincode、 RUSTSEC-2021-0153 encoding) も fail 扱いに。これらは vulnerabilities ではなく "unmaintained" 警告なのでリリースをブロックすべきではない。 対応: --deny warnings を削除。cargo audit デフォルト挙動 (実 CVE で exit 1、 unmaintained は warn のみ) に戻す。 ### npm audit (src/wasm/g2p) 原因: src/wasm/g2p は package-lock.json をコミットしていないため "This command requires an existing lockfile" で fail。 対応: audit ステップ前に lockfile を生成 (npm install --package-lock-only --no-audit --no-fund)。openjtalk-web 側はコミット済 lockfile を利用。 * fix(ci/windows): build-piper の Windows ビルドで実エラーを可視化 + piper.exe 不在を fail 扱い PR #375 の Windows multilingual ビルドが「Build succeeded」と表示されつつ piper.exe が生成されず、後続の dist 作成ステップで「piper.exe not found, creating minimal package」となり、テストが「lib/onnx not loadable」で fail していた。 原因 (推定): - `$buildResult = cmake --build ...` で stdout を変数にキャプチャしていたため 実際の build ログ (linker エラー等) が一切表示されない - LASTEXITCODE = 0 なのに piper.exe が生成されない場合 (CMake target 不一致や link 失敗の隠蔽) を検知する仕組みが無く、`Warning: piper.exe not found, creating minimal package` で握り潰されていた 対応: - cmake --build の出力をキャプチャせず、`--verbose` と `--target piper` を付与 して直接 stdout/stderr を表示 - build 後に piper.exe の存在を Test-Path で検証し、無ければ Get-ChildItem で実際に生成された exe/dll を一覧表示してから exit 1 これで次の CI 実行で根本原因 (linker エラー等) が log に表示される。
6 tasks
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.
Summary
PiperPlus.Core.csprojの TargetFramework をnet8.0→net10.0PiperPlus.Cli.csprojの TargetFramework をnet9.0→net10.0PiperPlus.Core.Tests.csprojの TargetFramework をnet9.0→net10.0global.jsonをsrc/csharp/から リポルートに移動、SDK バージョンを9.0.100→10.0.100csharp-ci.yml/csharp-build-all-platforms.ymlのdotnet-versionを10.0.xに統一ci.ymlのcsharp-tests/csharp-buildジョブのdotnet-versionも10.0.xに統一dev-create-release.ymlのcsharp-cli/publish_nugetジョブも10.0.xに統一src/csharp/PiperPlus.Core/README.md,src/csharp/PiperPlus.Cli/README.md,CLAUDE.md,docs/guides/testing/multilingual-testing.mdの TFM 記載をnet10.0に更新Why
net10 を直接選んだ理由
追加対応 (commit 736e75f)
PR #374 のレビュー指摘調査で見つかった他 PR の漏れも本 PR で補完:
src/wasm/openjtalk-web/test/QA-CHECKLIST.md:engines.nodeを">=18.0.0"→">=24.0.0"に更新 (PR chore: EOL ランタイム (Node 18, Python 3.8) を更新 #370 でpackage.json側は更新済みだったが QA チェックリストが漏れ)docker/webui/Dockerfile+docker/README.md:python:3.11-slim→python:3.11-slim-trixieに明示 (Debian バージョン明示で再現性向上、PR chore: GitHub Actions runner を ubuntu-24.04 に、Docker base を Debian trixie に更新 #373 のbookworm→trixie方針と整合)Test plan
dotnet build src/csharp/PiperPlus.sln -c Release— 0 警告 / 0 エラー (ローカル)dotnet test src/csharp/PiperPlus.sln -c Release— 1166/1166 PASS (net10.0)csharp-ci.yml,csharp-build-all-platforms.yml,ci.yml) が 3 OS で全グリーンCloses
Notes
netstandard2.1multi-target 化は不要 (uPiper は piper-plus C# DLL を未使用、確認済み)Microsoft.ML.OnnxRuntime.Managed 1.24.3Microsoft.Extensions.Logging.Abstractions 8.0.3xunit.v3 3.2.2(Tests)System.CommandLine 2.0.5(Cli)