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

Nuget Prerelease versions not in root directory behave unexpectedly

    Details

    • Type: Bug
    • Status: Pending QA
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: 6.12.2, 6.13.1
    • Fix Version/s: None
    • Component/s: NuGet, Versioning
    • Labels:
      None

      Description

      If you deploy a prerelease nuget package to a directory within a local nuget repository, the last modified package will be the only one able to be retrieved.

      REPRODUCE

      Start latest Artifactory version with a local nuget repository.

      Download a nupkg file.  Unzip, change the nuspec to refelect a prerelease version and zip back up.  Do this for 3 or 4 packages, all with different versions.

      EntityFramework 6.3.1-rc.4.sha2F643EC6
      EntityFramework 6.3.0-rc.6.sha2F643EC6
      EntityFramework 6.3.0-rc.5.sha2F643EC6
      EntityFramework 6.3.0-rc.4.shaFEEDE117

       

      Lets say we have the four packages above, all different and all prerelease versions.  If you deploy all these packages to the root directory, they resolve without issue.

      Deploy 1 to the /Entity/ folder within the repository.  You can then install with the below command:

      nuget install EntityFramework -Version 6.3.0-rc.4.shaFEEDE117 -Source Artifactory

      Deploy the next package to the same endpoint.  You can use intsall and install this specific version without issue.  If you clear the cache and try to install the previous package, it will fail with a 404.

      This will continue for all prerelease versions moving forward.  Once you have all 4 packages uploaded and only the latest one deployed able to be installed.  You can then Move within the Artifactory UI the first deploy package to the root directory.  

      Now all packages within the directories are not installable, but you will now be able to install the recently moved package.  If you move this package back to the same folder, you will still be able to install just this package, none of the other ones.

       

      The weird behavior is that the metadata for each package is correct.  If you navigate to http://artifactory.com/artifactory/api/nuget/nuget-local/Packages()

      You will see the metadata is correct for all artifacts uploaded.  You can then copy the src URL for each package and will see a 404 for the 3 oldest packages and can successfully download the package we moved.

       

      What is going on with this metadata?  A package within a folder should not change how we handle the package, as the metadata does not change.  You can also run a nuget list and all packages are able to be seen.  This does not reproduce in 6.9.2.

        Attachments

          Activity

            People

            • Assignee:
              barh Bar Haim
              Reporter:
              scottm Scott Mosher
            • Votes:
              7 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated: