From 8199272328aa81bc075c5d5d332c89aedfa66107 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 13 Sep 2016 18:53:17 +0300 Subject: [PATCH] Better checking of available package updates --- platformio/__init__.py | 2 +- platformio/managers/package.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/platformio/__init__.py b/platformio/__init__.py index fc10a320..aa995d20 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (3, 0, "2a2") +VERSION = (3, 0, "2a3") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/managers/package.py b/platformio/managers/package.py index c536a9e6..22ea8e25 100644 --- a/platformio/managers/package.py +++ b/platformio/managers/package.py @@ -544,9 +544,19 @@ class BasePkgManager(PkgRepoMixin, PkgInstallerMixin): if not latest_version: click.echo("[%s]" % (click.style("Unknown", fg="yellow"))) return - if manifest['version'] == latest_version: + + up_to_date = False + try: + up_to_date = ( + semantic_version.Version.coerce(manifest['version']) >= + semantic_version.Version.coerce(latest_version)) + except ValueError: + up_to_date = latest_version == manifest['version'] + + if up_to_date: click.echo("[%s]" % (click.style("Up-to-date", fg="green"))) return + click.echo("[%s]" % (click.style("Out-of-date", fg="red"))) if only_check: return