diff --git a/resources/js/components/updater/Updater.vue b/resources/js/components/updater/Updater.vue index e78019ee218..aecffc16691 100644 --- a/resources/js/components/updater/Updater.vue +++ b/resources/js/components/updater/Updater.vue @@ -92,7 +92,7 @@ export default { }, onLatestVersion() { - return this.currentVersion && this.currentVersion == this.latestVersion; + return this.currentVersion && !this.changelog.some((release) => release.type === 'upgrade'); }, securityUpdateAvailable() { diff --git a/src/Addons/Addon.php b/src/Addons/Addon.php index 64544ea7865..cefc03abaeb 100644 --- a/src/Addons/Addon.php +++ b/src/Addons/Addon.php @@ -419,7 +419,7 @@ public function isLatestVersion() $version = $versionParser->normalize($this->version); $latestVersion = $versionParser->normalize($this->latestVersion()); - return version_compare($version, $latestVersion, '='); + return version_compare($version, $latestVersion, '>='); } public function license() diff --git a/tests/Addons/AddonTest.php b/tests/Addons/AddonTest.php index 5ef50a9be99..795b5a3fb7d 100644 --- a/tests/Addons/AddonTest.php +++ b/tests/Addons/AddonTest.php @@ -342,6 +342,11 @@ public static function isLatestVersionProvider() ['2.0.0', '2.0.0', true], ['1.0', '1.0.0', true], ['1.0', '1.0.1', false], + + // Installed version is newer than the marketplace's indexed latest version + ['1.0.2', '1.0.1', true], + ['2.0.0', '1.0.0', true], + ['7.12.1', '7.12.0', true], ]; }