WingetのパッケージレポジトリにPackerを追加してもらおうとPRを作ろうとしたら、ちょっと古い話が引っかかることが多いので、自分の備忘録として書いておきます。現在はSchema 1.4で作らないと受け付けてもらえません。
大体ここに書いている通りですが…自分がやらかした注意点&ドキュメント書かれていなかったけどやってみたらうまくいった話。
Validationはローカルで通ってもダメ
今回HashiCorpのPackerを追加してもらったのですが、ローカルのvalidationとWindows Sandboxを使ったインストールテストは成功したのにPRのvalidationチェックに引っ掛かりました。なんで?と思ってAzure Pipelinesのログを見てみると…PackageIdentifier
がHashi Corp.Packerじゃないといけなかったのに、Hashcorp.Packerと```iが抜けていました。これはwingetcreateコマンドで作られているので、コマンド実行時にtypoしていると全部間違います。
PRのチェックでこれがダメだとはねられます。
- manifest/categoly/organization/product/version 形式の階層とyamlのファイル名が一致していないといけない。
- PackageIdentifierは大文字小文字区別します。
wingetcreateコマンドでtypoしていたけど、フォルダーはすでにTerraformとVagrantが入っているので、YAMLそのままコピーして動いているように見えたのですが、PRの検証ではねられた、ということでした。はずかしい。
修正して、PRのValidationは通ったように見えたのですが、それでもボットのコメントで「まだ検証通ってないよ」というコメントがついたので、「通ったように見えるけど…」とコメント書いたら中の人がレビューしてくれてOKになったようです。
Gitのブランチ名
気にしなくてもいいのかもしれませんが、「どんなブランチルールあるのかなぁ」と思ってほかのPRみてみたら、 organization.Product-version-hash
みたいな形が多いようです。私はサボってversionだけにしました。
一人が同じプロダクトかつ、一つのバージョンで複数のPR受けることはたぶんないので、これでよさそうです。
ほかにもwinget-pkgに登録してほしいツールがいくつかあるので、また追加してみます。