From 2ac59f41071b24980490b2ca0e47711d4a1aa289 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Mon, 23 Dec 2024 18:58:07 +0900 Subject: [PATCH 1/3] =?UTF-8?q?ci:=20cargo-deny=E3=81=AE`advisories`?= =?UTF-8?q?=E3=81=A0=E3=81=91cron=E3=81=A7=E3=81=AE=E5=AE=9F=E8=A1=8C?= =?UTF-8?q?=E3=81=AB=E3=81=99=E3=82=8B=20(#893)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `cargo-deny`ワークフローを`licenses`と`audit`に分離し、後者を毎日のcron 実行とする。 RustSecへの登録によって「何もしていないのにCIが落ちた」ケースが最近増え てきたため。 Co-authored-by: Hiroshiba --- .github/actions/install-cargo-deny/action.yml | 10 ++++++++ .github/workflows/audit.yml | 24 +++++++++++++++++++ .github/workflows/cargo-deny.yml | 16 ------------- .github/workflows/licenses.yml | 22 +++++++++++++++++ 4 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 .github/actions/install-cargo-deny/action.yml create mode 100644 .github/workflows/audit.yml delete mode 100644 .github/workflows/cargo-deny.yml create mode 100644 .github/workflows/licenses.yml diff --git a/.github/actions/install-cargo-deny/action.yml b/.github/actions/install-cargo-deny/action.yml new file mode 100644 index 000000000..7a26c016d --- /dev/null +++ b/.github/actions/install-cargo-deny/action.yml @@ -0,0 +1,10 @@ +name: Install cargo-deny +description: cargo-denyをインストールする。 + +runs: + using: composite + steps: + - name: Install cargo-binstall + uses: taiki-e/install-action@cargo-binstall + - name: Install cargo-deny + run: cargo binstall cargo-deny@^0.16 --no-confirm --log-level debug diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 000000000..b6e0be57f --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,24 @@ +# 依存ライブラリを監査する。 +# +# RustSec Advisory Databaseに登録された、あるいは単にヤンクされたクレートを検出する。 +# 検出されるものは脆弱性(`vulnerability`)のみとは限らない。 +# 依存ライブラリが単に"unmaintained"とされたりヤンクされたりしても反応する。 + +name: audit + +# データベースへの登録とクレートのヤンクはこちらの依存ライブラリの編集と関係なく起きるため、`push` +# と`pull_request`はトリガーにしない。 +on: + workflow_dispatch: + schedule: + - cron: '0 15 * * *' + +jobs: + audit: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Install cargo-deny + uses: ./.github/actions/install-cargo-deny + - name: cargo-deny + run: cargo deny --all-features check -s advisories diff --git a/.github/workflows/cargo-deny.yml b/.github/workflows/cargo-deny.yml deleted file mode 100644 index a3601b28d..000000000 --- a/.github/workflows/cargo-deny.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: cargo-deny -on: - push: - branches: - - main -jobs: - cargo-deny: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v4 - - name: Install cargo-binstall - uses: taiki-e/install-action@cargo-binstall - - name: Install cargo-deny - run: cargo binstall cargo-deny@^0.16 --no-confirm --log-level debug - - name: cargo-deny - run: cargo deny --all-features check diff --git a/.github/workflows/licenses.yml b/.github/workflows/licenses.yml new file mode 100644 index 000000000..556e0246c --- /dev/null +++ b/.github/workflows/licenses.yml @@ -0,0 +1,22 @@ +# 依存ライブラリのライセンスを確認する。 +# +# `advisories`以外についてcargo-denyを実行する。 + +name: licenses + +# 外部からの貢献者の負担を減らすため、PR時点では不適合になることを許容する。その代わりmainブランチで +# は毎回本ワークフローを実行する。 +on: + push: + branches: + - main + +jobs: + licenses: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Install cargo-deny + uses: ./.github/actions/install-cargo-deny + - name: cargo-deny + run: cargo deny --all-features check -s bans licenses sources From 5c472b6eeb4102645e6dbf91f3b46d15bc4892ac Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Wed, 25 Dec 2024 00:24:56 +0900 Subject: [PATCH 2/3] fix: fix up #893: add missing `shell: bash` (#904) --- .github/actions/install-cargo-deny/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/install-cargo-deny/action.yml b/.github/actions/install-cargo-deny/action.yml index 7a26c016d..d2faf95bc 100644 --- a/.github/actions/install-cargo-deny/action.yml +++ b/.github/actions/install-cargo-deny/action.yml @@ -7,4 +7,5 @@ runs: - name: Install cargo-binstall uses: taiki-e/install-action@cargo-binstall - name: Install cargo-deny + shell: bash run: cargo binstall cargo-deny@^0.16 --no-confirm --log-level debug From babb3b764313ee43cef57e1006a8500785c96064 Mon Sep 17 00:00:00 2001 From: Ryo Yamashita Date: Wed, 25 Dec 2024 00:26:03 +0900 Subject: [PATCH 3/3] =?UTF-8?q?docs:=20#902=20=E3=81=AE=E6=B3=A8=E6=84=8F?= =?UTF-8?q?=E6=9B=B8=E3=81=8D=20(#903)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 非同期APIの 1. モジュール 2. `cpu_num_threads` において、 #902 についての注意書きを書く。 --- crates/voicevox_core/src/nonblocking.rs | 5 +++++ crates/voicevox_core/src/synthesizer.rs | 10 ++++++++++ .../python/voicevox_core/_rust/asyncio.pyi | 3 ++- .../python/voicevox_core/asyncio.py | 11 +++++++++++ .../python/voicevox_core/blocking.py | 2 ++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/crates/voicevox_core/src/nonblocking.rs b/crates/voicevox_core/src/nonblocking.rs index 7187c57fa..d65a3b7c0 100644 --- a/crates/voicevox_core/src/nonblocking.rs +++ b/crates/voicevox_core/src/nonblocking.rs @@ -9,8 +9,13 @@ //! スレッドプールのサイズは、blockingクレートの説明にある通り`$BLOCKING_MAX_THREADS`で調整すること //! ができる。 //! +//! また未調査ではあるが、このモジュールについては[`cpu_num_threads`]は物理コアの数+1を指定するのが適切な可能性がある +//! ([VOICEVOX/voicevox_core#902])。 +//! //! [blocking]: https://docs.rs/crate/blocking //! [pollster]: https://docs.rs/crate/pollster +//! [VOICEVOX/voicevox_core#902]: https://github.com/VOICEVOX/voicevox_core/issues/902 +//! [`cpu_num_threads`]: crate::InitializeOptions::cpu_num_threads pub use crate::{ engine::open_jtalk::nonblocking::OpenJtalk, diff --git a/crates/voicevox_core/src/synthesizer.rs b/crates/voicevox_core/src/synthesizer.rs index e9240de86..c49763252 100644 --- a/crates/voicevox_core/src/synthesizer.rs +++ b/crates/voicevox_core/src/synthesizer.rs @@ -97,6 +97,16 @@ pub enum AccelerationMode { #[derive(Default)] pub struct InitializeOptions { pub acceleration_mode: AccelerationMode, + + /// CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。 + /// + /// # Performance + /// + /// 未調査ではあるが、[非同期版API]においては物理コアの数+1とするのが適切な可能性がある + /// ([VOICEVOX/voicevox_core#902])。 + /// + /// [非同期版API]: crate::nonblocking + /// [VOICEVOX/voicevox_core#902]: https://github.com/VOICEVOX/voicevox_core/issues/902 pub cpu_num_threads: u16, } diff --git a/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi b/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi index 4d665d1cc..199ced742 100644 --- a/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi +++ b/crates/voicevox_core_python_api/python/voicevox_core/_rust/asyncio.pyi @@ -157,7 +157,8 @@ class Synthesizer: acceleration_mode ハードウェアアクセラレーションモード。 cpu_num_threads - CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。 + CPU利用数を指定。0を指定すると環境に合わせたCPUが利用される。未調査ではあるが、物理コアの数+1とするのが適切な可能性がある + (`VOICEVOX/voicevox_core#902 `_)。 """ def __init__( diff --git a/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py b/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py index 0dc5e0adb..b00caf6df 100644 --- a/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py +++ b/crates/voicevox_core_python_api/python/voicevox_core/asyncio.py @@ -1,3 +1,14 @@ +# TODO: Rust API同様に、`$BLOCKING_MAX_THREADS`について言及 +""" +非同期API。 + +Performance +----------- + +未調査ではあるが、 ``cpu_num_threads`` 物理コアの数+1を指定するのが適切な可能性がある +(`VOICEVOX/voicevox_core#902 `_)。 +""" + # pyright: reportMissingModuleSource=false from ._rust.asyncio import Onnxruntime, OpenJtalk, Synthesizer, UserDict, VoiceModelFile diff --git a/crates/voicevox_core_python_api/python/voicevox_core/blocking.py b/crates/voicevox_core_python_api/python/voicevox_core/blocking.py index 631eb6a81..3e344f75b 100644 --- a/crates/voicevox_core_python_api/python/voicevox_core/blocking.py +++ b/crates/voicevox_core_python_api/python/voicevox_core/blocking.py @@ -1,3 +1,5 @@ +# TODO: Rust API同様のmodule levelのdocstringを書く + # pyright: reportMissingModuleSource=false from ._rust.blocking import ( AudioFeature,