diff --git a/platformio/package/manifest/parser.py b/platformio/package/manifest/parser.py index f3d35559..3598d516 100644 --- a/platformio/package/manifest/parser.py +++ b/platformio/package/manifest/parser.py @@ -658,9 +658,14 @@ class PlatformJsonManifestParser(BaseManifestParser): @staticmethod def _parse_dependencies(raw): - return [ - dict(name=name, version=opts.get("version")) for name, opts in raw.items() - ] + result = [] + for name, opts in raw.items(): + item = {"name": name} + for k in ("owner", "version"): + if k in opts: + item[k] = opts[k] + result.append(item) + return result class PackageJsonManifestParser(BaseManifestParser): diff --git a/tests/package/test_manifest.py b/tests/package/test_manifest.py index 2cc64ddb..ff6803eb 100644 --- a/tests/package/test_manifest.py +++ b/tests/package/test_manifest.py @@ -576,6 +576,7 @@ def test_platform_json_schema(): "packages": { "toolchain-atmelavr": { "type": "toolchain", + "owner": "platformio", "version": "~1.50400.0" }, "framework-arduinoavr": { @@ -623,7 +624,11 @@ def test_platform_json_schema(): "dependencies": [ {"name": "framework-arduinoavr", "version": "~4.2.0"}, {"name": "tool-avrdude", "version": "~1.60300.0"}, - {"name": "toolchain-atmelavr", "version": "~1.50400.0"}, + { + "name": "toolchain-atmelavr", + "owner": "platformio", + "version": "~1.50400.0", + }, ], }, )