Uploaded image for project: 'Artifactory Binary Repository'
  1. Artifactory Binary Repository
  2. RTFACT-20469

Support v3 endpoint to work with "paket" dependency manager

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Normal
    • Resolution: Unresolved
    • Affects Version/s: 6.11.3, 6.13.1
    • Fix Version/s: None
    • Component/s: NuGet
    • Labels:
      None

      Description

      Problem statement: Unable to resolve the NuGet packages via Artifactory by using Nuget v3 endpoint to work with "paket" dependency manager. 

      Steps to reproduce the issue :

      1. Downloaded the paket tool from https://github.com/fsprojects/Paket/releases.
      2.Created a Nuget repository (local,remote and virtual).
      3.Add the source URL and the dependencies in the paket.dependencies file
      4.Run paket.install to analyze the dependency and create packet.lock file.
      5.Run packet.update to update all the packages.

      I tried to replicate the scenario with the below commands and example.

      Paket version 5.227.0

      paket.dependencies file

      source http://localhost:8081/artifactory/api/nuget/v3/nuget

      // NuGet packages
      nuget Microsoft.NETCore.App == 2.2.7

      Command :

      >paket.exe install

      Paket version 5.227.0

      Skipping resolver for group Main since it is already up-to-date

      paket.lock is already up-to-date

      Installing into projects:

       - Creating model and downloading packages.

      Performance:

       - Runtime: 1 second

      Paket failed with

      -> The NuGet source http://localhost:8081/artifactory/api/nuget/nuget for packag

      e Microsoft.NETCore.DotNetHostPolicy was not found in the paket.dependencies fil

      e with sources [NuGetV3

      {Url = "http://localhost:8081/artifactory/api/nuget/v3/n uget-remote";              Authentication = Paket.NetUtils+AuthProviderModule+ofFunction@43;}

      ]

      >paket.exe update

      Paket version 5.227.0

      Resolving packages for group Main:

      Performance:

       - Resolver: 565 milliseconds (1 runs)

          - Runtime: 103 milliseconds

          - Blocked (retrieving package versions): 462 milliseconds (1 times)

       - Average Request Time: 121 milliseconds

       - Number of Requests: 1

       - Runtime: 1 second

      Paket failed with

      -> Unable to retrieve package versions for 'Microsoft.NETCore.App'

         -- CLOSED –

       

         -- OPEN ----

            Microsoft.NETCore.App == 2.2.7 (from C:\Users\test\Downloads\project-e

      xamples-master\project-examples-master\nuget-example\MyLogger\MyLogger\paket.dep

      endencies)

      -> could not find an AllVersionsAPI endpoint for http://localhost:8081/artifacto

      ry/api/nuget/v3/nuget-remote

      Workaround: If we use the normal v2 endpoint we will be able to resolve the Nuget packages.

      paket.dependencies file

      source http://localhost:8081/artifactory/api/nuget/nuget

      // NuGet packages
      nuget Microsoft.NETCore.App == 2.2.7

      Command :

      >paket.exe install

      Paket version 5.227.0

      Resolving packages for group Main:

      At least one 'next' link (index 0) returned a empty result (noticed on 'http://l

      ocalhost:8081/artifactory/api/nuget/nuget/FindPackagesById()?semVerLevel=2.0.0&i

      d='Microsoft.NETCore.App'&$orderby=Published desc'): ['http://localhost:8081/art

      ifactory/api/nuget/nuget/FindPackagesById()?semVerLevel=2.0.0&id='Microsoft.NETC

      ore.App'&$orderby=Published desc&$skip=80']

       - Microsoft.NETCore.App 2.2.7

       - Microsoft.NETCore.DotNetHostPolicy 3.0.0

       - Microsoft.NETCore.Platforms 3.0.0

       - NETStandard.Library 2.0.3

       - Microsoft.NETCore.Targets 3.0.0

       - Microsoft.NETCore.DotNetHostResolver 3.0.0

       - Microsoft.NETCore.DotNetAppHost 3.0.0

      Locked version resolution written to C:\Users\test\Downloads\project-example

      s-master\project-examples-master\nuget-example\MyLogger\MyLogger\paket.lock

      Installing into projects:

       - Creating model and downloading packages.

      Downloading Microsoft.NETCore.Platforms 3.0.0

      Downloading Microsoft.NETCore.App 2.2.7

      Downloading Microsoft.NETCore.DotNetHostPolicy 3.0.0

      Downloading Microsoft.NETCore.Targets 3.0.0

      Download of Microsoft.NETCore.Platforms 3.0.0 done in 64 milliseconds. (3932 kbi

      t/s, 0 MB)

      Download of Microsoft.NETCore.Targets 3.0.0 done in 2 seconds. (106 kbit/s, 0 MB

      )

      Download of Microsoft.NETCore.App 2.2.7 done in 2 seconds. (12452 kbit/s, 3 MB)

      Download of Microsoft.NETCore.DotNetHostPolicy 3.0.0 done in 2 seconds. (80 kbit

      /s, 0 MB)

      Downloading Microsoft.NETCore.DotNetAppHost 3.0.0

      Downloading Microsoft.NETCore.DotNetHostResolver 3.0.0

      Download of Microsoft.NETCore.DotNetAppHost 3.0.0 done in 1 second. (138 kbit/s,

       0 MB)

      Download of Microsoft.NETCore.DotNetHostResolver 3.0.0 done in 2 seconds. (97 kb

      it/s, 0 MB)

       - Installing for projects

      Garbage collecting Antlr

      Garbage collecting Microsoft.CSharp

      Garbage collecting System.Diagnostics.Debug

      Garbage collecting System.Diagnostics.DiagnosticSource

      Garbage collecting System.Diagnostics.Tools

      Garbage collecting System.Diagnostics.Tracing

      Garbage collecting System.Dynamic.Runtime

      Garbage collecting System.Globalization

      Garbage collecting System.Globalization.Calendars

      Garbage collecting System.Globalization.Extensions

      Garbage collecting System.IO

      Garbage collecting System.IO.Compression

      Garbage collecting System.IO.Compression.ZipFile

      Garbage collecting System.IO.FileSystem

      Garbage collecting System.IO.FileSystem.Primitives

      Garbage collecting System.Linq

      Garbage collecting System.ObjectModel

      Garbage collecting System.Reflection

      Garbage collecting System.Reflection.Emit

      Garbage collecting System.Reflection.Emit.ILGeneration

      Garbage collecting System.Security.Cryptography.Algorithms

      Garbage collecting System.Security.Cryptography.Cng

      Performance:

       - Resolver: 14 seconds (1 runs)

          - Runtime: 372 milliseconds

          - Blocked (retrieving package details): 5 seconds (4 times)

          - Blocked (retrieving package versions): 9 seconds (4 times)

          - Not Blocked (retrieving package details): 3 times

       - Disk IO: 1 second

       - Average Download Time: 861 milliseconds

       - Number of downloads: 6

       - Average Request Time: 259 milliseconds

       - Number of Requests: 55

       - Runtime: 21 seconds

      Paket omitted 6 warnings similar to the ones above. You can see them in verbose

      mode.

      >paket.exe update
      Paket version 5.227.0
      Resolving packages for group Main:
      At least one 'next' link (index 0) returned a empty result (noticed on 'http://l
      ocalhost:8081/artifactory/api/nuget/nuget/FindPackagesById()?semVerLevel=2.0.0&i
      d='Microsoft.NETCore.App'&$orderby=Published desc'): ['http://localhost:8081/art
      ifactory/api/nuget/nuget/FindPackagesById()?semVerLevel=2.0.0&id='Microsoft.NETC
      ore.App'&$orderby=Published desc&$skip=80']

      • Microsoft.NETCore.App is locked to 2.2.7
      • Microsoft.NETCore.DotNetHostPolicy 3.0.0
      • Microsoft.NETCore.Platforms 3.0.0
      • NETStandard.Library 2.0.3
      • Microsoft.NETCore.Targets 3.0.0
      • Microsoft.NETCore.DotNetHostResolver 3.0.0
      • Microsoft.NETCore.DotNetAppHost 3.0.0
        paket.lock is already up-to-date
        Installing into projects:
      • Creating model and downloading packages.
      • Installing for projects
        Performance:
      • Resolver: 9 seconds (1 runs)
      • Runtime: 427 milliseconds
      • Blocked (retrieving package versions): 8 seconds (5 times)
      • Blocked (retrieving package details): 357 milliseconds (2 times)
      • Not Blocked (retrieving package details): 5 times
      • Not Blocked (retrieving package versions): 2 times
      • Disk IO: 15 milliseconds
      • Average Request Time: 630 milliseconds
      • Number of Requests: 14
      • Runtime: 10 seconds
        Paket omitted 6 warnings similar to the ones above. You can see them in verbose
        mode.

       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jayanths Jayanth Suresh
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: