Skip to content

Commit c475578

Browse files
committed
Resolved an issue where the |LDF| couldn't locate a library dependency declared via version control system repository // Resolve platformio#4885
1 parent 2bad42e commit c475578

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

HISTORY.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ Unlock the true potential of embedded software development with
1818
PlatformIO's collaborative ecosystem, embracing declarative principles,
1919
test-driven methodologies, and modern toolchains for unrivaled success.
2020

21+
6.1.15 (2024-??-??)
22+
~~~~~~~~~~~~~~~~~~~
23+
24+
* Resolved an issue where the |LDF| couldn't locate a library dependency declared via version control system repository (`issue #4885 <https://github.com/platformio/platformio-core/issues/4885>`_)
25+
2126
6.1.14 (2024-03-21)
2227
~~~~~~~~~~~~~~~~~~~
2328

platformio/builder/tools/piolib.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
ManifestParserError,
4040
ManifestParserFactory,
4141
)
42-
from platformio.package.meta import PackageCompatibility, PackageItem
42+
from platformio.package.meta import PackageCompatibility, PackageItem, PackageSpec
4343
from platformio.project.options import ProjectOptions
4444

4545

@@ -332,9 +332,17 @@ def is_dependency_compatible(self, dependency):
332332
qualifiers = {"name": pkg.metadata.name, "version": pkg.metadata.version}
333333
if pkg.metadata.spec and pkg.metadata.spec.owner:
334334
qualifiers["owner"] = pkg.metadata.spec.owner
335-
return PackageCompatibility.from_dependency(
336-
{k: v for k, v in dependency.items() if k in ("owner", "name", "version")}
337-
).is_compatible(PackageCompatibility(**qualifiers))
335+
dep_qualifiers = {
336+
k: v for k, v in dependency.items() if k in ("owner", "name", "version")
337+
}
338+
if (
339+
"version" in dep_qualifiers
340+
and not PackageSpec(dep_qualifiers["version"]).requirements
341+
):
342+
del dep_qualifiers["version"]
343+
return PackageCompatibility.from_dependency(dep_qualifiers).is_compatible(
344+
PackageCompatibility(**qualifiers)
345+
)
338346

339347
def get_search_files(self):
340348
return [

0 commit comments

Comments
 (0)