diff --git a/src/Command/DiffCommand.php b/src/Command/DiffCommand.php
index 21a1552..c070e2b 100644
--- a/src/Command/DiffCommand.php
+++ b/src/Command/DiffCommand.php
@@ -62,8 +62,8 @@ protected function configure()
      */
     protected function execute(InputInterface $input, OutputInterface $output)
     {
-        $base = $input->getArgument('base') !== null ? $input->getArgument('base') : $input->getOption('base');
-        $target = $input->getArgument('target') !== null ? $input->getArgument('target') :$input->getOption('target');
+        $base = null !== $input->getArgument('base') ? $input->getArgument('base') : $input->getOption('base');
+        $target = null !== $input->getArgument('target') ? $input->getArgument('target') : $input->getOption('target');
         $withPlatform = $input->getOption('with-platform');
         $withUrls = $input->getOption('with-links');
         $this->gitlabDomains = array_merge($this->gitlabDomains, $input->getOption('gitlab-domains'));
diff --git a/src/Formatter/AbstractFormatter.php b/src/Formatter/AbstractFormatter.php
index 6c17274..c623bd2 100644
--- a/src/Formatter/AbstractFormatter.php
+++ b/src/Formatter/AbstractFormatter.php
@@ -11,6 +11,7 @@
 use Composer\Semver\VersionParser;
 use IonBazan\ComposerDiff\Url\GeneratorContainer;
 use Symfony\Component\Console\Output\OutputInterface;
+use UnexpectedValueException;
 
 abstract class AbstractFormatter implements Formatter
 {
@@ -80,9 +81,12 @@ private function getReleaseUrl(PackageInterface $package)
     protected static function isUpgrade(UpdateOperation $operation)
     {
         $versionParser = new VersionParser();
-        $normalizedFrom = $versionParser->normalize($operation->getInitialPackage()->getVersion());
-        $normalizedTo = $versionParser->normalize($operation->getTargetPackage()->getVersion());
-
+        try {
+            $normalizedFrom = $versionParser->normalize($operation->getInitialPackage()->getVersion());
+            $normalizedTo = $versionParser->normalize($operation->getTargetPackage()->getVersion());
+        } catch (UnexpectedValueException $e) {
+            return true; // Consider as upgrade if versions are not parsable
+        }
         $sorted = Semver::sort(array($normalizedTo, $normalizedFrom));
 
         return $sorted[0] === $normalizedFrom;
diff --git a/tests/Formatter/FormatterTest.php b/tests/Formatter/FormatterTest.php
index 9318d06..17504e8 100644
--- a/tests/Formatter/FormatterTest.php
+++ b/tests/Formatter/FormatterTest.php
@@ -47,6 +47,7 @@ public function testItRendersTheListOfOperations($withUrls)
             new UpdateOperation($this->getPackage('a/package-2', '1.0.0'), $this->getPackage('a/package-2', '1.2.0')),
             new UpdateOperation($this->getPackage('a/package-3', '2.0.0'), $this->getPackage('a/package-3', '1.1.1')),
             new UpdateOperation($this->getPackage('a/no-link-2', '2.0.0'), $this->getPackage('a/no-link-2', '1.1.1')),
+            new UpdateOperation($this->getPackage('php', '>=7.4.6'), $this->getPackage('php', '^8.0')),
         );
         $devPackages = array(
             new UpdateOperation($this->getPackage('a/package-5', 'dev-master', 'dev-master 1234567'), $this->getPackage('a/package-5', '1.1.1')),
@@ -114,7 +115,7 @@ protected function getGenerators()
             ->getMock();
         $generators->method('get')
             ->willReturnCallback(function (PackageInterface $package) use ($generator) {
-                if (false !== strpos($package->getName(), 'a/no-link')) {
+                if ('php' === $package->getName() || false !== strpos($package->getName(), 'a/no-link')) {
                     return null;
                 }
 
diff --git a/tests/Formatter/JsonFormatterTest.php b/tests/Formatter/JsonFormatterTest.php
index c5c37be..ee92d96 100644
--- a/tests/Formatter/JsonFormatterTest.php
+++ b/tests/Formatter/JsonFormatterTest.php
@@ -121,6 +121,13 @@ protected function getSampleOutput($withUrls)
                                 'version_target' => '1.1.1',
                                 'compare' => null,
                             ),
+                        'php' => array(
+                            'name' => 'php',
+                            'operation' => 'upgrade',
+                            'version_base' => '>=7.4.6',
+                            'version_target' => '^8.0',
+                            'compare' => null,
+                        ),
                     ),
                 'packages-dev' => array(
                         'a/package-5' => array(
@@ -180,6 +187,12 @@ protected function getSampleOutput($withUrls)
                     'version_base' => '2.0.0',
                     'version_target' => '1.1.1',
                 ),
+                'php' => array(
+                    'name' => 'php',
+                    'operation' => 'upgrade',
+                    'version_base' => '>=7.4.6',
+                    'version_target' => '^8.0',
+                ),
             ),
             'packages-dev' => array(
                 'a/package-5' => array(
diff --git a/tests/Formatter/MarkdownListFormatterTest.php b/tests/Formatter/MarkdownListFormatterTest.php
index c66d995..bfcf9a1 100644
--- a/tests/Formatter/MarkdownListFormatterTest.php
+++ b/tests/Formatter/MarkdownListFormatterTest.php
@@ -20,6 +20,7 @@ protected function getSampleOutput($withUrls)
  - Upgrade a/package-2 (1.0.0 => 1.2.0) [Compare](https://example.com/c/1.0.0..1.2.0)
  - Downgrade a/package-3 (2.0.0 => 1.1.1) [Compare](https://example.com/c/2.0.0..1.1.1)
  - Downgrade a/no-link-2 (2.0.0 => 1.1.1) 
+ - Upgrade php (>=7.4.6 => ^8.0) 
 
 Dev Packages
 ============
@@ -41,6 +42,7 @@ protected function getSampleOutput($withUrls)
  - Upgrade a/package-2 (1.0.0 => 1.2.0)
  - Downgrade a/package-3 (2.0.0 => 1.1.1)
  - Downgrade a/no-link-2 (2.0.0 => 1.1.1)
+ - Upgrade php (>=7.4.6 => ^8.0)
 
 Dev Packages
 ============
diff --git a/tests/Formatter/MarkdownTableFormatterTest.php b/tests/Formatter/MarkdownTableFormatterTest.php
index ac28503..edb118b 100644
--- a/tests/Formatter/MarkdownTableFormatterTest.php
+++ b/tests/Formatter/MarkdownTableFormatterTest.php
@@ -12,13 +12,14 @@ protected function getSampleOutput($withUrls)
     {
         if ($withUrls) {
             return <<<OUTPUT
-| Prod Packages | Operation  | Base  | Target | Link                                          |
-|---------------|------------|-------|--------|-----------------------------------------------|
-| a/package-1   | New        | -     | 1.0.0  | [Compare](https://example.com/r/1.0.0)        |
-| a/no-link-1   | New        | -     | 1.0.0  |                                               |
-| a/package-2   | Upgraded   | 1.0.0 | 1.2.0  | [Compare](https://example.com/c/1.0.0..1.2.0) |
-| a/package-3   | Downgraded | 2.0.0 | 1.1.1  | [Compare](https://example.com/c/2.0.0..1.1.1) |
-| a/no-link-2   | Downgraded | 2.0.0 | 1.1.1  |                                               |
+| Prod Packages | Operation  | Base    | Target | Link                                          |
+|---------------|------------|---------|--------|-----------------------------------------------|
+| a/package-1   | New        | -       | 1.0.0  | [Compare](https://example.com/r/1.0.0)        |
+| a/no-link-1   | New        | -       | 1.0.0  |                                               |
+| a/package-2   | Upgraded   | 1.0.0   | 1.2.0  | [Compare](https://example.com/c/1.0.0..1.2.0) |
+| a/package-3   | Downgraded | 2.0.0   | 1.1.1  | [Compare](https://example.com/c/2.0.0..1.1.1) |
+| a/no-link-2   | Downgraded | 2.0.0   | 1.1.1  |                                               |
+| php           | Upgraded   | >=7.4.6 | ^8.0   |                                               |
 
 | Dev Packages | Operation  | Base               | Target | Link                                               |
 |--------------|------------|--------------------|--------|----------------------------------------------------|
@@ -31,13 +32,14 @@ protected function getSampleOutput($withUrls)
         }
 
         return <<<OUTPUT
-| Prod Packages | Operation  | Base  | Target |
-|---------------|------------|-------|--------|
-| a/package-1   | New        | -     | 1.0.0  |
-| a/no-link-1   | New        | -     | 1.0.0  |
-| a/package-2   | Upgraded   | 1.0.0 | 1.2.0  |
-| a/package-3   | Downgraded | 2.0.0 | 1.1.1  |
-| a/no-link-2   | Downgraded | 2.0.0 | 1.1.1  |
+| Prod Packages | Operation  | Base    | Target |
+|---------------|------------|---------|--------|
+| a/package-1   | New        | -       | 1.0.0  |
+| a/no-link-1   | New        | -       | 1.0.0  |
+| a/package-2   | Upgraded   | 1.0.0   | 1.2.0  |
+| a/package-3   | Downgraded | 2.0.0   | 1.1.1  |
+| a/no-link-2   | Downgraded | 2.0.0   | 1.1.1  |
+| php           | Upgraded   | >=7.4.6 | ^8.0   |
 
 | Dev Packages | Operation  | Base               | Target |
 |--------------|------------|--------------------|--------|