From 8532b81638c930175e041a2aab5a068e12259a3d Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Fri, 19 Jul 2024 10:21:25 +0200 Subject: [PATCH] WIP package resolution --- dotnet-tools.json | 67 +++++++++++-------- src/isnd/Data/Catalog/PackageDetails.cs | 20 ++++-- src/isnd/Data/Packages/Dependency.cs | 6 +- .../Data/Packages/PackageDependencyGroup.cs | 12 ++-- src/isnd/Views/Home/Index.cshtml | 4 +- 5 files changed, 66 insertions(+), 43 deletions(-) diff --git a/dotnet-tools.json b/dotnet-tools.json index 4c6f94a..36ef729 100644 --- a/dotnet-tools.json +++ b/dotnet-tools.json @@ -1,30 +1,41 @@ { - "version": 1, - "isRoot": true, - "tools": { - "codecov.tool": { - "version": "1.13.0", - "commands": [ - "codecov" - ] - }, - "gitversion.tool": { - "version": "5.10.1", - "commands": [ - "dotnet-gitversion" - ] - }, - "gitreleasemanager.tool": { - "version": "0.13.0", - "commands": [ - "dotnet-gitreleasemanager" - ] - }, - "Wyam2.Tool": { - "version": "3.0.0-rc3", - "commands": [ - "wyam2" - ] - } + "version": 1, + "isRoot": true, + "tools": { + "codecov.tool": { + "version": "1.13.0", + "commands": [ + "codecov" + ], + "rollForward": false + }, + "gitversion.tool": { + "version": "5.10.1", + "commands": [ + "dotnet-gitversion" + ], + "rollForward": false + }, + "gitreleasemanager.tool": { + "version": "0.13.0", + "commands": [ + "dotnet-gitreleasemanager" + ], + "rollForward": false + }, + "Wyam2.Tool": { + "version": "3.0.0-rc3", + "commands": [ + "wyam2" + ], + "rollForward": false + }, + "dotnet-ef": { + "version": "8.0.7", + "commands": [ + "dotnet-ef" + ], + "rollForward": false } -} + } +} \ No newline at end of file diff --git a/src/isnd/Data/Catalog/PackageDetails.cs b/src/isnd/Data/Catalog/PackageDetails.cs index 0bb57fd..db78671 100644 --- a/src/isnd/Data/Catalog/PackageDetails.cs +++ b/src/isnd/Data/Catalog/PackageDetails.cs @@ -35,10 +35,8 @@ namespace isnd.Data.Catalog IsListed = !pkg.IsDeleted && pkg.Package.Public; if (pkg.DependencyGroups!=null) { - if (pkg.DependencyGroups.Count>0) - { - DependencySets = pkg.DependencyGroups.ToNugetDepSet(); - } + DependencySets = pkg.DependencyGroups.ToDepSetInfo(); + } PackageDetailsUrl = new Uri(this.id); @@ -212,7 +210,9 @@ namespace isnd.Data.Catalog public LicenseMetadata LicenseMetadata { get; set; } - public IEnumerable DependencySets {get; set;} + public IEnumerable DependencySets {get; set;} + + IEnumerable IPackageSearchMetadata.DependencySets => throw new NotImplementedException(); public Task GetDeprecationMetadataAsync() { @@ -224,4 +224,14 @@ namespace isnd.Data.Catalog throw new NotImplementedException(); } } + + public class PackageDependencyGroupInfo + { + private PackageDependencyGroup group; + + public PackageDependencyGroupInfo(PackageDependencyGroup group) + { + this.group = group; + } + } } \ No newline at end of file diff --git a/src/isnd/Data/Packages/Dependency.cs b/src/isnd/Data/Packages/Dependency.cs index 3763fb9..cbc7328 100644 --- a/src/isnd/Data/Packages/Dependency.cs +++ b/src/isnd/Data/Packages/Dependency.cs @@ -8,12 +8,15 @@ namespace isnd.Data { public class Dependency { + [JsonIgnore] [Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)] public string Id { get;set;} + /// /// Dependency Package Identifier /// /// + [JsonProperty("id")] public string PackageId { get;set;} /// @@ -28,8 +31,9 @@ namespace isnd.Data [JsonIgnore] public virtual PackageDependencyGroup Group{ get; set; } + // TODO Version Range + [JsonProperty("range")] public string Version { get; set; } - public string Exclude { get; set; } } } \ No newline at end of file diff --git a/src/isnd/Data/Packages/PackageDependencyGroup.cs b/src/isnd/Data/Packages/PackageDependencyGroup.cs index ff82a1e..ba412bc 100644 --- a/src/isnd/Data/Packages/PackageDependencyGroup.cs +++ b/src/isnd/Data/Packages/PackageDependencyGroup.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; +using isnd.Data.Catalog; using Microsoft.DotNet.Scaffolding.Shared.ProjectModel; using Microsoft.Identity.Client; using Newtonsoft.Json; @@ -15,12 +16,9 @@ namespace isnd.Data { static class Helpers { - public static NuGet.Packaging.PackageDependencyGroup[] ToNugetDepSet(this IEnumerable groups) + public static PackageDependencyGroupInfo[] ToDepSetInfo(this IEnumerable groups) { - return groups.Select(group => new NuGet.Packaging.PackageDependencyGroup( - new NuGetFramework(group.TargetFramework), - group.Dependencies.Select(dep => new PackageDependency(dep.PackageId)) - )).ToArray(); + return groups.Select(group => new PackageDependencyGroupInfo(group)).ToArray(); } } public class PackageDependencyGroup @@ -30,7 +28,7 @@ namespace isnd.Data public string Id { get ; set;} [Required] - [JsonIgnore] + [JsonProperty("id")] public string PackageId { get ; set;} [Required] @@ -41,7 +39,7 @@ namespace isnd.Data [Required] public string TargetFramework { get; set; } - [JsonProperty("dependencies")] + [JsonIgnore] [ForeignKey("DependencyGroupId")] public virtual List Dependencies { get; set; } diff --git a/src/isnd/Views/Home/Index.cshtml b/src/isnd/Views/Home/Index.cshtml index b3f4d3c..8d710a7 100644 --- a/src/isnd/Views/Home/Index.cshtml +++ b/src/isnd/Views/Home/Index.cshtml @@ -3,6 +3,6 @@ ViewData["Title"] = "Home Page"; }
-

Wasa!

-

hum.

+

Bom

+

'Key!

\ No newline at end of file