fmartinou / whats-up-docker

What's up Docker ( aka WUD ) gets you notified when a new version of your Docker Container is available.
https://fmartinou.github.io/whats-up-docker
MIT License
939 stars 29 forks source link

Wrong reporting with old images with higher semver version #335

Open matheusvellone opened 6 months ago

matheusvellone commented 6 months ago

Thanks for the project, really helpful!

I'm using linuxserver/qbittorrent on DockerHub registry pinned to version 4.6.2, the latest one, but WUD keeps reporting there's a new version 20.04.1 I can see that this version does exists in DockerHub, but it's from 2 years ago.

Screenshots ![image](https://github.com/fmartinou/whats-up-docker/assets/5989971/4c245281-3b76-46a8-b7bc-0afc3f60762a) ![image](https://github.com/fmartinou/whats-up-docker/assets/5989971/95c59b45-6c76-40b4-8425-66324ebe62cd) ![image](https://github.com/fmartinou/whats-up-docker/assets/5989971/5c6799bd-5928-4d91-804e-ea87bf04b590)

Looks like WUD is comparing images using semver logic, but in this case looks like there was a older way to version images, which changed later (maybe).

Maybe it would safer if WUD compares the publish data instead of simple semver logic, but I don't know if this information is available somehow.

fmartinou commented 5 months ago

Unfortunately for you, WUD logic is right in this case. I cannot base the comparison on the "publish date" because some image providers are rebuilding old images after having push newer versions so semver comparison is the most reliable way to compare versions.

The only easy way I see to get around it is to include more precise wud.tag.include or wud.tag.exclude regex to filter these "20.x" false positive matches.

matheusvellone commented 5 months ago

Sure, this is a corner case bc this image switched versioning strategies 😕

I cannot base the comparison on the "publish date" because some image providers are rebuilding old images after having push newer versions so semver comparison is the most reliable way to compare versions.

Indeed, this would cause more trouble. But what if WUD checks both semver AND publish date? Wouldn't this solve this case and avoiding creating a new one? Also, this looks intuitive to me

The only easy way I see to get around it is to include more precise wud.tag.include or wud.tag.exclude regex to filter these "20.x" false positive matches.

Ended up doing this, solved the problem, but if WUD could take care of this kind of problem, this would fell less hacky