kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Wingetパッケージリポジトリへの追加方法(Schema 1.4対応)

github.com

WingetのパッケージレポジトリにPackerを追加してもらおうとPRを作ろうとしたら、ちょっと古い話が引っかかることが多いので、自分の備忘録として書いておきます。現在はSchema 1.4で作らないと受け付けてもらえません。

learn.microsoft.com

大体ここに書いている通りですが…自分がやらかした注意点&ドキュメント書かれていなかったけどやってみたらうまくいった話。

Validationはローカルで通ってもダメ

github.com

今回HashiCorpのPackerを追加してもらったのですが、ローカルのvalidationとWindows Sandboxを使ったインストールテストは成功したのにPRのvalidationチェックに引っ掛かりました。なんで?と思ってAzure Pipelinesのログを見てみると…PackageIdentifierHashi 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に登録してほしいツールがいくつかあるので、また追加してみます。