Repository: VOICEVOX/voicevox
Pull request #2579: feat: arm64版linuxエディタのデプロイ可能にする
Author: login: nanae772
Created: 2025-03-01T09:33:45Z | Merged: 2025-03-02T12:39:16Z

## 内容
Github Actionsでarm64版linuxエディタをデプロイできるようにしました。

対応内容としては以下の４つです。

1. build.ymlのmatrixにLinux(arm64)を追加
2. download7z.mtsでarm64の7zをダウンロードできるようにする
3. downloadTypos.mtsでarm64のtyposをダウンロードできるようにする
4. electron-builder.config.jsにて、targetのarchにarm64である場合を追加

私のリポジトリでbuildが成功することは確認しております。
https://github.com/nanae772/voicevox/actions/runs/13603058926

ただarm64のマシンを持っていないため成果物の動作確認などはできておりません。
QEMUを使えばarm64をエミュレートできるようなので、時間があればやってみようと思いますが、
arm64マシンを持っている方がいたら動作確認いただけると大変ありがたいです🙇‍♂️

実装中に気になった部分としては、
artifact_nameの命名をmacosにならって`{os}-{arch}-cpu-prepackage`としましたが、一方でvoicevox_engine_asset_nameは`{os}-cpu-{arch}`となっているので順序に一貫性が無くこれでいいのか疑問です。

またbuild中にarm64版のtyposをダウンロードする必要があったのでそれを追加しましたが、他のtyposのversionが1.21.0であるが、1.21.0にはarm64版が無かったためとりあえず最新の1.30.0からダウンロードすることにしました。
この際他のtyposもバージョンアップしてバージョンをそろえたほうがいいかと思ったのですが、既に動いている部分に手を入れても大丈夫か自信が無かったのでそのままにしています。

electronのbuild周りなどあまりよく分かっておらず手探りでやった部分があるため、レビューでいろいろご意見伺えると助かります。

## 関連 Issue
close #2577 
<!--
関連するIssue番号を記載してください。
番号の前に"close"を書くと自動的にIssueが閉じられます。

（例）
ref #0
close #0
-->

## スクリーンショット・動画など

<!--
UIを変更した際は、変更がわかるような動画・スクリーンショットがあると助かります。
-->

## その他


Linked issue #2577: arm64版linuxエディタをデプロイする
## 内容

Github workflow環境でlinux arm64が使えるようになったので、簡単にarm64版linuxエディタを作ることができるはずです。


### 実現方法

実際エンジンはもうarm64版があるので、多分build.ymlのmatrixを良い感じに書き換えるだけで作れる･･･はず？

作る場合命名規則をmacOSのに合わせて、x64のはx64、arm64のはarm64とわかるようなファイル名がデプロイされるようになると良さそう。
あとnvidia arm64も作れなくはないかもだけど、一旦なしでいいかも？（エンジンもまだないし）


## OSの種類/ディストリ/バージョン

<!-- チェックするには [ ] を [x] に変更してください -->

- [ ] Windows
- [ ] macOS
- [x] Linux


## その他

デプロイされた後の最初のリリースで、公式サイトからもちゃんとダウンロードできるようにしたいと思います。
挑戦者お待ちしています！


Linked issue comments: user: login: nanae772
created_at: 2025-02-28T09:09:55Z
body: Github Actionsの勉強になりそうなので、こちら私の方で少しやってみたいと思います！
author_association: CONTRIBUTOR
user: login: Hiroshiba
created_at: 2025-02-28T10:17:53Z
body: @nanae772 おー！！ぜひぜひ！！
わからないポイントなどがあったらこことかで気軽にお聞きいただければ！ 🙏 
author_association: MEMBER

Diff:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a709e93339..e1d4bb0a7e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -48,14 +48,6 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        artifact_name:
-          - linux-nvidia-prepackage
-          - linux-cpu-prepackage
-          - windows-nvidia-prepackage
-          - windows-cpu-prepackage
-          - windows-directml-prepackage
-          - macos-x64-cpu-prepackage
-          - macos-arm64-cpu-prepackage
         include:
           # Linux NVIDIA GPU
           - artifact_name: linux-nvidia-prepackage
@@ -69,18 +61,30 @@ jobs:
             linux_executable_name: voicevox
             linux_appimage_7z_name: VOICEVOX.AppImage
             os: ubuntu-20.04
-          # Linux CPU
-          - artifact_name: linux-cpu-prepackage
+          # Linux CPU (x64)
+          - artifact_name: linux-cpu-x64-prepackage
             artifact_path: dist_electron/linux-unpacked
             voicevox_engine_asset_name: linux-cpu-x64
             package_name: voicevox-cpu
-            compressed_artifact_name: voicevox-linux-cpu
+            compressed_artifact_name: voicevox-linux-cpu-x64
             app_asar_dir: prepackage/resources
-            installer_artifact_name: linux-cpu-appimage
-            linux_artifact_name: "VOICEVOX.${ext}"
+            installer_artifact_name: linux-cpu-x64-appimage
+            linux_artifact_name: "VOICEVOX.${version}-x64.${ext}"
             linux_executable_name: voicevox
-            linux_appimage_7z_name: VOICEVOX-CPU.AppImage
+            linux_appimage_7z_name: VOICEVOX-CPU-X64.AppImage
             os: ubuntu-20.04
+          # Linux CPU (arm64)
+          - artifact_name: linux-cpu-arm64-prepackage
+            artifact_path: dist_electron/linux-arm64-unpacked
+            voicevox_engine_asset_name: linux-cpu-arm64
+            package_name: voicevox-cpu
+            compressed_artifact_name: voicevox-linux-cpu-arm64
+            app_asar_dir: prepackage/resources
+            installer_artifact_name: linux-cpu-arm64-appimage
+            linux_artifact_name: "VOICEVOX.${version}-arm64.${ext}"
+            linux_executable_name: voicevox
+            linux_appimage_7z_name: VOICEVOX-CPU-ARM64.AppImage
+            os: ubuntu-22.04-arm
           # Windows CUDA
           - artifact_name: windows-nvidia-prepackage
             artifact_path: dist_electron/win-unpacked
@@ -112,23 +116,23 @@ jobs:
             nsis_web_artifact_name: "VOICEVOX.Web.Setup.${version}.${ext}"
             os: windows-2019
           # macOS CPU (x64)
-          - artifact_name: macos-x64-cpu-prepackage
+          - artifact_name: macos-cpu-x64-prepackage
             artifact_path: dist_electron/mac
             voicevox_engine_asset_name: macos-x64
             package_name: voicevox-cpu
-            compressed_artifact_name: voicevox-macos-x64-cpu
+            compressed_artifact_name: voicevox-macos-cpu-x64
             app_asar_dir: prepackage/VOICEVOX.app/Contents/Resources
-            installer_artifact_name: macos-x64-cpu-dmg
+            installer_artifact_name: macos-cpu-x64-dmg
             macos_artifact_name: "VOICEVOX.${version}-x64.${ext}"
             os: macos-13
           # macOS CPU (arm64)
-          - artifact_name: macos-arm64-cpu-prepackage
+          - artifact_name: macos-cpu-arm64-prepackage
             artifact_path: dist_electron/mac-arm64
             voicevox_engine_asset_name: macos-arm64
             package_name: voicevox-cpu
-            compressed_artifact_name: voicevox-macos-arm64-cpu
+            compressed_artifact_name: voicevox-macos-cpu-arm64
             app_asar_dir: prepackage/VOICEVOX.app/Contents/Resources
-            installer_artifact_name: macos-arm64-cpu-dmg
+            installer_artifact_name: macos-cpu-arm64-dmg
             macos_artifact_name: "VOICEVOX.${version}-arm64.${ext}"
             os: macos-14
 
diff --git a/electron-builder.config.js b/electron-builder.config.js
index 10bd7dc6f8..7952d8f752 100644
--- a/electron-builder.config.js
+++ b/electron-builder.config.js
@@ -146,7 +146,7 @@ const builderOptions = {
     target: [
       {
         target: "AppImage",
-        arch: ["x64"],
+        arch: [isArm64 ? "arm64" : "x64"],
       },
     ],
   },
diff --git a/tools/download7z.mts b/tools/download7z.mts
index 492fef964c..8bee76841a 100644
--- a/tools/download7z.mts
+++ b/tools/download7z.mts
@@ -1,9 +1,10 @@
 /**
  * OSに合った7-Zipのバイナリとライセンスをダウンロードするスクリプト。
  */
-import path from "path";
-import fs from "fs";
 import { spawnSync } from "child_process";
+import fs from "fs";
+import { arch } from "os";
+import path from "path";
 import { retryFetch } from "./helper.mjs";
 
 const distPath = path.resolve(import.meta.dirname, "..", "vendored", "7z");
@@ -38,7 +39,19 @@ switch (process.platform) {
     break;
   }
   case "linux": {
-    url = "https://www.7-zip.org/a/7z2201-linux-x64.tar.xz";
+    switch (arch()) {
+      case "arm64": {
+        url = "https://www.7-zip.org/a/7z2201-linux-arm64.tar.xz";
+        break;
+      }
+      case "x64": {
+        url = "https://www.7-zip.org/a/7z2201-linux-x64.tar.xz";
+        break;
+      }
+      default: {
+        throw new Error("Unsupported architecture for Linux");
+      }
+    }
     filesToExtract = ["7zzs", "License.txt"];
     break;
   }
diff --git a/tools/downloadTypos.mts b/tools/downloadTypos.mts
index f2e280d8e4..4fda780f3b 100644
--- a/tools/downloadTypos.mts
+++ b/tools/downloadTypos.mts
@@ -36,6 +36,8 @@ const TYPOS_URLS = {
       "https://github.com/crate-ci/typos/releases/download/v1.30.0/typos-v1.30.0-x86_64-apple-darwin.tar.gz",
   },
   [OS.LINUX]: {
+    [CPU_ARCHITECTURE.ARM]:
+      "https://github.com/crate-ci/typos/releases/download/v1.30.0/typos-v1.30.0-aarch64-unknown-linux-musl.tar.gz",
     [CPU_ARCHITECTURE.X86_64]:
       "https://github.com/crate-ci/typos/releases/download/v1.30.0/typos-v1.30.0-x86_64-unknown-linux-musl.tar.gz",
   },


Reviews:
user: login: nanae772
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-01T09:48:30Z
user: login: Hiroshiba
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-01T10:29:25Z
user: login: Hiroshiba
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-01T10:41:21Z
user: login: Hiroshiba
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-01T10:51:16Z
user: login: aoirint
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-01T12:44:41Z
user: login: nanae772
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T04:46:00Z
user: login: nanae772
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-02T04:47:35Z
user: login: Hiroshiba
body: LGTM！！

コード分割ありがとうございます！！
一箇所多分不要になっているのでこっちで変えさせていただきます！！

これでダウンロード URL が変わるので、アップデート後はWEBページからのリンクもよしなに変えようと思います！

state: APPROVED
author_association: MEMBER
submitted_at: 2025-03-02T12:20:01Z
user: login: Hiroshiba
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-02T12:20:22Z

Review comments:
diff_hunk: @@ -48,14 +48,6 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        artifact_name:
-          - linux-nvidia-prepackage
-          - linux-cpu-prepackage
-          - windows-nvidia-prepackage
-          - windows-cpu-prepackage
-          - windows-directml-prepackage
-          - macos-x64-cpu-prepackage
-          - macos-arm64-cpu-prepackage
path: .github/workflows/build.yml
user: login: nanae772
body: この箇所を消した理由ですが、ここで定義したものをincludeのほうでもう一度書かなければいけない（artifact_nameを修正しようとおもったら２か所修正しなければいけない）というのが少し負担になるかと思いました。
もし、ぱっと一覧的に何が定義されているか見れるほうが良くてこうしていたなど戻したほうがよければ教えていただけると助かります。
created_at: 2025-03-01T09:48:30Z
author_association: CONTRIBUTOR
diff_hunk: @@ -48,14 +48,6 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        artifact_name:
-          - linux-nvidia-prepackage
-          - linux-cpu-prepackage
-          - windows-nvidia-prepackage
-          - windows-cpu-prepackage
-          - windows-directml-prepackage
-          - macos-x64-cpu-prepackage
-          - macos-arm64-cpu-prepackage
path: .github/workflows/build.yml
user: login: Hiroshiba
body: たしかにです！

おそらく２回書かないといけない理由は無い･･･はず･･･？

@aoirint 
もしなにか気付いた点あればコメントいただけると心強いです！！！
た〜〜〜〜ぶん大丈夫な気がしてます。（実際エンジン側は書いてない）
created_at: 2025-03-01T10:29:25Z
author_association: MEMBER
diff_hunk: @@ -69,18 +61,30 @@ jobs:
             linux_executable_name: voicevox
             linux_appimage_7z_name: VOICEVOX.AppImage
             os: ubuntu-20.04
-          # Linux CPU
-          - artifact_name: linux-cpu-prepackage
+          # Linux CPU (x64)
+          - artifact_name: linux-x64-cpu-prepackage
             artifact_path: dist_electron/linux-unpacked
             voicevox_engine_asset_name: linux-cpu-x64
             package_name: voicevox-cpu
-            compressed_artifact_name: voicevox-linux-cpu
+            compressed_artifact_name: voicevox-linux-x64-cpu
             app_asar_dir: prepackage/resources
-            installer_artifact_name: linux-cpu-appimage
-            linux_artifact_name: "VOICEVOX.${ext}"
+            installer_artifact_name: linux-x64-cpu-appimage
+            linux_artifact_name: "VOICEVOX.${version}-x64.${ext}"
             linux_executable_name: voicevox
-            linux_appimage_7z_name: VOICEVOX-CPU.AppImage
+            linux_appimage_7z_name: VOICEVOX-X64-CPU.AppImage
             os: ubuntu-20.04
+          # Linux CPU (arm64)
+          - artifact_name: linux-arm64-cpu-prepackage
+            artifact_path: dist_electron/linux-arm64-unpacked
+            voicevox_engine_asset_name: linux-cpu-arm64
+            package_name: voicevox-cpu
+            compressed_artifact_name: voicevox-linux-arm64-cpu
+            app_asar_dir: prepackage/resources
+            installer_artifact_name: linux-arm64-cpu-appimage
path: .github/workflows/build.yml
user: login: Hiroshiba
body: > 実装中に気になった部分としては、
artifact_nameの命名をmacosにならって{os}-{arch}-cpu-prepackageとしましたが、一方でvoicevox_engine_asset_nameは{os}-cpu-{arch}となっているので順序に一貫性が無くこれでいいのか疑問です。

気づいてくださってありがとうございます！！
macOSの方も合わせて変えちゃいましょう、と書こうと思ってたのですが、コアを確認すると`{arch}-cpu`の順番になってました 😇 
https://github.com/VOICEVOX/voicevox_core/releases/tag/0.15.7

どうすべきか判断が難しいですが、まあエンジンに合わせないといけないということもないと思うので、`{arch}-cpu`の順番のままで良いかなと！！
created_at: 2025-03-01T10:41:21Z
author_association: MEMBER
diff_hunk: @@ -69,18 +61,30 @@ jobs:
             linux_executable_name: voicevox
             linux_appimage_7z_name: VOICEVOX.AppImage
             os: ubuntu-20.04
-          # Linux CPU
-          - artifact_name: linux-cpu-prepackage
+          # Linux CPU (x64)
+          - artifact_name: linux-x64-cpu-prepackage
             artifact_path: dist_electron/linux-unpacked
             voicevox_engine_asset_name: linux-cpu-x64
             package_name: voicevox-cpu
-            compressed_artifact_name: voicevox-linux-cpu
+            compressed_artifact_name: voicevox-linux-x64-cpu
             app_asar_dir: prepackage/resources
-            installer_artifact_name: linux-cpu-appimage
-            linux_artifact_name: "VOICEVOX.${ext}"
+            installer_artifact_name: linux-x64-cpu-appimage
+            linux_artifact_name: "VOICEVOX.${version}-x64.${ext}"
             linux_executable_name: voicevox
-            linux_appimage_7z_name: VOICEVOX-CPU.AppImage
+            linux_appimage_7z_name: VOICEVOX-X64-CPU.AppImage
             os: ubuntu-20.04
+          # Linux CPU (arm64)
+          - artifact_name: linux-arm64-cpu-prepackage
+            artifact_path: dist_electron/linux-arm64-unpacked
+            voicevox_engine_asset_name: linux-cpu-arm64
+            package_name: voicevox-cpu
+            compressed_artifact_name: voicevox-linux-arm64-cpu
+            app_asar_dir: prepackage/resources
+            installer_artifact_name: linux-arm64-cpu-appimage
path: .github/workflows/build.yml
user: login: Hiroshiba
body: あ〜〜〜すみません、やっぱりエンジンに合わせて`cpu-{arch}`にしていただけると 🙇🙇🙇

macの方も合わせて変えちゃっていただけると！！
インストーラーの名称が変わるけど、まあ問題ないかなと。

（以下理由）

そもそもmacOSエンジンは`{OS}-{arch}`と`{device}`(=`cpu`/`gpu`)が入ってなかったんですね。
それに合わせてエディタも`macOS-{arch}`にした結果、`macOS-{arch}-cpu`になってそうだなと。

で、今回`OS`と`arch`と`device`が揃ったものが初めて降ってくるので課題に気づけた感じかなと。
であればこのタイミングでエンジンに揃えて、`OS`→`device`→`arch`の順番に揃えちゃうのが良いかなと思い直した次第です！
ころころ変わってすみません 🙇 

created_at: 2025-03-01T10:51:16Z
author_association: MEMBER
diff_hunk: @@ -48,14 +48,6 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        artifact_name:
-          - linux-nvidia-prepackage
-          - linux-cpu-prepackage
-          - windows-nvidia-prepackage
-          - windows-cpu-prepackage
-          - windows-directml-prepackage
-          - macos-x64-cpu-prepackage
-          - macos-arm64-cpu-prepackage
path: .github/workflows/build.yml
user: login: aoirint
body: GitHub Actionsのmatrixの仕様が難しくて、ジョブが思ったように走らなかったときにハックとして書いた構造が残っているだけで、特に効果はなくなっていると思うので、削除してよさそうに思います！

共通の値を持つ変数はmatrix直下において、変更したいものだけinclude以下に書く、というようなことをしようとして、うまくいかなかった、というようなものの名残な気がします。

大変なので余談ですが、過去のコードと以下の仕様を見比べたら、過去に何が起きていたのかわかるかもしれないですね！

- https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/running-variations-of-jobs-in-a-workflow#expanding-or-adding-matrix-configurations

created_at: 2025-03-01T12:44:41Z
author_association: MEMBER
diff_hunk: @@ -48,14 +48,6 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        artifact_name:
-          - linux-nvidia-prepackage
-          - linux-cpu-prepackage
-          - windows-nvidia-prepackage
-          - windows-cpu-prepackage
-          - windows-directml-prepackage
-          - macos-x64-cpu-prepackage
-          - macos-arm64-cpu-prepackage
path: .github/workflows/build.yml
user: login: nanae772
body: お二人ともコメントありがとうございます。削除しても問題無さそうで安心しました。

今回初めてmatrixのincluceに関するドキュメントを読んだのですが、確かに複雑な仕様で良い感じに共通化するのはなかなか難しそうな感じがしました。
created_at: 2025-03-02T04:46:00Z
author_association: CONTRIBUTOR
diff_hunk: @@ -69,18 +61,30 @@ jobs:
             linux_executable_name: voicevox
             linux_appimage_7z_name: VOICEVOX.AppImage
             os: ubuntu-20.04
-          # Linux CPU
-          - artifact_name: linux-cpu-prepackage
+          # Linux CPU (x64)
+          - artifact_name: linux-x64-cpu-prepackage
             artifact_path: dist_electron/linux-unpacked
             voicevox_engine_asset_name: linux-cpu-x64
             package_name: voicevox-cpu
-            compressed_artifact_name: voicevox-linux-cpu
+            compressed_artifact_name: voicevox-linux-x64-cpu
             app_asar_dir: prepackage/resources
-            installer_artifact_name: linux-cpu-appimage
-            linux_artifact_name: "VOICEVOX.${ext}"
+            installer_artifact_name: linux-x64-cpu-appimage
+            linux_artifact_name: "VOICEVOX.${version}-x64.${ext}"
             linux_executable_name: voicevox
-            linux_appimage_7z_name: VOICEVOX-CPU.AppImage
+            linux_appimage_7z_name: VOICEVOX-X64-CPU.AppImage
             os: ubuntu-20.04
+          # Linux CPU (arm64)
+          - artifact_name: linux-arm64-cpu-prepackage
+            artifact_path: dist_electron/linux-arm64-unpacked
+            voicevox_engine_asset_name: linux-cpu-arm64
+            package_name: voicevox-cpu
+            compressed_artifact_name: voicevox-linux-arm64-cpu
+            app_asar_dir: prepackage/resources
+            installer_artifact_name: linux-arm64-cpu-appimage
path: .github/workflows/build.yml
user: login: nanae772
body: レビューありがとうございます。こちら以下のコミットにて対応いたしました。
45b1ef5d8bcf435cf84450ca6dfcf3c7a88112fd
created_at: 2025-03-02T04:47:35Z
author_association: CONTRIBUTOR
diff_hunk: @@ -36,6 +36,9 @@ const TYPOS_URLS = {
       "https://github.com/crate-ci/typos/releases/download/v1.30.0/typos-v1.30.0-x86_64-apple-darwin.tar.gz",
   },
   [OS.LINUX]: {
+    // typos v.1.21.0にARM64(aarch64)対応のものが無かったので最新にしておく
path: tools/downloadTypos.mts
user: login: Hiroshiba
body: このコメント不要になったかもですね！
created_at: 2025-03-02T12:17:02Z
author_association: MEMBER
diff_hunk: @@ -36,6 +36,9 @@ const TYPOS_URLS = {
       "https://github.com/crate-ci/typos/releases/download/v1.30.0/typos-v1.30.0-x86_64-apple-darwin.tar.gz",
   },
   [OS.LINUX]: {
+    // typos v.1.21.0にARM64(aarch64)対応のものが無かったので最新にしておく
path: tools/downloadTypos.mts
user: login: Hiroshiba
body: ```suggestion
```
created_at: 2025-03-02T12:20:22Z
author_association: MEMBER

PR comments:
user: login: voicevox-preview-pages[bot]
created_at: 2025-03-01T09:36:31Z
body: :rocket: プレビュー用ページを作成しました :rocket:

- <a href="https://voicevox.github.io/preview-pages/preview/editor/pr-2579/editor/index.html" target="_blank">:pencil: エディタ</a>
- <a href="https://voicevox.github.io/preview-pages/preview/editor/pr-2579/storybook/index.html" target="_blank">:book: Storybook</a>

更新時点でのコミットハッシュ：[`99020ca`](https://github.com/nanae772/voicevox/commit/99020ca889eaec18e45cbeee3c03d879efdc1856)
<!-- voicevox preview-pages info -->
author_association: NONE
user: login: Hiroshiba
created_at: 2025-03-01T10:34:06Z
body: 実装ありがとうございます！！

> またbuild中にarm64版のtyposをダウンロードする必要があったのでそれを追加しましたが、他のtyposのversionが1.21.0であるが、1.21.0にはarm64版が無かったためとりあえず最新の1.30.0からダウンロードすることにしました。
この際他のtyposもバージョンアップしてバージョンをそろえたほうがいいかと思ったのですが、既に動いている部分に手を入れても大丈夫か自信が無かったのでそのままにしています。

これはx64の方も1.30.0にしていただいても大丈夫です！

ちなみに1PRにつき1変更が理想ではあるので、typosのバージョン上げだけ別PRを作っていただけるとよりきれいな進行ができそうです。
ただ僕的にはこれくらいなら別に一緒にしちゃてもOK派です。
もしPR分ける練習してみたければ、バージョンを上げるだけのPR作ってみていただければ！
（このPRで全部1.30.0にしていただくのでも全く問題ないです、ほんとに興味あればという感じです 🙏 ）
author_association: MEMBER
user: login: Hiroshiba
created_at: 2025-03-01T10:36:36Z
body: > ただarm64のマシンを持っていないため成果物の動作確認などはできておりません。
QEMUを使えばarm64をエミュレートできるようなので、時間があればやってみようと思いますが、
arm64マシンを持っている方がいたら動作確認いただけると大変ありがたいです🙇‍♂️

まあ検証はかなり難しいと思います！

レビュー後にPRをmainにマージしてみて、検証するissueを立ててdiscordとかで募集するのが良いかなと！
それは僕の方で進められると思います！
マージ後に「linux arm64で動くか検証する」みたいなissue作るのが良いかなと！（忘れそう）
author_association: MEMBER
user: login: nanae772
created_at: 2025-03-02T04:08:21Z
body: 丁寧にいろいろとレビューいただきありがとうございます！
一旦typosのバージョンアップについては、ちょっとまた別で相談したいことなども出てきたため別PRに分けました。
https://github.com/VOICEVOX/voicevox/pull/2584
author_association: CONTRIBUTOR
user: login: nanae772
created_at: 2025-03-02T04:50:24Z
body: > > ただarm64のマシンを持っていないため成果物の動作確認などはできておりません。
> > QEMUを使えばarm64をエミュレートできるようなので、時間があればやってみようと思いますが、
> > arm64マシンを持っている方がいたら動作確認いただけると大変ありがたいです🙇‍♂️
> 
> まあ検証はかなり難しいと思います！
> 
> レビュー後にPRをmainにマージしてみて、検証するissueを立ててdiscordとかで募集するのが良いかなと！ それは僕の方で進められると思います！ マージ後に「linux arm64で動くか検証する」みたいなissue作るのが良いかなと！（忘れそう）

検証についても、検討いただきありがとうございます！心強いです。
それでは動作確認のほうは別issueで対応いただく形でお願いしたいと思います。
author_association: CONTRIBUTOR
user: login: Hiroshiba
created_at: 2025-03-02T12:21:35Z
body: マージします！
@aoirint さんもありがとうございました！！
author_association: MEMBER