Skip to content

NuGet v3 populate dependencies #1778

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

o-l-a-v
Copy link
Contributor

@o-l-a-v o-l-a-v commented Jan 23, 2025

PR Summary

What

Populate dependencies on NuGet v3 search.

  • Seems to solve both populating dependencies and -IncludeDependencies for NuGet v3 repositories.
  • To my knowledge this works for PowerShell resources as they just have one dependencyGroup (?), but maybe not for NuGet packages, as they can have multiple due to targetting multiple/different dotnet frameworks.

Todo / not working: General NuGet packages support

NuGet Gallery packages can have multiple dependencyGroups where they are targeted to dotnet version. Example azure.core:

This PR makes PSResourceGet just spit out all dependencies in all dependency groups. For azure.core this results in:

Find-PSResource
PS > (Find-PSResource -Repository 'NuGetv3' -Name 'azure.core' -Debug).Dependencies
DEBUG: In FindPSResource::ProcessResourceNameParameterSet()
DEBUG: Filtering package name(s) on wildcards
DEBUG: In FindHelper::FindByResourceName()
DEBUG: Parameters passed in >>> Name: 'azure.core'; ResourceType: 'None'; VersionRange: ''; NuGetVersion: ''; VersionType: 'NoVersion'; Version: ''; Prerelease: 'False'; Tag: ''; Repository: 'NuGetv3'; IncludeDependencies 'False'
DEBUG: Searching through repository 'NuGetv3'
DEBUG: In FindHelper::SearchByNames()
DEBUG: No version specified, package name is specified
DEBUG: In V3ServerAPICalls::FindName()
DEBUG: In V3ServerAPICalls::FindNameHelper()
DEBUG: In V3ServerAPICalls::GetVersionedPackageEntriesFromRegistrationsResource()
DEBUG: In V3ServerAPICalls::GetResourcesFromServiceIndex()
DEBUG: In V3ServerAPICalls::HttpRequestCall()
DEBUG: Request url is 'https://api.nuget.org/v3/index.json'
DEBUG: In V3ServerAPICalls::FindRegistrationsBaseUrl()
DEBUG: In V3ServerAPICalls::GetVersionedResponsesFromRegistrationsResource()
DEBUG: In V3ServerAPICalls::HttpRequestCall()
DEBUG: Request url is 'https://api.nuget.org/v3/registration5-gz-semver2/azure.core/index.json'
DEBUG: In V3ServerAPICalls::GetMetadataElementsFromResponse()
DEBUG: In V3ServerAPICalls::GetMetadataElementFromItemsElement()
DEBUG: In V3ServerAPICalls::IsLatestVersionFirstForSearch()
DEBUG: 'azure.core' version parsed as '1.44.1'
DEBUG: Found package 'Azure.Core' version '1.44.1'
DEBUG: Package 'Azure.Core' returned from server
DEBUG: Package 'Azure.Core' was previously discovered and returned

Name                                              VersionRange
----                                              ------------
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Net.Http                                   [4.3.4, )
System.Numerics.Vectors                           [4.5.0, )
System.Runtime.InteropServices.RuntimeInformation [4.3.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Numerics.Vectors                           [4.5.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Numerics.Vectors                           [4.5.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )
Microsoft.Bcl.AsyncInterfaces                     [6.0.0, )
System.ClientModel                                [1.1.0, )
System.Diagnostics.DiagnosticSource               [6.0.1, )
System.Memory.Data                                [6.0.0, )
System.Numerics.Vectors                           [4.5.0, )
System.Text.Encodings.Web                         [6.0.0, )
System.Text.Json                                  [6.0.10, )
System.Threading.Tasks.Extensions                 [4.5.4, )

PS >
Save-PSResource
PS > > Save-PSResource -Repository 'NuGetv3' -TrustRepository -Name 'azure.core' -WhatIf
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Azure.Core', version: '1.44.1'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.NETCore.Platforms', version: '1.1.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.NETCore.Targets', version: '1.1.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.CompilerServices.Unsafe', version: '4.5.3'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Collections', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading.Tasks', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading.Tasks.Extensions', version: '4.5.4'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.Bcl.AsyncInterfaces', version: '6.0.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Debug', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Tracing', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Globalization', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Encoding', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Resources.ResourceManager', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Buffers', version: '4.5.1'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Tools', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Linq', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Emit.ILGeneration', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Emit.Lightweight', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.Contracts', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.TypeExtensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.ObjectModel', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Reflection.Emit', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Linq.Expressions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.Handles', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Net.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Encoding.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.RegularExpressions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.FileSystem.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.FileSystem', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.InteropServices', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Xml.ReaderWriter', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Xml.XDocument', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Collections.Concurrent', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.IO.Compression', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.Compression', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Diagnostics.DiagnosticSource', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Encoding', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.Security.Cryptography.Apple', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.Numerics', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Algorithms', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Globalization.Calendars', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Cng', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'runtime.native.System.Net.Http', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.Csp', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.OpenSsl', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Security.Cryptography.X509Certificates', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.WindowsRuntime', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'Microsoft.Win32.Primitives', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Globalization.Extensions', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Net.Http', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Runtime.InteropServices.RuntimeInformation', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Threading.Timer', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.AppContext', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Console', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.IO.Compression.ZipFile', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Net.Sockets', version: '4.3.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'NETStandard.Library', version: '1.6.1'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Numerics.Vectors', version: '4.5.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Memory', version: '4.5.4'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Encodings.Web', version: '4.7.2'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.ValueTuple', version: '4.5.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Text.Json', version: '4.6.0'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.Memory.Data', version: '1.0.2'".
What if: Performing the operation "Save-PSResource" on target "Package to save: 'System.ClientModel', version: '1.1.0'".

PS >

Motivation

Better support for NuGet v3 repositories. My specific reasons:

  • Resilience: pwsh.gallery by Justin Grote is a great NuGet v3 mirror of PowerShell Gallery, very useful when PowerShell Gallery goes down.

Tested how

Tested with pwsh.gallery:

# Register pwsh.gallery if not already present
if ((Get-PSResourceRepository).Where{$_.'Name' -eq 'pwsh.gallery'}.'Count' -le 0) {
    Register-PSResourceRepository -Name 'pwsh.gallery' `
        -Uri 'https://pwsh.gallery/index.json' -ApiVersion 'v3' -Priority 60
}

# Find a package we know will have dependencies
(Find-PSResource -Repository 'pwsh.gallery' -Name 'Az').'Dependencies'

# Check what Save-PSResource would do
Save-PSResource -Repository 'pwsh.gallery' -TrustRepository -Name 'Az' -WhatIf
Example NuGet v3 data for Az v13.1.0 from pwsh.gallery

https://pwsh.gallery/registration/az/index.json

{
  "@id": "https://pwsh.gallery/registration/az/13.1.0.json",
  "@type": "Package",
  "catalogEntry": {
    "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json",
    "@type": [
      "PackageDetails",
      "catalog:Permalink"
    ],
    "authors": "Microsoft Corporation",
    "dependencyGroups": [
      {
        "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any",
        "@type": "PackageDependencyGroup",
        "dependencies": [
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.accounts",
            "@type": "PackageDependency",
            "id": "Az.Accounts",
            "range": "[4.0.1, )"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.advisor",
            "@type": "PackageDependency",
            "id": "Az.Advisor",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.aks",
            "@type": "PackageDependency",
            "id": "Az.Aks",
            "range": "[6.1.0, 6.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.analysisservices",
            "@type": "PackageDependency",
            "id": "Az.AnalysisServices",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.apimanagement",
            "@type": "PackageDependency",
            "id": "Az.ApiManagement",
            "range": "[4.1.0, 4.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.app",
            "@type": "PackageDependency",
            "id": "Az.App",
            "range": "[2.0.1, 2.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.appconfiguration",
            "@type": "PackageDependency",
            "id": "Az.AppConfiguration",
            "range": "[1.4.0, 1.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.applicationinsights",
            "@type": "PackageDependency",
            "id": "Az.ApplicationInsights",
            "range": "[2.3.0, 2.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.arcresourcebridge",
            "@type": "PackageDependency",
            "id": "Az.ArcResourceBridge",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.attestation",
            "@type": "PackageDependency",
            "id": "Az.Attestation",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.automanage",
            "@type": "PackageDependency",
            "id": "Az.Automanage",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.automation",
            "@type": "PackageDependency",
            "id": "Az.Automation",
            "range": "[1.11.0, 1.11.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.batch",
            "@type": "PackageDependency",
            "id": "Az.Batch",
            "range": "[3.7.0, 3.7.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.billing",
            "@type": "PackageDependency",
            "id": "Az.Billing",
            "range": "[2.2.0, 2.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cdn",
            "@type": "PackageDependency",
            "id": "Az.Cdn",
            "range": "[3.3.0, 3.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cloudservice",
            "@type": "PackageDependency",
            "id": "Az.CloudService",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cognitiveservices",
            "@type": "PackageDependency",
            "id": "Az.CognitiveServices",
            "range": "[1.15.0, 1.15.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.compute",
            "@type": "PackageDependency",
            "id": "Az.Compute",
            "range": "[9.0.1, 9.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.confidentialledger",
            "@type": "PackageDependency",
            "id": "Az.ConfidentialLedger",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.connectedmachine",
            "@type": "PackageDependency",
            "id": "Az.ConnectedMachine",
            "range": "[1.1.1, 1.1.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.containerinstance",
            "@type": "PackageDependency",
            "id": "Az.ContainerInstance",
            "range": "[4.1.1, 4.1.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.containerregistry",
            "@type": "PackageDependency",
            "id": "Az.ContainerRegistry",
            "range": "[4.3.0, 4.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.cosmosdb",
            "@type": "PackageDependency",
            "id": "Az.CosmosDB",
            "range": "[1.16.0, 1.16.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.databoxedge",
            "@type": "PackageDependency",
            "id": "Az.DataBoxEdge",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.databricks",
            "@type": "PackageDependency",
            "id": "Az.Databricks",
            "range": "[1.10.0, 1.10.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datafactory",
            "@type": "PackageDependency",
            "id": "Az.DataFactory",
            "range": "[1.19.0, 1.19.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datalakeanalytics",
            "@type": "PackageDependency",
            "id": "Az.DataLakeAnalytics",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datalakestore",
            "@type": "PackageDependency",
            "id": "Az.DataLakeStore",
            "range": "[1.4.0, 1.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.dataprotection",
            "@type": "PackageDependency",
            "id": "Az.DataProtection",
            "range": "[2.6.0, 2.6.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.datashare",
            "@type": "PackageDependency",
            "id": "Az.DataShare",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.desktopvirtualization",
            "@type": "PackageDependency",
            "id": "Az.DesktopVirtualization",
            "range": "[5.4.1, 5.4.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.devcenter",
            "@type": "PackageDependency",
            "id": "Az.DevCenter",
            "range": "[2.0.1, 2.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.devtestlabs",
            "@type": "PackageDependency",
            "id": "Az.DevTestLabs",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.dns",
            "@type": "PackageDependency",
            "id": "Az.Dns",
            "range": "[1.3.1, 1.3.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.dnsresolver",
            "@type": "PackageDependency",
            "id": "Az.DnsResolver",
            "range": "[1.1.1, 1.1.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.elasticsan",
            "@type": "PackageDependency",
            "id": "Az.ElasticSan",
            "range": "[1.2.1, 1.2.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.eventgrid",
            "@type": "PackageDependency",
            "id": "Az.EventGrid",
            "range": "[2.2.0, 2.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.eventhub",
            "@type": "PackageDependency",
            "id": "Az.EventHub",
            "range": "[5.1.0, 5.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.frontdoor",
            "@type": "PackageDependency",
            "id": "Az.FrontDoor",
            "range": "[1.12.0, 1.12.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.functions",
            "@type": "PackageDependency",
            "id": "Az.Functions",
            "range": "[4.2.0, 4.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.hdinsight",
            "@type": "PackageDependency",
            "id": "Az.HDInsight",
            "range": "[6.3.1, 6.3.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.healthcareapis",
            "@type": "PackageDependency",
            "id": "Az.HealthcareApis",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.healthdataaiservices",
            "@type": "PackageDependency",
            "id": "Az.HealthDataAIServices",
            "range": "[1.0.0, 1.0.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.iothub",
            "@type": "PackageDependency",
            "id": "Az.IotHub",
            "range": "[2.8.0, 2.8.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.keyvault",
            "@type": "PackageDependency",
            "id": "Az.KeyVault",
            "range": "[6.3.1, 6.3.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.kusto",
            "@type": "PackageDependency",
            "id": "Az.Kusto",
            "range": "[2.4.0, 2.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.loadtesting",
            "@type": "PackageDependency",
            "id": "Az.LoadTesting",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.logicapp",
            "@type": "PackageDependency",
            "id": "Az.LogicApp",
            "range": "[1.6.0, 1.6.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.machinelearning",
            "@type": "PackageDependency",
            "id": "Az.MachineLearning",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.machinelearningservices",
            "@type": "PackageDependency",
            "id": "Az.MachineLearningServices",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.maintenance",
            "@type": "PackageDependency",
            "id": "Az.Maintenance",
            "range": "[1.5.0, 1.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.managedserviceidentity",
            "@type": "PackageDependency",
            "id": "Az.ManagedServiceIdentity",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.managedservices",
            "@type": "PackageDependency",
            "id": "Az.ManagedServices",
            "range": "[3.1.0, 3.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.marketplaceordering",
            "@type": "PackageDependency",
            "id": "Az.MarketplaceOrdering",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.media",
            "@type": "PackageDependency",
            "id": "Az.Media",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.migrate",
            "@type": "PackageDependency",
            "id": "Az.Migrate",
            "range": "[2.6.0, 2.6.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.monitor",
            "@type": "PackageDependency",
            "id": "Az.Monitor",
            "range": "[6.0.1, 6.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.mysql",
            "@type": "PackageDependency",
            "id": "Az.MySql",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.network",
            "@type": "PackageDependency",
            "id": "Az.Network",
            "range": "[7.12.0, 7.12.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.networkcloud",
            "@type": "PackageDependency",
            "id": "Az.NetworkCloud",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.nginx",
            "@type": "PackageDependency",
            "id": "Az.Nginx",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.notificationhubs",
            "@type": "PackageDependency",
            "id": "Az.NotificationHubs",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.operationalinsights",
            "@type": "PackageDependency",
            "id": "Az.OperationalInsights",
            "range": "[3.3.0, 3.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.oracle",
            "@type": "PackageDependency",
            "id": "Az.Oracle",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.policyinsights",
            "@type": "PackageDependency",
            "id": "Az.PolicyInsights",
            "range": "[1.7.0, 1.7.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.postgresql",
            "@type": "PackageDependency",
            "id": "Az.PostgreSql",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.powerbiembedded",
            "@type": "PackageDependency",
            "id": "Az.PowerBIEmbedded",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.privatedns",
            "@type": "PackageDependency",
            "id": "Az.PrivateDns",
            "range": "[1.2.0, 1.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.recoveryservices",
            "@type": "PackageDependency",
            "id": "Az.RecoveryServices",
            "range": "[7.4.0, 7.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.rediscache",
            "@type": "PackageDependency",
            "id": "Az.RedisCache",
            "range": "[1.11.0, 1.11.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.redisenterprisecache",
            "@type": "PackageDependency",
            "id": "Az.RedisEnterpriseCache",
            "range": "[1.2.1, 1.2.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.relay",
            "@type": "PackageDependency",
            "id": "Az.Relay",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.resourcegraph",
            "@type": "PackageDependency",
            "id": "Az.ResourceGraph",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.resourcemover",
            "@type": "PackageDependency",
            "id": "Az.ResourceMover",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.resources",
            "@type": "PackageDependency",
            "id": "Az.Resources",
            "range": "[7.8.0, 7.8.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.security",
            "@type": "PackageDependency",
            "id": "Az.Security",
            "range": "[1.8.0, 1.8.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.securityinsights",
            "@type": "PackageDependency",
            "id": "Az.SecurityInsights",
            "range": "[3.2.0, 3.2.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.servicebus",
            "@type": "PackageDependency",
            "id": "Az.ServiceBus",
            "range": "[4.1.0, 4.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.servicefabric",
            "@type": "PackageDependency",
            "id": "Az.ServiceFabric",
            "range": "[3.5.0, 3.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.signalr",
            "@type": "PackageDependency",
            "id": "Az.SignalR",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.sql",
            "@type": "PackageDependency",
            "id": "Az.Sql",
            "range": "[6.0.1, 6.0.1]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.sqlvirtualmachine",
            "@type": "PackageDependency",
            "id": "Az.SqlVirtualMachine",
            "range": "[2.4.0, 2.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.stackhci",
            "@type": "PackageDependency",
            "id": "Az.StackHCI",
            "range": "[2.5.0, 2.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.stackhcivm",
            "@type": "PackageDependency",
            "id": "Az.StackHCIVM",
            "range": "[1.1.0, 1.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.storage",
            "@type": "PackageDependency",
            "id": "Az.Storage",
            "range": "[8.1.0, 8.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.storagemover",
            "@type": "PackageDependency",
            "id": "Az.StorageMover",
            "range": "[1.5.0, 1.5.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.storagesync",
            "@type": "PackageDependency",
            "id": "Az.StorageSync",
            "range": "[2.4.0, 2.4.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.streamanalytics",
            "@type": "PackageDependency",
            "id": "Az.StreamAnalytics",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.support",
            "@type": "PackageDependency",
            "id": "Az.Support",
            "range": "[2.1.0, 2.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.synapse",
            "@type": "PackageDependency",
            "id": "Az.Synapse",
            "range": "[3.1.0, 3.1.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.trafficmanager",
            "@type": "PackageDependency",
            "id": "Az.TrafficManager",
            "range": "[1.3.0, 1.3.0]"
          },
          {
            "@id": "https://pwsh.gallery/virtualcatalog/data/30b47e3b-4235-4c1a-a11d-49cb159b0752.json#dependencygroup/any/az.websites",
            "@type": "PackageDependency",
            "id": "Az.Websites",
            "range": "[3.3.0, 3.3.0]"
          }
        ]
      }
    ],
    "description": "Microsoft Azure PowerShell - Cmdlets to manage resources in Azure. This module is compatible with PowerShell and Windows PowerShell.\nFor more information about the Az module, please visit the following: https://learn.microsoft.com/powershell/azure/",
    "iconUrl": "",
    "id": "Az",
    "language": "",
    "licenseUrl": "https://aka.ms/azps-license",
    "listed": true,
    "packageContent": "https://pwsh.gallery/flatcontainer/az/13.1.0/az.13.1.0.nupkg",
    "projectUrl": "https://github.com/Azure/azure-powershell",
    "published": "2025-01-14T03:25:18.0667647Z",
    "requireLicenseAcceptance": true,
    "summary": "",
    "tags": [
      "Azure",
      "ARM",
      "ResourceManager",
      "Linux",
      "AzureAutomationNotSupported",
      "PSModule"
    ],
    "version": "13.1.0"
  },
  "commitId": "4d7d502d-fe6a-4296-8d59-64bb13ce7cd8",
  "commitTimeStamp": "2025-01-14T03:25:20.3149938Z",
  "packageContent": "https://pwsh.gallery/flatcontainer/az/13.1.0/az.13.1.0.nupkg",
  "registration": "https://pwsh.gallery/registration/az/index.json"
}

PR Context

In my testing so far I believe this PR fixes:

PR Checklist

@o-l-a-v o-l-a-v changed the title WIP: V3 search populate dependencies #1169 V3 search populate dependencies #1169 Jan 23, 2025
@o-l-a-v o-l-a-v changed the title V3 search populate dependencies #1169 NuGet v3 populate dependencies Jan 23, 2025
@o-l-a-v
Copy link
Contributor Author

o-l-a-v commented Jan 23, 2025

I don't consider this WIP anymore. But maintainers who know more about the repositories used for testing might want to write some more tests?

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant