-
Notifications
You must be signed in to change notification settings - Fork 259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve composer package version comparison #337
Conversation
We assume that installed version should be compared to the latest stable version of the package and not to beta, rc, ... Hence, installed version in the next RC version (or beta or whatever) should not be listed as old (color orangered)
@@ -141,7 +141,7 @@ | |||
return strcmp($a->name, $b->name); | |||
}); | |||
foreach ($packages as $package) { ?> | |||
<tr<?php if (null !== $package->installed && $package->installed !== $package->latest) { echo ' style="color:orangered"'; }?>> | |||
<tr<?php if (null !== $package->installed && version_compare($package->installed, $package->latest) === -1) { echo ' style="color:orangered"'; }?>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you use a package in beta, alpha, RC (i.e non stable) version of a package and there is no stable version above the one you installed, PhpMetrics should not warn you.
@@ -37,8 +37,10 @@ public function get($package) | |||
// get latest version | |||
$latest = '0.0.0'; | |||
foreach ((array)$json->package->versions as $version => $datas) { | |||
$version = preg_replace('([^\.\d])', '', $version); | |||
if (!preg_match('!\d+\.\d+\.\d+!', $version)) { | |||
if ($version[0] === 'v') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The only non numeric character that should be accepted is the leading "v" character that is used by convention.
Some packages have changed from a non-leading "v" to a leading "v" format. This is why we need to remove it before running the version_compare
function.
Thank you @juliendufresne |
We assume that installed version should be compared to the latest
stable version of the package and not to beta, rc, ...
Hence, installed version in the next RC version (or beta or whatever)
should not be listed as old (color orangered)