Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac版をHomebrewでインストールできるようにしたい #1451

Closed
1 of 3 tasks
umi1299 opened this issue Aug 1, 2023 · 15 comments
Closed
1 of 3 tasks

Mac版をHomebrewでインストールできるようにしたい #1451

umi1299 opened this issue Aug 1, 2023 · 15 comments

Comments

@umi1299
Copy link
Contributor

umi1299 commented Aug 1, 2023

内容

VOICEVOXのMac版をHomebrewでインストールできるようにしたいです。

Pros 良くなる点

Homebrewを利用している人にとってインストールやアップデートが簡単になります。

実現方法

Homebrewによるインストールとアンインストールができることを以下のリポジトリで確認しました。

umi1299/homebrew-voicevox

このリポジトリをフォークしていただくか、同じ内容のリポジトリを作っていただくことで、以下のコマンドでVOICEVOXをインストールできるようになります。

$ brew tap VOICEVOX/voicevox
$ brew install --cask voicevox

VOICEVOXのバージョン

0.14.7

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

  • Windows
  • macOS Ventura
  • Linux

その他

Homebrew/homebrew-caskにPRを出すことも考えたのですが、以下のエラーが発生したため現状はできなさそうです。

$ brew audit --new-cask voicevox
==> Downloading https://github.com/VOICEVOX/voicevox/releases/download/0.14.7/VOICEVOX.0.14.7.dmg
Already downloaded: /Users/UserName/Library/Caches/Homebrew/downloads/045ea8c6a95afbd0b72140f428272c52db8af5ba9928bd7b5af44be710eb5076--VOICEVOX.0.14.7.dmg
audit for voicevox: failed
 - Signature verification failed:
/private/tmp/d20230802-97753-15smhh8/VOICEVOX.app: rejected

macOS on ARM requires software to be signed.
Please contact the upstream developer to let them know they should sign and notarize their software.
umi1299/cask/voicevox
  * line 5, col 2: Signature verification failed:
    /private/tmp/d20230802-97753-15smhh8/VOICEVOX.app: rejected

    macOS on ARM requires software to be signed.
    Please contact the upstream developer to let them know they should sign and notarize their software.
Error: 1 problem in 1 cask detected.
@Hiroshiba
Copy link
Member

Hiroshiba commented Aug 1, 2023

issue作成ありがとうございます!!

個人的には差分が少ないので、あとはメンテナンスコストがほぼなければアリなのかなと思いました!
.rbファイル内でバージョン指定が必要なのが結構厄介ですね・・・!いつか変え忘れると思います 😇

何も指定しなかった場合はlatestを取ってくるようにする、というのはどうでしょうか?
GithubのAPIを叩いて最新のバージョンを取得し、その値をversion変数に入れれば実現できるのかなとか思いました。
一般的なhomebrewの挙動と異なるかもしれませんが・・・。

あるいはreleasesに.rbファイルを配置できると一番良さそうに思いました。
そういった仕様はhomebrew側にあったりしそうでしょうか?

@y-chan
Casksディレクトリですが、このリポジトリ内でメンテすべきかどうかどう思われますか? 👀
releasesに乗っける方法があれば最高なのですが。。

@y-chan
Copy link
Member

y-chan commented Aug 1, 2023

軽く調べてみたのですが、homebrew用に「フォーミュラ」というもの(.rb)を管理するためにhomebrew-...と言った感じのリポジトリを一個作らないといけないようでした。
なので、このリポジトリに統合することは無理そうな感じでした。
リポジトリが一つ増えるのは、あまり好ましくないかもですが、そこまで大きなものを管理するわけではないのでいいかなと。
あと、自動化だったりの手段はありそうだと感じたので、GitHub Actions等でリリース時にフォーミュラを自動更新する用に組んでしまえば、VOCIEVOX側でフォーミュラを管理するのは特に負荷がかからず良いのかなと感じました。
(過去バージョン等を一括管理できる仕組みだと思うので、リリースされたときにどんどん.rbにバージョン情報を追加する仕様にすればバージョン切り替えとかもしやすくていいのかなと(VOICEVOXの場合、バージョンを下げる利点はあまりないですが))

@.umi1299 さんに、GitHub Actionsを用いた自動化を含めて興味があり、取り組んでいただけるのであれば、VOICEVOX公式としてhomebrewリポジトリを用意するのはアリかなと思いました。

どうでしょうか?

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 2, 2023

検討ありがとうございます!
GitHub Actionsを用いた自動化も気になるのでひとまず自前のリポジトリで試してみようと思います!

過去バージョン等を一括管理できる仕組みだと思うので、リリースされたときにどんどん.rbにバージョン情報を追加する仕様にすればバージョン切り替えとかもしやすくていいのかなと

VOICEVOX/homebrew-... というリポジトリを用意する方針であれば [email protected][email protected] といったファイルを複数用意することで過去のバージョンを管理することが可能だと思います。
ちなみにHomebrew/homebrew-caskは最新のバージョンしか管理しない方針らしいです。

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 3, 2023

一応、形になったので報告します。
手段は以下の2通りがあり、自動でPRが作成されるところまで確認できました。

  1. このリポジトリにリリース時にトリガーされるGitHub Actionsを追加する
  2. homebrew-... リポジトリにcronで定期実行するGitHub Actionsを追加する

1のパターンは #1464 で、2のパターンは umi1299/homebrew-voicevox/.github/workflows/autobump.yml でファイルを確認できるのでご覧ください。

なお、これらのActionsを使用するためにはリポジトリのsecretsにpublic_repoを有効にしたパーソナルアクセストークンをセットする必要があるのですが、そのトークンのユーザーとしてコミットなどが行われるためマシンユーザーアカウントがあればそれを利用するのがよいと思います。

Actionsの仕組みですがまず、Homebrewに brew bump-cask-pr というコマンドがあります。
このコマンドはCaskの更新のためにリポジトリのフォーク・コミットのプッシュ・PRの作成までを自動で行ってくれます。
今回はこのコマンドを利用しているHomebrew bump caskというActionsがあったのでそれを使用しています。

ここで相談なのですが brew bump-cask-pr を使用しているため、現状は新しいリリースがあったときに homebrew-... リポジトリにPRが作られるまでになっています。
これはPRの自動マージまでやった方が良いでしょうか?
自動でマージして良い条件を考えるのがちょっと難しそうかなと思っています。

また、過去のバージョン管理をすることについて、これは作るのが大変そうなのと @y-chan さんの仰るとおりVOICEVOXはバージョンを下げる利点が特にないと思うので、まずはなくても良いかと思うのですがどう思われますか?

@Hiroshiba
Copy link
Member

ありがとうございます、めちゃくちゃ分かりやすいです!!

homebrew-voicevoxリポジトリ側でcron実行+過去バージョンはサポートしない、がいいのかなと思いました!

まずリポジトリに関して、権限が必要になる物をリポジトリ単位で分けたいなという思いがちょっとだけあるので、まあクーロン実行でのがいいのかなと!

自動でマージ

こちらは一旦なくていいのかなと思いました!
あった方が良さそうなのですが、そもそも発生頻度が低そうなのと、やっぱり条件を定めるのが大変そうなので。
もしちょっと大変だなと思い始めたらちょっと相談するかもしれません!

過去バージョン

おっしゃる通りで、とりあえず最新版だけでいいのかなと!

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 4, 2023

確認ありがとうございます!

homebrew-voicevoxリポジトリ側でcron実行+過去バージョンはサポートしない

こちら了解致しました!
#1464 はクローズしちゃいますね。
homebrew-voicevoxリポジトリの作成お願いします!

自動マージと過去バージョンについても了解致しました!

@Hiroshiba
Copy link
Member

@umi1299 リポジトリ作成しました!!
https://github.com/VOICEVOX/homebrew-voicevox

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 4, 2023

ありがとうございます!

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 4, 2023

@Hiroshiba 作成していただいたリポジトリなのですが #1464 (comment) に書いたように、中身をumi1299/homebrew-voicevox内の umi1299/voicevoxVOICEVOX/voicevox に置換したものにしていただきたいです!
ライセンスはHomebrew/homebrew-caskに倣ってBSD 2-Clauseにしていたのですが、MITに変えていただいて問題ないです!

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 4, 2023

@Hiroshiba もしくは、こちらからPR出した方がよいでしょうか?

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 4, 2023

@Hiroshiba お聞きしたいことを1つ忘れていました。
ファイル内にアプリの説明を記述する desc 欄があって、今は 無料で使える中品質なテキスト読み上げソフトウェア を英訳して Free, medium-quality text-to-speech software としているのですが、公式な英語のキャッチフレーズなどありますでしょうか?

@Hiroshiba
Copy link
Member

@umi1299 色々ありがとうございます!
BSD 2-Clauseでも問題ないので変えた方が良さそうな場合は言っていただければ!!

プルリクエストをお願いします!
せっかく @umi1299 さんが開発したものなので、その名前を記録に残していければ・・・!

descに関して検討しましたが、Free, medium-quality text-to-speech softwareを公式の英語キャッチコピーにしたいと思います。
なのでそのまま適用いただければ!

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 6, 2023

PRを3つ出しました!
ご確認お願いします!

@Hiroshiba
Copy link
Member

あ、ご連絡ありがとうございます!

@umi1299
Copy link
Contributor Author

umi1299 commented Aug 10, 2023

マージ&紹介ありがとうございました!

@umi1299 umi1299 closed this as completed Aug 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants