npmパッケージ更新する前にちょっと待って!修正は最新版に含まれてる?の巻
emailバリデーションがおかしい?
本日サポートチームから開発チームに「ユーザーのメールアドレス入力ができない」と問い合わせがきました。具体的には以下のパターンです。
つまりサブドメ形式のメールアドレスで、-
(ハイフン)が含まれるとバリデーションエラーに引っかかってしまうようです。
このinput箇所はVeeValidateとZodを組み合わせてバリデーションを行っており、早速同僚が次のissueに気づいて共有してくれました。
おお、既にこの問題は3/14にissueとして起票されており、3/30に対応PRは作成されている。
マージ済みということは、わーい!
zodのバージョンあげれば解決やん!ハッピー!
とは残念ながらならないのです・・・
そのPRはいつマージされたもの?
先ほどのPRをよくよくちゃんと見てみると、3/30に確かに対応はされている。しかし下にスクロールしていき、いつマージがされてのか確認してみると・・・
なんとつい先週なのでありまーす。
いつ直近で最新版のリリースあった?
まぁひとまず修正がマージされたことは確認できました。
ただ次に確認すべきは、このパッケージの最新版がいつリリースされ、直近のリリースに先ほどの修正が含まれているのかなのです。
ではリリース情報を確認してみましょう。
すると。むむ・・
ということで、この時点で先ほどの修正は最新バージョンに入っていないことが判明しました。
念の為もう一歩踏み込んで確認してみましょう。
現時点で「らくしふ」で利用しているバージョンはv3.21.1であり、最新のv3.21.4とはパッチバージョンで3つほど開きがありました。そのパッチリリース等も確認してみますが、もちろんそこに関連しそうな対応は含まれておりませんでした。
まとめ
先ほどの修正が含まれたバージョンのリリースが次なのか我々にはわからないので、一旦今回は対象のバリデーションではzodを使わず他の方法で行うことにしました。
今回のケースを通して学ぶべきことが、npmパッケージに関しても「修正PRがマージされてるからパッケージを更新すれば解決するというわけではない」ということであります。
- 修正PRがマージされたのはいつなのか
- その修正がどのバージョンに含まれているのか
- 直近のリリースには何が含まれているのか
などnpmパッケージ側のissueやPR、リリースノートをちゃんと確認することは「せっかくアップデートしても全然解決しないよー」とならないためにも大切なのであります。
めでたし、めでたし
Discussion