📝

npmパッケージ更新する前にちょっと待って!修正は最新版に含まれてる?の巻

2023/05/29に公開

emailバリデーションがおかしい?

本日サポートチームから開発チームに「ユーザーのメールアドレス入力ができない」と問い合わせがきました。具体的には以下のパターンです。

つまりサブドメ形式のメールアドレスで、-(ハイフン)が含まれるとバリデーションエラーに引っかかってしまうようです。

このinput箇所はVeeValidateZodを組み合わせてバリデーションを行っており、早速同僚が次のissueに気づいて共有してくれました。

https://github.com/colinhacks/zod/issues/2193

おお、既にこの問題は3/14にissueとして起票されており、3/30に対応PRは作成されている。

https://github.com/colinhacks/zod/pull/2274

マージ済みということは、わーい!
zodのバージョンあげれば解決やん!ハッピー!

とは残念ながらならないのです・・・

そのPRはいつマージされたもの?

先ほどのPRをよくよくちゃんと見てみると、3/30に確かに対応はされている。しかし下にスクロールしていき、いつマージがされてのか確認してみると・・・

なんとつい先週なのでありまーす。

いつ直近で最新版のリリースあった?

まぁひとまず修正がマージされたことは確認できました。
ただ次に確認すべきは、このパッケージの最新版がいつリリースされ、直近のリリースに先ほどの修正が含まれているのかなのです。

ではリリース情報を確認してみましょう。

すると。むむ・・

ということで、この時点で先ほどの修正は最新バージョンに入っていないことが判明しました。

念の為もう一歩踏み込んで確認してみましょう。
現時点で「らくしふ」で利用しているバージョンはv3.21.1であり、最新のv3.21.4とはパッチバージョンで3つほど開きがありました。そのパッチリリース等も確認してみますが、もちろんそこに関連しそうな対応は含まれておりませんでした。

https://github.com/colinhacks/zod/releases

まとめ

先ほどの修正が含まれたバージョンのリリースが次なのか我々にはわからないので、一旦今回は対象のバリデーションではzodを使わず他の方法で行うことにしました。

今回のケースを通して学ぶべきことが、npmパッケージに関しても「修正PRがマージされてるからパッケージを更新すれば解決するというわけではない」ということであります。

  • 修正PRがマージされたのはいつなのか
  • その修正がどのバージョンに含まれているのか
  • 直近のリリースには何が含まれているのか

などnpmパッケージ側のissueやPR、リリースノートをちゃんと確認することは「せっかくアップデートしても全然解決しないよー」とならないためにも大切なのであります。

めでたし、めでたし

クロスビットテックブログ

Discussion