PHPackages                             blakewilson/wp-enforce-semver - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. blakewilson/wp-enforce-semver

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

blakewilson/wp-enforce-semver
=============================

A class to enforce SemVer in your WordPress plugins.

3.0.1(1y ago)1114.8k↓50%[1 issues](https://github.com/blakewilson/wp-enforce-semver/issues)MITTypeScript

Since Jun 22Pushed 1y ago2 watchersCompare

[ Source](https://github.com/blakewilson/wp-enforce-semver)[ Packagist](https://packagist.org/packages/blakewilson/wp-enforce-semver)[ RSS](/packages/blakewilson-wp-enforce-semver/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (4)Versions (7)Used By (0)

Enforce SemVer in Your WordPress Plugin
=======================================

[](#enforce-semver-in-your-wordpress-plugin)

[![Screenshot of plugins list with Semantic Versioning for WordPress enabled](https://github.com/blakewilson/wp-enforce-semver/raw/main/.assets/screenshot-1.png?raw=true)](https://github.com/blakewilson/wp-enforce-semver/blob/main/.assets/screenshot-1.png?raw=true)

Easily enforce [SemVer](https://semver.org) in your WordPress plugins.

By using this class, auto updates will be disabled when the plugin's new version is a `major` update, and provide a helpful notice in the update section of the plugin that there may be breaking changes.

Usage
-----

[](#usage)

1. Install the class as a dependency via composer:

```
composer require blakewilson/wp-enforce-semver

```

2. Initialize the class in your plugin:

```
// Init autoloader from Composer
if ( file_exists( plugin_dir_path( __FILE__ ) . 'vendor/autoload.php' ) ) {
	require plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
}

use EnforceSemVer\EnforceSemVer;

new EnforceSemVer('my-plugin/my-plugin.php');
```

And that's it! Once your end-users install your plugin, they will be protected against auto updates for major releases, and see a helpful message in the plugins list next to your plugin update:

[![Screenshot of plugins list with Semantic Versioning for WordPress enabled](https://github.com/blakewilson/wp-enforce-semver/raw/main/.assets/screenshot-1.png?raw=true)](https://github.com/blakewilson/wp-enforce-semver/blob/main/.assets/screenshot-1.png?raw=true)

Additionally, this notice text can be modified via a filter:

```
add_filter( 'semantic_versioning_notice_text', function($notice_text, $plugin_file_name) {
	// Modify notice text here.

	return $notice_text;
});
```

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 97% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~75 days

Recently: every ~64 days

Total

6

Last Release

682d ago

Major Versions

1.0.0 → 2.0.02023-10-20

2.0.2 → 3.0.02024-07-01

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5946219?v=4)[Blake Wilson](/maintainers/blakewilson)[@blakewilson](https://github.com/blakewilson)

---

Top Contributors

[![blakewilson](https://avatars.githubusercontent.com/u/5946219?v=4)](https://github.com/blakewilson "blakewilson (64 commits)")[![mindctrl](https://avatars.githubusercontent.com/u/1254870?v=4)](https://github.com/mindctrl "mindctrl (2 commits)")

---

Tags

composerphpsemantic-versioningsemverwordpresswordpress-plugin

### Embed Badge

![Health badge](/badges/blakewilson-wp-enforce-semver/health.svg)

```
[![Health](https://phpackages.com/badges/blakewilson-wp-enforce-semver/health.svg)](https://phpackages.com/packages/blakewilson-wp-enforce-semver)
```

###  Alternatives

[vinkius-labs/laravel-page-speed

Laravel Page Speed

2.5k5.4k1](/packages/vinkius-labs-laravel-page-speed)[ambersive/keepachangelog

Use https://keepachangelog.com/en/1.0.0/ in your laravel project.

131.4k](/packages/ambersive-keepachangelog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
