From 6af2bad12320bc264a8ea3f070d25d5c09f4b75a Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 24 Aug 2020 22:56:31 +0300 Subject: [PATCH] Make PIO Core 4.0 automatically compatible with dev-platforms for PIO Core 2.0 & 3.0 // Resolve #3638 --- platformio/platform/base.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/platformio/platform/base.py b/platformio/platform/base.py index 0c061a11..ffafd61c 100644 --- a/platformio/platform/base.py +++ b/platformio/platform/base.py @@ -111,11 +111,13 @@ class PlatformBase( # pylint: disable=too-many-instance-attributes,too-many-pub def ensure_engine_compatible(self): if not self.engines or "platformio" not in self.engines: return True - if self.CORE_SEMVER in semantic_version.SimpleSpec(self.engines["platformio"]): + core_spec = semantic_version.SimpleSpec(self.engines["platformio"]) + if self.CORE_SEMVER in core_spec: return True - raise IncompatiblePlatform( - self.name, str(self.CORE_SEMVER), self.engines["platformio"] - ) + # PIO Core 4 is compatible with dev-platforms for PIO Core 2.0 & 3.0 + if any(semantic_version.Version.coerce(str(v)) in core_spec for v in (2, 3)): + return True + raise IncompatiblePlatform(self.name, str(self.CORE_SEMVER), str(core_spec)) def get_dir(self): return os.path.dirname(self.manifest_path)