依存関係の更新ツール Renovate のドキュメントに齟齬があるので、GitHub の Discussions に投稿してみる
こちらの記事 GitLab と Renovate で iOS のライブラリアップデートを自動化する方法 (XcodeGen) を書いているときに、公式ドキュメントで次の齟齬を見つけました。
-
Renovate Docs > Configuration Options > regexManagers では、
versioning
がデフォルトでsemver
(厳密なセマンティックバージョン, 3.0 や v3 を 3.0.0 とは解釈しない) となっています。-
We recommend that you also tell Renovate what versioning to use. If the versioning field is missing, then Renovate defaults to using semver versioning.
-
- 一方で、 Renovate Docs > Custom Manager Support using Regex > Required Fields では、
versioning
がデフォルトでsemver-coerced
(寛容, 3.0 や v3 を 3.0.0 と解釈する)と記載されています。-
You can optionally have a versioning capture group or a versioningTemplate config field. If neither are present, semver-coerced will be used as the default
-
実際に Renovate 動作させて確認したところ、正しくは semver
(厳密) がデフォルトで使われていました。
→ テストしたリポジトリ
気付いたきっかけは、定期実行で最新版を拾えていないライブラリがあったことでした。
バージョニングの接頭辞に v
が付いていると最新版を拾えていないと気付き、セマンティックバージョンの仕様と厳密には異なる点があると知って、辿り着きました。
(ちなみに、セマンティックバージョンに v が付いてはいけないルールを初めて知りました)
一応、 semver-coerced
を指定すれば、普通に v
が付いていたり、3.0
という書き方でも、最新版を取ることはできます。
ドキュメントを修正しようと思い、renovate の GitHub リポジトリに記載された Contributing を読みました。
まずは、Issue や Discussions に既にないか検索し、なければ Discussions に投稿するのがオススメと書いてあったので、調べて載ってなければ Discussions に投稿しようと思います。
-
regexManager で Issues を検索
- Put our Renovate's org regex managers into public regex manager presets #22025
- この件とは違いそう
- Rename regexManagers to customManagers #19066
- ここで初めて regex → custom と名前が変わりそうなことを知る
- Issue のやりとりが勉強になる。返事が楽そう
- 違いそう
- ぱっと見なさそう
- Put our Renovate's org regex managers into public regex manager presets #22025
-
versioning で Issues を検索
- feat: Support XcodeGen #20504
- XcodeGen サポートの Issue が立っていたことを知る
- 検索結果多すぎるので、 semver に変更したが、ぱっと見なさそう
- feat: Support XcodeGen #20504
-
Discussions の Report a Problem をみる
- ぱっと見なさそうだったので、投稿してみようと思う
- ↑ Discussions の Ask a Question の方がカテゴリがあっていそうなので、再度調査
- RegexManager で調べても、直近で出てこないので投稿をしてみる
DeepL翻訳を使ってなんとか投稿はできました。
実は自分の勘違いだったり、英語がなんかおかしかったりしないか不安ですが、やれることはやったと信じてます 🙏
なんと、もう返信をもらえました
PRs welcome とコメントいただいたので、チャレンジしてみます。PRの作り方にもルールがありそうなので、その辺りを焦らず抑えていきたい。
.github/contributing.md は読みました。フォークして PR 作るんですね。
参考になりそうな PR を発見
ブランチ名は、 docs/
始まりが良さそう。マージ先は main
そういえば返信で、reproduction してくださいと書いてあったので、読んでみた。
メンテナの負荷を下げるために、minimal reproduction を用意するやり方を採用しているらしい。要するに、問題をメンテナの人が再現できるように、再現できる環境を用意するとのこと。
まだ PR 作成は早かった。
眠いので明日
返信きており、最新版で再現させた方が良いのではないかとコメントをいただきました。
バグなどの報告はバージョンと一緒が良さそうだけれど、再現させる環境は最新版でやらないとたしかに意味ないよな、と学びました。
朝起きたら pull request が作られていました、とても早い。
これが海外のスピード感なのか?
結果として、ドキュメントも誤っていたが、仕様としてはデフォルト値を semver-cerced
へ変更する事になりそう。prラベルに breaking がついていたので、次のメジャーバージョンアップで反映されるかもしれないのは、個人的に楽しみ。