From a05670b9217b0cdb2de6aecf23b9f120a5fa165c Mon Sep 17 00:00:00 2001 From: Abedin Poonawala Date: Thu, 6 Oct 2022 16:56:56 +1000 Subject: [PATCH 1/7] fix(nuget): add nuget dependency extract Signed-off-by: Abedin Poonawala --- src/packagedcode/nuget.py | 77 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 4 deletions(-) diff --git a/src/packagedcode/nuget.py b/src/packagedcode/nuget.py index a1cf1036390..1f9c258ab7c 100644 --- a/src/packagedcode/nuget.py +++ b/src/packagedcode/nuget.py @@ -12,10 +12,69 @@ from packagedcode import models from packagedcode.utils import build_description + """ Handle NuGet packages and their manifests. """ -# TODO: add dependencies + +# TODO: Add section to handle dependencies of dependencies + + +def get_dependencies(nuspec): + """ + Return a list of Dependent package objects found in a NuGet `nuspec` object. + """ + dependencies = [] + try: + if "dependencies" in nuspec: + if "dependency" in nuspec.get("dependencies"): + if "@id" and "@version" in nuspec.get("dependencies").get("dependency"): + dpurl = models.PackageURL( + type='nuget', + namespace=None, + name=nuspec.get("dependencies").get( + "dependency").get("@id"), + version=nuspec.get("dependencies").get( + "dependency").get("@version"), + qualifiers=None + ) + dep_pack = models.DependentPackage( + purl=str(dpurl), + extracted_requirement=nuspec.get("dependencies").get( + "dependency").get("@version"), + scope="dependency", + is_runtime=False, + is_optional=False, + is_resolved=True, + ) + + dependencies.append(dep_pack) + + else: + for dependency in nuspec.get("dependencies").get("dependency"): + dpurl = models.PackageURL( + type='nuget', + namespace=None, + name=dependency.get("@id"), + version=dependency.get("@version"), + qualifiers=None + ) + dep_pack = models.DependentPackage( + purl=str(dpurl), + extracted_requirement=dependency.get( + "@version"), + scope="dependency", + is_runtime=False, + is_optional=False, + is_resolved=True, + ) + dependencies.append(dep_pack) + + return dependencies + + except Exception as e: + print(e) + return dependencies def get_urls(name, version, **kwargs): @@ -46,7 +105,7 @@ class NugetNuspecHandler(models.DatafileHandler): @classmethod def parse(cls, location): - with open(location , 'rb') as loc: + with open(location, 'rb') as loc: parsed = xmltodict.parse(loc) if not parsed: @@ -62,14 +121,15 @@ def parse(cls, location): # Summary: A short description of the package for UI display. If omitted, a # truncated version of description is used. - description = build_description(nuspec.get('summary') , nuspec.get('description')) + description = build_description( + nuspec.get('summary'), nuspec.get('description')) # title: A human-friendly title of the package, typically used in UI # displays as on nuget.org and the Package Manager in Visual Studio. If not # specified, the package ID is used. title = nuspec.get('title') if title and title != name: - description = build_description(nuspec.get('title') , description) + description = build_description(nuspec.get('title'), description) parties = [] authors = nuspec.get('authors') @@ -112,7 +172,16 @@ def parse(cls, location): homepage_url=nuspec.get('projectUrl') or None, parties=parties, extracted_license_statement=extracted_license_statement, + dependencies=get_dependencies(nuspec), + # FIXME: license has evolved and is now SPDX... + declared_license=nuspec.get('licenseUrl') or None, copyright=nuspec.get('copyright') or None, vcs_url=vcs_url, **urls, ) + + if not package_data.license_expression and package_data.declared_license: + package_data.license_expression = cls.compute_normalized_license( + package_data) + + yield package_data From a2280785fe5e25feb42d39cc6fc89ba4f625de97 Mon Sep 17 00:00:00 2001 From: Abedin Poonawala Date: Fri, 18 Nov 2022 13:27:12 +1000 Subject: [PATCH 2/7] feat(nuget): add dependency check for inside group tags 1. update code to look for dependencies in a group as well 2. update nuget test data with dependency data Signed-off-by: Abedin Poonawala --- src/packagedcode/nuget.py | 23 ++ .../nuget/Castle.Core.nuspec.json.expected | 158 ++++++++---- .../Microsoft.AspNet.Mvc.nuspec.json.expected | 238 ++++++++++++++---- .../Microsoft.Net.Http.nuspec.json.expected | 78 ++---- .../data/nuget/bootstrap.nuspec.json.expected | 68 ++--- .../jQuery.UI.Combined.nuspec.json.expected | 68 ++--- 6 files changed, 363 insertions(+), 270 deletions(-) diff --git a/src/packagedcode/nuget.py b/src/packagedcode/nuget.py index 1f9c258ab7c..d15c8879f12 100644 --- a/src/packagedcode/nuget.py +++ b/src/packagedcode/nuget.py @@ -27,6 +27,29 @@ def get_dependencies(nuspec): dependencies = [] try: if "dependencies" in nuspec: + if "group" in nuspec["dependencies"]: + for group in nuspec["dependencies"]["group"]: + if "dependency" in group: + for dependency in group["dependency"]: + #dependencies.append(dependency) + dpurl = models.PackageURL( + type='nuget', + namespace=None, + name=dependency.get("@id"), + version=dependency.get("@version"), + qualifiers=None + ) + dep_pack = models.DependentPackage( + purl=str(dpurl), + extracted_requirement=dependency.get("@version"), + scope="dependency", + is_runtime=False, + is_optional=False, + is_resolved=True, + ) + + dependencies.append(dep_pack) + if "dependency" in nuspec.get("dependencies"): if "@id" and "@version" in nuspec.get("dependencies").get("dependency"): dpurl = models.PackageURL( diff --git a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected index 75917239923..308098c34d6 100644 --- a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected @@ -37,64 +37,114 @@ "code_view_url": null, "vcs_url": "git+https://github.com/castleproject/Core", "copyright": "Copyright (c) 2004-2017 Castle Project - http://www.castleproject.org/", - "declared_license_expression": "apache-2.0", - "declared_license_expression_spdx": "Apache-2.0", - "license_detections": [ - { - "license_expression": "apache-2.0", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 100.0, - "start_line": 1, - "end_line": 1, - "matched_length": 9, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "apache-2.0", - "rule_identifier": "apache-2.0_20.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_20.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 9, - "rule_relevance": 100, - "matched_text": "http://www.apache.org/licenses/LICENSE-2.0.html", - "licenses": [ - { - "key": "apache-2.0", - "name": "Apache License 2.0", - "short_name": "Apache 2.0", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "Apache Software Foundation", - "homepage_url": "http://www.apache.org/licenses/", - "text_url": "http://www.apache.org/licenses/LICENSE-2.0", - "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", - "spdx_license_key": "Apache-2.0", - "spdx_url": "https://spdx.org/licenses/Apache-2.0" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "http://www.apache.org/licenses/LICENSE-2.0.html", + "license_expression": "apache-2.0", + "declared_license": "http://www.apache.org/licenses/LICENSE-2.0.html", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/NETStandard.Library@1.6.1", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Reflection@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Reflection.Emit@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.Collections.Specialized@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.ComponentModel@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter@4.3.0", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", "api_data_url": "https://api.nuget.org/v3/registration3/castle.core/4.2.1.json", diff --git a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected index 1f12966bff7..38efb0a755c 100644 --- a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected @@ -37,64 +37,194 @@ "code_view_url": null, "vcs_url": null, "copyright": "Copyright \u00a9 Microsoft Corporation", - "declared_license_expression": "ms-net-library", - "declared_license_expression_spdx": "LicenseRef-scancode-ms-net-library", - "license_detections": [ - { - "license_expression": "ms-net-library", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 100.0, - "start_line": 1, - "end_line": 1, - "matched_length": 12, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "ms-net-library", - "rule_identifier": "ms-net-library_1.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/ms-net-library_1.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 12, - "rule_relevance": 100, - "matched_text": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", - "licenses": [ - { - "key": "ms-net-library", - "name": "Microsoft .NET Library License", - "short_name": "MS .NET Library License", - "category": "Proprietary Free", - "is_exception": false, - "is_unknown": false, - "owner": "Microsoft", - "homepage_url": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ms-net-library", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library.LICENSE", - "spdx_license_key": "LicenseRef-scancode-ms-net-library", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library.LICENSE" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", + "license_expression": "ms-net-library", + "declared_license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory@1.0.0-beta7", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection@1.0.0-beta7", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures@6.0.0-beta7", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory@1.0.0-beta7", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection@1.0.0-beta7", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta7", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/6.0.0-beta7", "api_data_url": "https://api.nuget.org/v3/registration3/microsoft.aspnet.mvc/6.0.0-beta7.json", diff --git a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected index f539e8dc069..f2937cebd60 100644 --- a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected @@ -37,64 +37,34 @@ "code_view_url": null, "vcs_url": null, "copyright": "Copyright \u00a9 Microsoft Corporation", - "declared_license_expression": "ms-net-library-2018-11", - "declared_license_expression_spdx": "LicenseRef-scancode-ms-net-library-2018-11", - "license_detections": [ - { - "license_expression": "ms-net-library-2018-11", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 100.0, - "start_line": 1, - "end_line": 1, - "matched_length": 7, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "ms-net-library-2018-11", - "rule_identifier": "ms-net-library-2018-11_3.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/ms-net-library-2018-11_3.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 7, - "rule_relevance": 100, - "matched_text": "http://go.microsoft.com/fwlink/?LinkId=329770", - "licenses": [ - { - "key": "ms-net-library-2018-11", - "name": "Microsoft .NET Library License 2018-11", - "short_name": "MS .NET Library License 2018-11", - "category": "Proprietary Free", - "is_exception": false, - "is_unknown": false, - "owner": "Microsoft", - "homepage_url": "https://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", - "text_url": "", - "reference_url": "https://scancode-licensedb.aboutcode.org/ms-net-library-2018-11", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library-2018-11.LICENSE", - "spdx_license_key": "LicenseRef-scancode-ms-net-library-2018-11", - "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library-2018-11.LICENSE" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "http://go.microsoft.com/fwlink/?LinkId=329770", + "license_expression": "ms-net-library-2018-11", + "declared_license": "http://go.microsoft.com/fwlink/?LinkId=329770", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/Microsoft.Bcl@1.1.10", + "extracted_requirement": "1.1.10", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Bcl.Build@1.0.14", + "extracted_requirement": "1.0.14", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.Net.Http/2.2.29", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.Net.Http/2.2.29", "api_data_url": "https://api.nuget.org/v3/registration3/microsoft.net.http/2.2.29.json", diff --git a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected index ff150952d3a..7585a7e62ff 100644 --- a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected @@ -37,64 +37,24 @@ "code_view_url": null, "vcs_url": null, "copyright": "Copyright 2015", - "declared_license_expression": "mit", - "declared_license_expression_spdx": "MIT", - "license_detections": [ - { - "license_expression": "mit", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 100.0, - "start_line": 1, - "end_line": 1, - "matched_length": 8, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mit", - "rule_identifier": "mit_180.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_180.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 8, - "rule_relevance": 100, - "matched_text": "https://github.com/twbs/bootstrap/blob/master/LICENSE", - "licenses": [ - { - "key": "mit", - "name": "MIT License", - "short_name": "MIT License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://opensource.org/licenses/mit-license.php", - "text_url": "http://opensource.org/licenses/mit-license.php", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", - "spdx_license_key": "MIT", - "spdx_url": "https://spdx.org/licenses/MIT" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "license_expression": "mit", + "declared_license": "https://github.com/twbs/bootstrap/blob/master/LICENSE", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/jQuery@1.9.1", + "extracted_requirement": "1.9.1", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", diff --git a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected index ba27fa78510..887474db22a 100644 --- a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected @@ -37,64 +37,24 @@ "code_view_url": null, "vcs_url": null, "copyright": null, - "declared_license_expression": "mit", - "declared_license_expression_spdx": "MIT", - "license_detections": [ - { - "license_expression": "mit", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 80.0, - "start_line": 1, - "end_line": 1, - "matched_length": 4, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mit", - "rule_identifier": "mit_jquery_url.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_jquery_url.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 4, - "rule_relevance": 80, - "matched_text": "http://jquery.org/license", - "licenses": [ - { - "key": "mit", - "name": "MIT License", - "short_name": "MIT License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://opensource.org/licenses/mit-license.php", - "text_url": "http://opensource.org/licenses/mit-license.php", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", - "spdx_license_key": "MIT", - "spdx_url": "https://spdx.org/licenses/MIT" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "http://jquery.org/license", + "license_expression": "mit", + "declared_license": "http://jquery.org/license", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/jQuery@1.6.4", + "extracted_requirement": "1.6.4", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/jQuery.UI.Combined/1.11.4", "repository_download_url": "https://www.nuget.org/api/v2/package/jQuery.UI.Combined/1.11.4", "api_data_url": "https://api.nuget.org/v3/registration3/jquery.ui.combined/1.11.4.json", From f370581170aa394a754925fb5b94ecfbf41d01bd Mon Sep 17 00:00:00 2001 From: Abedin Poonawala Date: Fri, 18 Nov 2022 16:10:26 +1000 Subject: [PATCH 3/7] fix(nuget): match updated develop code Signed-off-by: Abedin Poonawala --- src/packagedcode/nuget.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/packagedcode/nuget.py b/src/packagedcode/nuget.py index d15c8879f12..b7340201d95 100644 --- a/src/packagedcode/nuget.py +++ b/src/packagedcode/nuget.py @@ -185,7 +185,7 @@ def parse(cls, location): # Deprecated and not a license expression, just a URL elif 'licenseUrl' in nuspec: extracted_license_statement = nuspec.get('licenseUrl') - + yield models.PackageData( datasource_id=cls.datasource_id, type=cls.default_package_type, @@ -194,17 +194,10 @@ def parse(cls, location): description=description or None, homepage_url=nuspec.get('projectUrl') or None, parties=parties, - extracted_license_statement=extracted_license_statement, dependencies=get_dependencies(nuspec), - # FIXME: license has evolved and is now SPDX... - declared_license=nuspec.get('licenseUrl') or None, + extracted_license_statement=extracted_license_statement, copyright=nuspec.get('copyright') or None, vcs_url=vcs_url, **urls, ) - if not package_data.license_expression and package_data.declared_license: - package_data.license_expression = cls.compute_normalized_license( - package_data) - - yield package_data From fc2d36afc7fd1d6fff54e8b98beebed01f1e9a3e Mon Sep 17 00:00:00 2001 From: Abedin Poonawala Date: Tue, 22 Nov 2022 10:18:18 +1000 Subject: [PATCH 4/7] fix(nuget): update nuget test Signed-off-by: Abedin Poonawala --- .../nuget/Castle.Core.nuspec.json.expected | 57 +++++++++++++++- .../Microsoft.AspNet.Mvc.nuspec.json.expected | 55 ++++++++++++++- .../Microsoft.Net.Http.nuspec.json.expected | 55 ++++++++++++++- .../data/nuget/bootstrap.nuspec.json.expected | 68 +++++++++++++++---- .../jQuery.UI.Combined.nuspec.json.expected | 57 +++++++++++++++- 5 files changed, 268 insertions(+), 24 deletions(-) diff --git a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected index 308098c34d6..13a4b133749 100644 --- a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected @@ -37,14 +37,65 @@ "code_view_url": null, "vcs_url": "git+https://github.com/castleproject/Core", "copyright": "Copyright (c) 2004-2017 Castle Project - http://www.castleproject.org/", - "license_expression": "apache-2.0", - "declared_license": "http://www.apache.org/licenses/LICENSE-2.0.html", + "declared_license_expression": "apache-2.0", + "declared_license_expression_spdx": "Apache-2.0", + "license_detections": [ + { + "license_expression": "apache-2.0", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 100.0, + "start_line": 1, + "end_line": 1, + "matched_length": 9, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "apache-2.0", + "rule_identifier": "apache-2.0_20.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/apache-2.0_20.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 9, + "rule_relevance": 100, + "matched_text": "http://www.apache.org/licenses/LICENSE-2.0.html", + "licenses": [ + { + "key": "apache-2.0", + "name": "Apache License 2.0", + "short_name": "Apache 2.0", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "Apache Software Foundation", + "homepage_url": "http://www.apache.org/licenses/", + "text_url": "http://www.apache.org/licenses/LICENSE-2.0", + "reference_url": "https://scancode-licensedb.aboutcode.org/apache-2.0", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/apache-2.0.LICENSE", + "spdx_license_key": "Apache-2.0", + "spdx_url": "https://spdx.org/licenses/Apache-2.0" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "http://www.apache.org/licenses/LICENSE-2.0.html", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, "dependencies": [ - { + { "purl": "pkg:nuget/NETStandard.Library@1.6.1", "extracted_requirement": "1.6.1", "scope": "dependency", diff --git a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected index 38efb0a755c..c5d8d4f5729 100644 --- a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected @@ -37,8 +37,59 @@ "code_view_url": null, "vcs_url": null, "copyright": "Copyright \u00a9 Microsoft Corporation", - "license_expression": "ms-net-library", - "declared_license": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", + "declared_license_expression": "ms-net-library", + "declared_license_expression_spdx": "LicenseRef-scancode-ms-net-library", + "license_detections": [ + { + "license_expression": "ms-net-library", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 100.0, + "start_line": 1, + "end_line": 1, + "matched_length": 12, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "ms-net-library", + "rule_identifier": "ms-net-library_1.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/ms-net-library_1.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 12, + "rule_relevance": 100, + "matched_text": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", + "licenses": [ + { + "key": "ms-net-library", + "name": "Microsoft .NET Library License", + "short_name": "MS .NET Library License", + "category": "Proprietary Free", + "is_exception": false, + "is_unknown": false, + "owner": "Microsoft", + "homepage_url": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", + "text_url": "", + "reference_url": "https://scancode-licensedb.aboutcode.org/ms-net-library", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library.LICENSE", + "spdx_license_key": "LicenseRef-scancode-ms-net-library", + "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library.LICENSE" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "http://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", "notice_text": null, "source_packages": [], "file_references": [], diff --git a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected index f2937cebd60..1b153842951 100644 --- a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected @@ -37,8 +37,59 @@ "code_view_url": null, "vcs_url": null, "copyright": "Copyright \u00a9 Microsoft Corporation", - "license_expression": "ms-net-library-2018-11", - "declared_license": "http://go.microsoft.com/fwlink/?LinkId=329770", + "declared_license_expression": "ms-net-library-2018-11", + "declared_license_expression_spdx": "LicenseRef-scancode-ms-net-library-2018-11", + "license_detections": [ + { + "license_expression": "ms-net-library-2018-11", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 100.0, + "start_line": 1, + "end_line": 1, + "matched_length": 7, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "ms-net-library-2018-11", + "rule_identifier": "ms-net-library-2018-11_3.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/ms-net-library-2018-11_3.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 7, + "rule_relevance": 100, + "matched_text": "http://go.microsoft.com/fwlink/?LinkId=329770", + "licenses": [ + { + "key": "ms-net-library-2018-11", + "name": "Microsoft .NET Library License 2018-11", + "short_name": "MS .NET Library License 2018-11", + "category": "Proprietary Free", + "is_exception": false, + "is_unknown": false, + "owner": "Microsoft", + "homepage_url": "https://www.microsoft.com/web/webpi/eula/net_library_eula_enu.htm", + "text_url": "", + "reference_url": "https://scancode-licensedb.aboutcode.org/ms-net-library-2018-11", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library-2018-11.LICENSE", + "spdx_license_key": "LicenseRef-scancode-ms-net-library-2018-11", + "spdx_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/ms-net-library-2018-11.LICENSE" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "http://go.microsoft.com/fwlink/?LinkId=329770", "notice_text": null, "source_packages": [], "file_references": [], diff --git a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected index 7585a7e62ff..ff150952d3a 100644 --- a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected @@ -37,24 +37,64 @@ "code_view_url": null, "vcs_url": null, "copyright": "Copyright 2015", - "license_expression": "mit", - "declared_license": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 100.0, + "start_line": 1, + "end_line": 1, + "matched_length": 8, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "mit", + "rule_identifier": "mit_180.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_180.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 8, + "rule_relevance": 100, + "matched_text": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "licenses": [ + { + "key": "mit", + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "https://github.com/twbs/bootstrap/blob/master/LICENSE", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:nuget/jQuery@1.9.1", - "extracted_requirement": "1.9.1", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], + "dependencies": [], "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", diff --git a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected index 887474db22a..d71de542726 100644 --- a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected @@ -37,14 +37,65 @@ "code_view_url": null, "vcs_url": null, "copyright": null, - "license_expression": "mit", - "declared_license": "http://jquery.org/license", + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 80.0, + "start_line": 1, + "end_line": 1, + "matched_length": 4, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "mit", + "rule_identifier": "mit_jquery_url.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_jquery_url.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 4, + "rule_relevance": 80, + "matched_text": "http://jquery.org/license", + "licenses": [ + { + "key": "mit", + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "http://jquery.org/license", "notice_text": null, "source_packages": [], "file_references": [], "extra_data": {}, "dependencies": [ - { + { "purl": "pkg:nuget/jQuery@1.6.4", "extracted_requirement": "1.6.4", "scope": "dependency", From 60a14ec1b7d33b3e500a1a25b6661b0dd4fb29f9 Mon Sep 17 00:00:00 2001 From: Abedin Poonawala Date: Tue, 22 Nov 2022 10:59:08 +1000 Subject: [PATCH 5/7] fix(nuget): add dependency section in bootstrap test Signed-off-by: Abedin Poonawala --- .../data/nuget/bootstrap.nuspec.json.expected | 213 +++++++++--------- 1 file changed, 112 insertions(+), 101 deletions(-) diff --git a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected index ff150952d3a..2444fa97e2c 100644 --- a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected @@ -1,104 +1,115 @@ [ { - "type": "nuget", - "namespace": null, - "name": "bootstrap", - "version": "4.0.0-alpha", - "qualifiers": {}, - "subpath": null, - "primary_language": null, - "description": "Bootstrap CSS\nBootstrap framework in CSS. Includes fonts and JavaScript\nThe most popular front-end framework for developing responsive, mobile first projects on the web.", - "release_date": null, - "parties": [ - { - "type": null, - "role": "author", - "name": "Twitter, Inc.", - "email": null, - "url": null - }, - { - "type": null, - "role": "owner", - "name": "bootstrap", - "email": null, - "url": null - } - ], - "keywords": [], - "homepage_url": "http://getbootstrap.com", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": "Copyright 2015", - "declared_license_expression": "mit", - "declared_license_expression_spdx": "MIT", - "license_detections": [ - { - "license_expression": "mit", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 100.0, - "start_line": 1, - "end_line": 1, - "matched_length": 8, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mit", - "rule_identifier": "mit_180.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_180.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 8, - "rule_relevance": 100, - "matched_text": "https://github.com/twbs/bootstrap/blob/master/LICENSE", - "licenses": [ - { - "key": "mit", - "name": "MIT License", - "short_name": "MIT License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://opensource.org/licenses/mit-license.php", - "text_url": "http://opensource.org/licenses/mit-license.php", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", - "spdx_license_key": "MIT", - "spdx_url": "https://spdx.org/licenses/MIT" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "https://github.com/twbs/bootstrap/blob/master/LICENSE", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [], - "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", - "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", - "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", - "datasource_id": "nuget_nupsec", - "purl": "pkg:nuget/bootstrap@4.0.0-alpha" - } + "type": "nuget", + "namespace": null, + "name": "bootstrap", + "version": "4.0.0-alpha", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": "Bootstrap CSS\nBootstrap framework in CSS. Includes fonts and JavaScript\nThe most popular front-end framework for developing responsive, mobile first projects on the web.", + "release_date": null, + "parties": [ + { + "type": null, + "role": "author", + "name": "Twitter, Inc.", + "email": null, + "url": null + }, + { + "type": null, + "role": "owner", + "name": "bootstrap", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": "http://getbootstrap.com", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": "Copyright 2015", + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 100.0, + "start_line": 1, + "end_line": 1, + "matched_length": 8, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "mit", + "rule_identifier": "mit_180.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_180.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 8, + "rule_relevance": 100, + "matched_text": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "licenses": [ + { + "key": "mit", + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:nuget/jQuery@1.9.1", + "extracted_requirement": "1.9.1", + "scope": "dependency", + "is_runtime": false, + "is_optional": false, + "is_resolved": true, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", + "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", + "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", + "datasource_id": "nuget_nupsec", + "purl": "pkg:nuget/bootstrap@4.0.0-alpha" + } ] \ No newline at end of file From a6017f585498f79fc90a16e5037f7989ffc7e8ca Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 18 Jan 2023 00:23:50 +0100 Subject: [PATCH 6/7] Refine NuGet nuspec dependency extraction Factor out common code in function, also include framework and set dependency flags accordingly. Reference: https://github.com/nexB/scancode-toolkit/issues/2308 Reference: https://github.com/nexB/scancode-toolkit/issues/648 Signed-off-by: Philippe Ombredanne --- src/packagedcode/nuget.py | 145 +++---- .../nuget/Castle.Core.nuspec.json.expected | 230 +++++----- .../Microsoft.AspNet.Mvc.nuspec.json.expected | 396 ++++++++++-------- .../Microsoft.Net.Http.nuspec.json.expected | 40 +- .../data/nuget/bootstrap.nuspec.json.expected | 224 +++++----- .../jQuery.UI.Combined.nuspec.json.expected | 20 +- .../data/plugin/nuget-package-expected.json | 306 +++++++++++++- 7 files changed, 853 insertions(+), 508 deletions(-) diff --git a/src/packagedcode/nuget.py b/src/packagedcode/nuget.py index b7340201d95..dee1afb39d5 100644 --- a/src/packagedcode/nuget.py +++ b/src/packagedcode/nuget.py @@ -8,96 +8,75 @@ # import xmltodict +from packageurl import PackageURL from packagedcode import models from packagedcode.utils import build_description - """ Handle NuGet packages and their manifests. """ -# TODO: Add section to handle dependencies of dependencies - def get_dependencies(nuspec): """ - Return a list of Dependent package objects found in a NuGet `nuspec` object. + Yield DependentPackage found in a NuGet ``nuspec`` object. + """ + # This is either a list of dependency or a list of group/dependency + # or a single dep or a single group mapping + + dependencies = nuspec.get('dependencies') or [] + if isinstance(dependencies, dict): + # wrap the mapping in a list if we have more than one dependencies + dependencies = [dependencies] + + for depends in dependencies: + groups = depends.get('group') or [] + if groups: + if isinstance(groups, dict): + # wrap the mapping in a list + groups = [groups] + + for group in groups: + extra_data = dict(framework=group['@targetFramework']) + deps = group.get('dependency') or [] + yield from _get_dep_packs(deps, extra_data) + else: + # {'dependency': {'@id': 'jQuery', '@version': '1.9.1'}} + deps = depends.get('dependency') or [] + yield from _get_dep_packs(deps, extra_data={}) + + +def _get_dep_packs(deps, extra_data): """ - dependencies = [] - try: - if "dependencies" in nuspec: - if "group" in nuspec["dependencies"]: - for group in nuspec["dependencies"]["group"]: - if "dependency" in group: - for dependency in group["dependency"]: - #dependencies.append(dependency) - dpurl = models.PackageURL( - type='nuget', - namespace=None, - name=dependency.get("@id"), - version=dependency.get("@version"), - qualifiers=None - ) - dep_pack = models.DependentPackage( - purl=str(dpurl), - extracted_requirement=dependency.get("@version"), - scope="dependency", - is_runtime=False, - is_optional=False, - is_resolved=True, - ) - - dependencies.append(dep_pack) - - if "dependency" in nuspec.get("dependencies"): - if "@id" and "@version" in nuspec.get("dependencies").get("dependency"): - dpurl = models.PackageURL( - type='nuget', - namespace=None, - name=nuspec.get("dependencies").get( - "dependency").get("@id"), - version=nuspec.get("dependencies").get( - "dependency").get("@version"), - qualifiers=None - ) - dep_pack = models.DependentPackage( - purl=str(dpurl), - extracted_requirement=nuspec.get("dependencies").get( - "dependency").get("@version"), - scope="dependency", - is_runtime=False, - is_optional=False, - is_resolved=True, - ) - - dependencies.append(dep_pack) - - else: - for dependency in nuspec.get("dependencies").get("dependency"): - dpurl = models.PackageURL( - type='nuget', - namespace=None, - name=dependency.get("@id"), - version=dependency.get("@version"), - qualifiers=None - ) - dep_pack = models.DependentPackage( - purl=str(dpurl), - extracted_requirement=dependency.get( - "@version"), - scope="dependency", - is_runtime=False, - is_optional=False, - is_resolved=True, - ) - dependencies.append(dep_pack) - - return dependencies - - except Exception as e: - print(e) - return dependencies + Yield DependentPackage found in a NuGet ``deps`` mapping or list of mappings. + """ + if not deps: + return + + if isinstance(deps, dict): + # wrap the mapping in a list + deps = [deps] + + for dep in deps: + extra = dict(extra_data) or {} + include = dep.get('@include') + if include: + extra['include'] = include + exclude = dep.get('@exclude') + if exclude: + extra['exclude'] = exclude + + yield models.DependentPackage( + purl=str(PackageURL(type='nuget', name=dep.get('@id'))), + # this is a range, not a version + extracted_requirement=dep.get('@version'), + scope='dependency', + is_runtime=True, + is_optional=False, + is_resolved=False, + extra_data=extra, + ) def get_urls(name, version, **kwargs): @@ -144,15 +123,14 @@ def parse(cls, location): # Summary: A short description of the package for UI display. If omitted, a # truncated version of description is used. - description = build_description( - nuspec.get('summary'), nuspec.get('description')) + description = build_description(nuspec.get('summary'), nuspec.get('description')) # title: A human-friendly title of the package, typically used in UI # displays as on nuget.org and the Package Manager in Visual Studio. If not # specified, the package ID is used. title = nuspec.get('title') if title and title != name: - description = build_description(nuspec.get('title'), description) + description = build_description(title, description) parties = [] authors = nuspec.get('authors') @@ -181,11 +159,10 @@ def parse(cls, location): # This is a SPDX license expression if 'license' in nuspec: extracted_license_statement = nuspec.get('license') - # TODO: try to convert to normal license expression # Deprecated and not a license expression, just a URL elif 'licenseUrl' in nuspec: extracted_license_statement = nuspec.get('licenseUrl') - + yield models.PackageData( datasource_id=cls.datasource_id, type=cls.default_package_type, @@ -194,7 +171,7 @@ def parse(cls, location): description=description or None, homepage_url=nuspec.get('projectUrl') or None, parties=parties, - dependencies=get_dependencies(nuspec), + dependencies=list(get_dependencies(nuspec)), extracted_license_statement=extracted_license_statement, copyright=nuspec.get('copyright') or None, vcs_url=vcs_url, diff --git a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected index 13a4b133749..87d29686202 100644 --- a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected @@ -95,106 +95,136 @@ "file_references": [], "extra_data": {}, "dependencies": [ - { - "purl": "pkg:nuget/NETStandard.Library@1.6.1", - "extracted_requirement": "1.6.1", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Diagnostics.TraceSource@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Reflection.TypeExtensions@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Xml.XmlDocument@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Dynamic.Runtime@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Reflection@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Reflection.Emit@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.Collections.Specialized@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.ComponentModel@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/System.ComponentModel.TypeConverter@4.3.0", - "extracted_requirement": "4.3.0", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } + { + "purl": "pkg:nuget/NETStandard.Library", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.Emit", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Collections.Specialized", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + } ], "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", diff --git a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected index c5d8d4f5729..7084b9b0b12 100644 --- a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected @@ -95,186 +95,222 @@ "file_references": [], "extra_data": {}, "dependencies": [ - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory@1.0.0-beta7", - "extracted_requirement": "1.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection@1.0.0-beta7", - "extracted_requirement": "1.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures@6.0.0-beta7", - "extracted_requirement": "6.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory@1.0.0-beta7", - "extracted_requirement": "1.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection@1.0.0-beta7", - "extracted_requirement": "1.0.0-beta7", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + } ], "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta7", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/6.0.0-beta7", diff --git a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected index 1b153842951..223a16516df 100644 --- a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected @@ -95,26 +95,26 @@ "file_references": [], "extra_data": {}, "dependencies": [ - { - "purl": "pkg:nuget/Microsoft.Bcl@1.1.10", - "extracted_requirement": "1.1.10", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - }, - { - "purl": "pkg:nuget/Microsoft.Bcl.Build@1.0.14", - "extracted_requirement": "1.0.14", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } + { + "purl": "pkg:nuget/Microsoft.Bcl", + "extracted_requirement": "1.1.10", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Bcl.Build", + "extracted_requirement": "1.0.14", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } ], "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.Net.Http/2.2.29", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.Net.Http/2.2.29", diff --git a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected index 2444fa97e2c..592562ce9ae 100644 --- a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected @@ -1,115 +1,115 @@ [ { - "type": "nuget", - "namespace": null, - "name": "bootstrap", - "version": "4.0.0-alpha", - "qualifiers": {}, - "subpath": null, - "primary_language": null, - "description": "Bootstrap CSS\nBootstrap framework in CSS. Includes fonts and JavaScript\nThe most popular front-end framework for developing responsive, mobile first projects on the web.", - "release_date": null, - "parties": [ - { - "type": null, - "role": "author", - "name": "Twitter, Inc.", - "email": null, - "url": null - }, - { - "type": null, - "role": "owner", - "name": "bootstrap", - "email": null, - "url": null - } - ], - "keywords": [], - "homepage_url": "http://getbootstrap.com", - "download_url": null, - "size": null, - "sha1": null, - "md5": null, - "sha256": null, - "sha512": null, - "bug_tracking_url": null, - "code_view_url": null, - "vcs_url": null, - "copyright": "Copyright 2015", - "declared_license_expression": "mit", - "declared_license_expression_spdx": "MIT", - "license_detections": [ - { - "license_expression": "mit", - "detection_log": [ - "not-combined" - ], - "matches": [ - { - "score": 100.0, - "start_line": 1, - "end_line": 1, - "matched_length": 8, - "match_coverage": 100.0, - "matcher": "1-hash", - "license_expression": "mit", - "rule_identifier": "mit_180.RULE", - "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_180.RULE", - "referenced_filenames": [], - "is_license_text": false, - "is_license_notice": false, - "is_license_reference": true, - "is_license_tag": false, - "is_license_intro": false, - "rule_length": 8, - "rule_relevance": 100, - "matched_text": "https://github.com/twbs/bootstrap/blob/master/LICENSE", - "licenses": [ - { - "key": "mit", - "name": "MIT License", - "short_name": "MIT License", - "category": "Permissive", - "is_exception": false, - "is_unknown": false, - "owner": "MIT", - "homepage_url": "http://opensource.org/licenses/mit-license.php", - "text_url": "http://opensource.org/licenses/mit-license.php", - "reference_url": "https://scancode-licensedb.aboutcode.org/mit", - "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", - "spdx_license_key": "MIT", - "spdx_url": "https://spdx.org/licenses/MIT" - } - ] - } - ] - } - ], - "other_license_expression": null, - "other_license_expression_spdx": null, - "other_license_detections": [], - "extracted_license_statement": "https://github.com/twbs/bootstrap/blob/master/LICENSE", - "notice_text": null, - "source_packages": [], - "file_references": [], - "extra_data": {}, - "dependencies": [ - { - "purl": "pkg:nuget/jQuery@1.9.1", - "extracted_requirement": "1.9.1", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } - ], - "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", - "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", - "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", - "datasource_id": "nuget_nupsec", - "purl": "pkg:nuget/bootstrap@4.0.0-alpha" - } + "type": "nuget", + "namespace": null, + "name": "bootstrap", + "version": "4.0.0-alpha", + "qualifiers": {}, + "subpath": null, + "primary_language": null, + "description": "Bootstrap CSS\nBootstrap framework in CSS. Includes fonts and JavaScript\nThe most popular front-end framework for developing responsive, mobile first projects on the web.", + "release_date": null, + "parties": [ + { + "type": null, + "role": "author", + "name": "Twitter, Inc.", + "email": null, + "url": null + }, + { + "type": null, + "role": "owner", + "name": "bootstrap", + "email": null, + "url": null + } + ], + "keywords": [], + "homepage_url": "http://getbootstrap.com", + "download_url": null, + "size": null, + "sha1": null, + "md5": null, + "sha256": null, + "sha512": null, + "bug_tracking_url": null, + "code_view_url": null, + "vcs_url": null, + "copyright": "Copyright 2015", + "declared_license_expression": "mit", + "declared_license_expression_spdx": "MIT", + "license_detections": [ + { + "license_expression": "mit", + "detection_log": [ + "not-combined" + ], + "matches": [ + { + "score": 100.0, + "start_line": 1, + "end_line": 1, + "matched_length": 8, + "match_coverage": 100.0, + "matcher": "1-hash", + "license_expression": "mit", + "rule_identifier": "mit_180.RULE", + "rule_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/rules/mit_180.RULE", + "referenced_filenames": [], + "is_license_text": false, + "is_license_notice": false, + "is_license_reference": true, + "is_license_tag": false, + "is_license_intro": false, + "rule_length": 8, + "rule_relevance": 100, + "matched_text": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "licenses": [ + { + "key": "mit", + "name": "MIT License", + "short_name": "MIT License", + "category": "Permissive", + "is_exception": false, + "is_unknown": false, + "owner": "MIT", + "homepage_url": "http://opensource.org/licenses/mit-license.php", + "text_url": "http://opensource.org/licenses/mit-license.php", + "reference_url": "https://scancode-licensedb.aboutcode.org/mit", + "scancode_url": "https://github.com/nexB/scancode-toolkit/tree/develop/src/licensedcode/data/licenses/mit.LICENSE", + "spdx_license_key": "MIT", + "spdx_url": "https://spdx.org/licenses/MIT" + } + ] + } + ] + } + ], + "other_license_expression": null, + "other_license_expression_spdx": null, + "other_license_detections": [], + "extracted_license_statement": "https://github.com/twbs/bootstrap/blob/master/LICENSE", + "notice_text": null, + "source_packages": [], + "file_references": [], + "extra_data": {}, + "dependencies": [ + { + "purl": "pkg:nuget/jQuery", + "extracted_requirement": "1.9.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], + "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", + "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", + "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", + "datasource_id": "nuget_nupsec", + "purl": "pkg:nuget/bootstrap@4.0.0-alpha" + } ] \ No newline at end of file diff --git a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected index d71de542726..2e9b13fabb7 100644 --- a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected @@ -95,16 +95,16 @@ "file_references": [], "extra_data": {}, "dependencies": [ - { - "purl": "pkg:nuget/jQuery@1.6.4", - "extracted_requirement": "1.6.4", - "scope": "dependency", - "is_runtime": false, - "is_optional": false, - "is_resolved": true, - "resolved_package": {}, - "extra_data": {} - } + { + "purl": "pkg:nuget/jQuery", + "extracted_requirement": "1.6.4", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } ], "repository_homepage_url": "https://www.nuget.org/packages/jQuery.UI.Combined/1.11.4", "repository_download_url": "https://www.nuget.org/api/v2/package/jQuery.UI.Combined/1.11.4", diff --git a/tests/packagedcode/data/plugin/nuget-package-expected.json b/tests/packagedcode/data/plugin/nuget-package-expected.json index 8df58c5acc3..14da3d5846b 100644 --- a/tests/packagedcode/data/plugin/nuget-package-expected.json +++ b/tests/packagedcode/data/plugin/nuget-package-expected.json @@ -1,5 +1,176 @@ { - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/NETStandard.Library", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/NETStandard.Library?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Diagnostics.TraceSource?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Reflection.TypeExtensions?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Xml.XmlDocument?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Dynamic.Runtime?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Reflection", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Reflection?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Reflection.Emit", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Reflection.Emit?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Collections.Specialized", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Collections.Specialized?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.ComponentModel", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.ComponentModel?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.ComponentModel.TypeConverter?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + } + ], "packages": [ { "type": "nuget", @@ -208,7 +379,138 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/NETStandard.Library", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.Emit", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Collections.Specialized", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", "api_data_url": "https://api.nuget.org/v3/registration3/castle.core/4.2.1.json", From b62eb689f8b599a2082a1f91a5a056347938f632 Mon Sep 17 00:00:00 2001 From: Philippe Ombredanne Date: Wed, 18 Jan 2023 01:11:02 +0100 Subject: [PATCH 7/7] Regenerate NuGet tests after develop merge Signed-off-by: Philippe Ombredanne --- .../nuget/Castle.Core.nuspec.json.expected | 133 +++++++- .../Microsoft.AspNet.Mvc.nuspec.json.expected | 219 ++++++++++++- .../Microsoft.Net.Http.nuspec.json.expected | 23 +- .../data/nuget/bootstrap.nuspec.json.expected | 13 +- .../jQuery.UI.Combined.nuspec.json.expected | 13 +- .../data/plugin/nuget-package-expected.json | 306 +++++++++++++++++- 6 files changed, 700 insertions(+), 7 deletions(-) diff --git a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected index 9213ff8ca47..d38fe0543a3 100644 --- a/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Castle.Core.nuspec.json.expected @@ -69,7 +69,138 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/NETStandard.Library", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.Emit", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Collections.Specialized", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", "api_data_url": "https://api.nuget.org/v3/registration3/castle.core/4.2.1.json", diff --git a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected index 1db5958ede5..100a7895a58 100644 --- a/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.AspNet.Mvc.nuspec.json.expected @@ -69,7 +69,224 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNX4.5.1" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ApiExplorer", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Cors", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.DataAnnotations", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Formatters.Json", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Localization", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.Razor", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.AspNet.Mvc.ViewFeatures", + "extracted_requirement": "6.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.Caching.Memory", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + }, + { + "purl": "pkg:nuget/Microsoft.Framework.DependencyInjection", + "extracted_requirement": "1.0.0-beta7", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": "DNXCore5.0" + } + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.AspNet.Mvc/6.0.0-beta7", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.AspNet.Mvc/6.0.0-beta7", "api_data_url": "https://api.nuget.org/v3/registration3/microsoft.aspnet.mvc/6.0.0-beta7.json", diff --git a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected index 84ead441397..2a97fd9a78a 100644 --- a/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/Microsoft.Net.Http.nuspec.json.expected @@ -69,7 +69,28 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/Microsoft.Bcl", + "extracted_requirement": "1.1.10", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + }, + { + "purl": "pkg:nuget/Microsoft.Bcl.Build", + "extracted_requirement": "1.0.14", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Microsoft.Net.Http/2.2.29", "repository_download_url": "https://www.nuget.org/api/v2/package/Microsoft.Net.Http/2.2.29", "api_data_url": "https://api.nuget.org/v3/registration3/microsoft.net.http/2.2.29.json", diff --git a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected index e68f22e928c..0599c56877c 100644 --- a/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/bootstrap.nuspec.json.expected @@ -69,7 +69,18 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/jQuery", + "extracted_requirement": "1.9.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/bootstrap/4.0.0-alpha", "repository_download_url": "https://www.nuget.org/api/v2/package/bootstrap/4.0.0-alpha", "api_data_url": "https://api.nuget.org/v3/registration3/bootstrap/4.0.0-alpha.json", diff --git a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected index 31cafc8b5c7..eaf0a3fe40e 100644 --- a/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected +++ b/tests/packagedcode/data/nuget/jQuery.UI.Combined.nuspec.json.expected @@ -69,7 +69,18 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/jQuery", + "extracted_requirement": "1.6.4", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": {} + } + ], "repository_homepage_url": "https://www.nuget.org/packages/jQuery.UI.Combined/1.11.4", "repository_download_url": "https://www.nuget.org/api/v2/package/jQuery.UI.Combined/1.11.4", "api_data_url": "https://api.nuget.org/v3/registration3/jquery.ui.combined/1.11.4.json", diff --git a/tests/packagedcode/data/plugin/nuget-package-expected.json b/tests/packagedcode/data/plugin/nuget-package-expected.json index 5578fd30490..13c6c326a48 100644 --- a/tests/packagedcode/data/plugin/nuget-package-expected.json +++ b/tests/packagedcode/data/plugin/nuget-package-expected.json @@ -82,7 +82,178 @@ "purl": "pkg:nuget/Castle.Core@4.2.1" } ], - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/NETStandard.Library", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/NETStandard.Library?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Diagnostics.TraceSource?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Reflection.TypeExtensions?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Xml.XmlDocument?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Dynamic.Runtime?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Reflection", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Reflection?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Reflection.Emit", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Reflection.Emit?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.Collections.Specialized", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.Collections.Specialized?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.ComponentModel", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.ComponentModel?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + }, + "dependency_uid": "pkg:nuget/System.ComponentModel.TypeConverter?uuid=fixed-uid-done-for-testing-5642512d1758", + "for_package_uid": "pkg:nuget/Castle.Core@4.2.1?uuid=fixed-uid-done-for-testing-5642512d1758", + "datafile_path": "Castle.Core.nuspec", + "datasource_id": "nuget_nupsec" + } + ], "license_references": [ { "key": "apache-2.0", @@ -235,7 +406,138 @@ "source_packages": [], "file_references": [], "extra_data": {}, - "dependencies": [], + "dependencies": [ + { + "purl": "pkg:nuget/NETStandard.Library", + "extracted_requirement": "1.6.1", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Diagnostics.TraceSource", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.TypeExtensions", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Xml.XmlDocument", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Dynamic.Runtime", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Reflection.Emit", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.Collections.Specialized", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + }, + { + "purl": "pkg:nuget/System.ComponentModel.TypeConverter", + "extracted_requirement": "4.3.0", + "scope": "dependency", + "is_runtime": true, + "is_optional": false, + "is_resolved": false, + "resolved_package": {}, + "extra_data": { + "framework": ".NETStandard1.3", + "exclude": "Build,Analyzers" + } + } + ], "repository_homepage_url": "https://www.nuget.org/packages/Castle.Core/4.2.1", "repository_download_url": "https://www.nuget.org/api/v2/package/Castle.Core/4.2.1", "api_data_url": "https://api.nuget.org/v3/registration3/castle.core/4.2.1.json",