I today started work on what will become version 1.3.0 (currently pre-released as version 1.2.6) and this adds the final items I have wanted to add since I started this project and clears my current roadmap. So I will need to give additional thought about future improvements and its likley development will slow down here for a while as it beds in and begins to leach out into the wild.
What’s Coming?
- New config option:
'allow_prerelease' => true
enables support for prerelease versions (-alpha
,-beta
,-rc
) during update checks. - Regex-based detection of prerelease versions using SemVer-style matching:
1.2.3-beta
,2.0.0-alpha.1
, etc. - Fully backward-compatible: prereleases are skipped by default unless explicitly opted in.
- Updated both plugin and theme update flows to honour pre-release rules
- New docs folder with lots of new docs and work flow ideas in them
- Minor inline doc updates for better integration guidance. (Code Blocks)
With this update we will be working to have full native updates for pre-releases and the ability for people to turn on and accept pre-releases
If you’re managing plugin updates outside of WordPress.org using UUPD, you can now safely roll out prerelease versions (like 2.0.0-beta.4
) to beta testers without affecting your stable user base. By default, UUPD respects stability and won’t offer prereleases to users unless you’ve explicitly allowed them using the allow_prerelease
flag. This makes it possible to tag 1.9.9
as your current stable release and still distribute prereleases of 2.0.0
to a select group for testing and feedback.
To go one step further, you can combine this with WordPress’ built-in auto-update filters. For example, using a snippet that checks a setting like your_plugin_allow_prerelease
, you can opt specific users into pre-release updates automatically. Everyone else remains on the stable channel, seeing no update until you officially publish 2.0.0
. This approach keeps your core user base safe and stable while giving testers and power users early access all without splitting your codebase or requiring multiple update mechanisms.
add_filter( 'auto_update_plugin', function( $update, $item ) {
if ( $item->slug === 'your-plugin-slug' && get_option( 'your_plugin_allow_prerelease' ) ) {
return true;
}
return $update;
}, 10, 2 );
PHPNow out of the box UUPD does all of this
- Safe defaults for production sites
- Optional opt-in for testers, staging, or CI workflows
- Flexible config (per-plugin/theme!)
- Encourages confident testing without risking your install base
UUPD Prelease check is carried out by the following code snippet in UUPD
if ( ! $allow_prerelease && preg_match('/\d+\.\d+\.\d+-(alpha|beta|rc)[\.\d\-]*/i', $remote_version) )
PHPNew Docs added for advance config

Next Steps
I will now begin testing this in my own plugins but with the code changes there should be no breaking changes and I hope to have this out of pre-release and into version 1.3.0 within a week or so.