In 1.3.0 we introduced a much more robust normalized version function that allowed us to finally offer alpha, beta and rc versioning inline with Semantic Versioning and the option to support such pre-releases this was always intended to be a stop gap. It was well reasoned and was robust and a lot of research went in beyond the details on semver but there where edge cases we still needed to support.
The normalised version of the updater has now been rewritten to handle more of these edge cases slowly and efficiently normalising them to make comparison really simple, and it still supports staying on an a pre-release version until the final version. i.e. you can stick on an alpha version if that’s what you want by simply turning off pre-releases.
In addition to this better logging has been added to allow us to futher track edge cases and behaviour that isn’t wanted in the update flow.
In addition to the big changes to normalisation we have also made minor improvement to end point creation to better support the static JSON, wp-update-server and custom update servers that are using UUPD as we continue to get feedback and information on its use we are able to fully reform how it works.
We have also maintained PHP < 8 support by adding a new polyfill for \str_ends_with() to continue to be able to provide updates on these now non supported php versions.
With this update the example plugin and the test theme also got pre-release support testing and are now more robust and easy to test with.
UUPD remains, free, quick and continues to be able to deliver on its core principle the ability to deliver cost free, infostructure free WordPress plugin and theme updates at zero cost thanks to Github and GitHub CDN. You add a single file and a code block to your code and your plugin and theme can serve automatic updates with no need to run your own backend.