Accompanistの開発版のバージョニングが独特で、Renovateと相性が悪い
Accompanistとは
Google公式の、Jetpack Composeを補完する拡張ライブラリーです。
Accompanistの開発版のバージョニング
直近の0.24系の開発版が次のようになっている。
- v0.24.0-alpha
- v0.24.1-alpha
- v0.24.2-alpha
- v0.24.3-alpha
- v0.24.4-alpha
- v0.24.5-alpha
- v0.24.6-alpha
- v0.24.7-alpha
- v0.24.8-beta(ここからbetaに変わった)
- v0.24.9-beta
- v0.24.10-beta
SemVer的に見ると、v0.24.z
のz部分はmajor・minor・patchのpatch部分に見えるが、Accompanistは現状SemVer(のpatch)を使ったバージョニングではなさそうで、z部分は開発版として何番目のリリースか、という数字でしかないようである。alphaの中で何番目、betaの中で何番目、という情報はなく、開発版全体として何番目で、その時の状態がalphaかbetaなのかが最後に付く、となっている。
SemVerなら
- v0.24-alpha.1
- v0.24-alpha.2
- v0.24-alpha.3
- v0.24-alpha.4
- v0.24-alpha.5
- v0.24-alpha.6
- v0.24-alpha.7
- v0.24-alpha.8
- v0.24-beta.1
- v0.24-beta.2
- v0.24-beta.3
という付け方になるであろう。
Renovateでの開発版のバージョンへの更新
RenovateはデフォルトでignoreUnstable
という設定がオンになっていて、安定版から開発版(非安定版)への更新がされないようになっている。ただし例外があって、現在使用中のバージョンが安定版ではなく開発版であり、更新対象となる最新版とmajor・minor・patchが一致する場合は(SemVerでいうところのpre-release version以降だけが更新されたら)更新してくれる。
By default, Renovate won't update any package versions to unstable versions (e.g.
4.0.0-rc3
) unless the current version has the samemajor.minor.patch
and was already unstable (e.g. it was already on4.0.0-rc2
).
ここでAccompanistの開発版のバージョニングに戻ってみると、SemVerの観点では毎回patch部分が更新されていることになる。従って先述の条件を満たさず、例えば v0.24.8-beta
から v0.24.10-beta
への更新のPRは用意されないことになっている。この、ある開発版から、major・minor・patchが一致しない別の開発版への更新が起きないことはドキュメントにも明記されている。
Renovate will also not "jump" unstable versions automatically, e.g. if you are on
4.0.0-rc2
and newer versions4.0.0
and4.1.0-alpha.1
exist then Renovate will update you to4.0.0
only.
ということで、このようなバージョニングでも開発版に追従していきたい時*1は ignoreUnstable
を明示的にオフ(false
)にしましょう。
"packageRules": [ { "matchPackagePatterns": ["^com\\.google\\.accompanist:"], "ignoreUnstable": false } ]