Example #1
0
        /// <summary>
        /// Determines if a given version is better suited to the range than a current version.
        /// </summary>
        public bool IsBetter(NuGet.Versioning.NuGetVersion current, NuGet.Versioning.NuGetVersion considering)
        {
            if (ReferenceEquals(current, considering))
            {
                return(false);
            }

            if (ReferenceEquals(considering, null))
            {
                return(false);
            }

            if (!Satisfies(considering))
            {
                return(false);
            }

            if (ReferenceEquals(current, null))
            {
                return(true);
            }

            if (!HasReleaseLabel)
            {
                return(VersionComparer.Compare(current, considering, VersionComparison.VersionRelease) == -1);
            }

            // We don't want to compare the revision number as ReleaseLabel versions do not use it as main version
            if (!considering.IsPrerelease && current.IsPrerelease)
            {
                considering = considering.Append("-").RevisionToLabel();
            }

            return(VersionComparer.Compare(current.Prepend(ReleaseLabel), considering.Prepend(ReleaseLabel), VersionComparison.PunditVersion) == -1);
        }
Example #2
0
        private List <NugetDependency> GetDependencies()
        {
            NuGet.PackageReferenceFile    configFile = new NuGet.PackageReferenceFile(PackagesConfigPath);
            List <NuGet.PackageReference> packages   = new List <NuGet.PackageReference>(configFile.GetPackageReferences());

            var dependencies = new List <NugetDependency>();

            foreach (var packageRef in packages)
            {
                string componentName = packageRef.Id;
                var    version       = new NuGet.Versioning.NuGetVersion(packageRef.Version.Version, packageRef.Version.SpecialVersion, packageRef.Version.Metadata);
                var    versionRange  = new NuGet.Versioning.VersionRange(version, true, version, true);
                NuGet.Frameworks.NuGetFramework framework = null;
                if (packageRef.TargetFramework != null)
                {
                    try
                    {
                        framework = NuGet.Frameworks.NuGetFramework.Parse(packageRef.TargetFramework.FullName);
                    } catch (Exception e)
                    {
                        Console.WriteLine("Unable to parse framework: " + packageRef.TargetFramework.FullName);
                    }
                }


                var dep = new NugetDependency(componentName, versionRange, framework);
                dependencies.Add(dep);
            }

            return(dependencies);
        }
Example #3
0
        public PackageKey(string packageId, NuGet.Versioning.NuGetVersion version, string framework)
        {
            Guard.NotNull(packageId, nameof(packageId));

            PackageId = packageId;
            Version   = version;
            Framework = framework;
        }
Example #4
0
        protected IPackageSearchMetadata GeneratePackageSeachMetadata(Version version)
        {
            Mock <IPackageSearchMetadata> mockPackageSearchMetaData = new Mock <IPackageSearchMetadata>();

            NuGet.Versioning.NuGetVersion nuGetVersion = new NuGet.Versioning.NuGetVersion(version);
            mockPackageSearchMetaData.Setup(foo => foo.Identity).Returns(new NuGet.Packaging.Core.PackageIdentity("generatedPackedId", nuGetVersion));

            return(mockPackageSearchMetaData.Object);
        }
Example #5
0
 /// <summary>
 /// Parse user input for -Version switch.
 /// If Version is given as prerelease versions, automatically append -Prerelease
 /// </summary>
 void ParseUserInputForVersion()
 {
     if (!string.IsNullOrEmpty(Version))
     {
         nugetVersion = PowerShellCmdletsUtility.GetNuGetVersionFromString(Version);
         if (nugetVersion.IsPrerelease)
         {
             versionSpecifiedPrerelease = true;
         }
     }
     allowPrerelease = IncludePrerelease.IsPresent || versionSpecifiedPrerelease;
 }
 void ParseUserInputForVersion()
 {
     if (!string.IsNullOrEmpty(Version))
     {
         // If Version is prerelease, automatically allow prerelease (i.e. append -Prerelease switch).
         nugetVersion = PowerShellCmdletsUtility.GetNuGetVersionFromString(Version);
         if (nugetVersion.IsPrerelease)
         {
             versionSpecifiedPrerelease = true;
         }
     }
     allowPrerelease = IncludePrerelease.IsPresent || versionSpecifiedPrerelease;
 }
Example #7
0
        /// <summary>Return the version that best matches the range.</summary>
        public NuGet.Versioning.NuGetVersion FindBestMatch(IEnumerable <NuGet.Versioning.NuGetVersion> versions)
        {
            NuGet.Versioning.NuGetVersion current = null;
            if (versions == null)
            {
                return(null);
            }

            foreach (var version in versions)
            {
                if (IsBetter(current, version))
                {
                    current = version;
                }
            }

            return(current);
        }
        public PackageSet GetOrCreatePackageSet(PackageId package)
        {
            PackageSet set;

            if (packageSets.TryGetValue(package, out set))
            {
                return(set);
            }
            else
            {
                set                  = new PackageSet();
                set.PackageId        = package;
                set.Dependencies     = new HashSet <PackageId>();
                packageSets[package] = set;

                NuGet.Versioning.NuGetVersion version = null;
                NuGet.Versioning.NuGetVersion.TryParse(package.Version, out version);
                versions[package] = new VersionPair()
                {
                    rawVersion = package.Version, version = version
                };
                return(set);
            }
        }
        private static bool TryFindLatestVersionInFolder(string basePath, out string foundVersionFolder)
        {
            foundVersionFolder = null;

            try
            {
                NuGet.Versioning.NuGetVersion version = null;
                foreach (var versionPath in Directory.GetDirectories(basePath))
                {
                    var versionFolder = Path.GetFileName(versionPath);
                    if (NuGet.Versioning.NuGetVersion.TryParse(versionFolder, out var checkVersion) &&
                        (version == null || version < checkVersion))
                    {
                        foundVersionFolder = versionFolder;
                        version            = checkVersion;
                    }
                }
            }
            catch (IOException)
            {
            }

            return(!String.IsNullOrEmpty(foundVersionFolder));
        }
Example #10
0
        /// <summary>
        /// True if the given version falls into the floating range.
        /// </summary>
        public bool Satisfies(NuGet.Versioning.NuGetVersion version)
        {
            Guard.NotNull(version, nameof(version));

            if (HasReleaseLabel)
            {
                if (NuGetVersionRange.MinVersion.IsPrerelease)
                {
                    throw new NotSupportedException($"Versions with release labels not supported when using on-demand release labels, '{NuGetVersionRange.MinVersion}'");
                }

                if (NuGetVersionRange.MinVersion == NuGetVersionRange.MaxVersion)
                {
                    throw new NotSupportedException($"Versions with all numbers declares are not supported '{NuGetVersionRange.MinVersion}'");
                }

                if (ReleaseLabel != null && version.IsPrerelease && !ReleaseLabel.Equals(version.ReleaseLabels.First(), StringComparison.OrdinalIgnoreCase))
                {
                    return(false);
                }

                return(GetVersionRangeWithLabel(version.IsPrerelease).Satisfies(version, VersionComparer.Pundit));
            }

            NuGet.Versioning.VersionRange range;
            if (NuGetVersionRange.MaxVersion?.IsPrerelease == false && version.IsPrerelease)
            {
                range = NuGetVersionRange.ReplaceMaxVersion(NuGetVersionRange.MaxVersion.Append("-"));
            }
            else
            {
                range = NuGetVersionRange;
            }

            return(range.Satisfies(version, VersionComparer.VersionRelease));
        }
Example #11
0
 /// <summary>
 /// Parse package identity from path to .nupkg file, such as
 /// https://az320820.vo.msecnd.net/packages/microsoft.aspnet.mvc.4.0.20505.nupkg
 /// </summary>
 PackageIdentity ParsePackageIdentityFromNupkgPath(string path, string divider)
 {
     if (!string.IsNullOrEmpty(path))
     {
         string lastPart = path.Split(new [] { divider }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault();
         lastPart = lastPart.Replace(PackagingCoreConstants.NupkgExtension, "");
         string [] parts             = lastPart.Split(new [] { "." }, StringSplitOptions.RemoveEmptyEntries);
         var       builderForId      = new StringBuilder();
         var       builderForVersion = new StringBuilder();
         foreach (string s in parts)
         {
             int  n;
             bool isNumeric = int.TryParse(s, out n);
             // Take pre-release versions such as EntityFramework.6.1.3-beta1 into account.
             if ((!isNumeric || string.IsNullOrEmpty(builderForId.ToString())) &&
                 string.IsNullOrEmpty(builderForVersion.ToString()))
             {
                 builderForId.Append(s);
                 builderForId.Append(".");
             }
             else
             {
                 builderForVersion.Append(s);
                 builderForVersion.Append(".");
             }
         }
         NuGetVersion nVersion = PowerShellCmdletsUtility.GetNuGetVersionFromString(builderForVersion.ToString().TrimEnd('.'));
         // Set _allowPrerelease to true if nVersion is prerelease version.
         if (nVersion != null && nVersion.IsPrerelease)
         {
             allowPrerelease = true;
         }
         return(new PackageIdentity(builderForId.ToString().TrimEnd('.'), nVersion));
     }
     return(null);
 }
Example #12
0
 public VersionInfo(NuGet.Versioning.NuGetVersion version, System.Nullable <long> downloadCount)
 {
 }
Example #13
0
 public VersionInfo(NuGet.Versioning.NuGetVersion version)
 {
 }
Example #14
0
 public SourcePackageDependencyInfo(string id, NuGet.Versioning.NuGetVersion version, System.Collections.Generic.IEnumerable <NuGet.Packaging.Core.PackageDependency> dependencies, bool listed, NuGet.Protocol.Core.Types.SourceRepository source, System.Uri downloadUri, string packageHash) : base(default(string), default(NuGet.Versioning.NuGetVersion))
 {
 }
 public LibraryIdentity(string name, NuGet.Versioning.NuGetVersion version, NuGet.LibraryModel.LibraryType type)
 {
 }
Example #16
0
 public static NuGet.Repositories.LocalPackageSourceInfo GetPackage(System.Collections.Generic.IReadOnlyList <NuGet.Repositories.NuGetv3LocalRepository> repositories, string id, NuGet.Versioning.NuGetVersion version)
 {
     throw null;
 }
Example #17
0
 public NuGet.Repositories.LocalPackageInfo FindPackage(string packageId, NuGet.Versioning.NuGetVersion version)
 {
     throw null;
 }
Example #18
0
 public VersionRangeBase(NuGet.Versioning.NuGetVersion minVersion = null, bool includeMinVersion = true, NuGet.Versioning.NuGetVersion maxVersion = null, bool includeMaxVersion = false)
 {
 }
Example #19
0
 public VersionRange(NuGet.Versioning.NuGetVersion minVersion = null, bool includeMinVersion = true, NuGet.Versioning.NuGetVersion maxVersion = null, bool includeMaxVersion = false, NuGet.Versioning.FloatRange floatRange = null, string originalString = null) : base(default(NuGet.Versioning.NuGetVersion), default(bool), default(NuGet.Versioning.NuGetVersion), default(bool))
 {
 }
Example #20
0
 public bool Satisfies(NuGet.Versioning.NuGetVersion version, NuGet.Versioning.VersionComparison versionComparison)
 {
     throw null;
 }
Example #21
0
 public bool Satisfies(NuGet.Versioning.NuGetVersion version, NuGet.Versioning.IVersionComparer comparer)
 {
     throw null;
 }
Example #22
0
 public bool Satisfies(NuGet.Versioning.NuGetVersion version)
 {
     throw null;
 }
Example #23
0
 public VersionInfo(NuGet.Versioning.NuGetVersion version, string downloadCount)
 {
 }
Example #24
0
 public LocalPackageInfo(string packageId, NuGet.Versioning.NuGetVersion version, string path, string manifestPath, string zipPath)
 {
 }
Example #25
0
 public NuGetVersion(NuGet.Versioning.NuGetVersion version) : base(default(NuGet.Versioning.SemanticVersion))
 {
 }
Example #26
0
 public bool IsBetter(NuGet.Versioning.NuGetVersion current, NuGet.Versioning.NuGetVersion considering)
 {
     throw null;
 }
Example #27
0
        private PackageInfo BuildPackageInfo(FeedType type, string rootPath, string id, NuGet.Versioning.NuGetVersion version, List <ProjectInfo> projects)
        {
            LocalPackageInfo localPackageInfo;

            switch (type)
            {
            case FeedType.FileSystemV2:
                localPackageInfo = LocalFolderUtility.GetPackageV2(rootPath, id, version, _logger);
                if (localPackageInfo == null)
                {
                    return(null);
                }
                return(new PackageInfo
                {
                    ProjectList = projects,
                    LocalPackageInfo = localPackageInfo
                });

            case FeedType.FileSystemV3:
                localPackageInfo = LocalFolderUtility.GetPackageV3(rootPath, id, version, _logger);
                if (localPackageInfo == null)
                {
                    return(null);
                }
                return
                    (new PackageInfo
                {
                    ProjectList = projects,
                    LocalPackageInfo = localPackageInfo
                });

            default:
            {
                Debug.WriteLine($"Unknown Type:{type}");
                return(null);
            }
            }
        }
Example #28
0
 public NuGet.ProjectModel.LockFileLibrary GetLibrary(string name, NuGet.Versioning.NuGetVersion version)
 {
     throw null;
 }
Example #29
0
 public PackageKeyDiff(DiffType diffType, string packageId, NuGet.Versioning.NuGetVersion version, string framework, RepositoryType packageType)
     : base(packageId, version, framework)
 {
     DiffType    = diffType;
     PackageType = packageType;
 }
Example #30
0
 public string GetLockFilePath(string packageId, NuGet.Versioning.NuGetVersion version, NuGet.Frameworks.NuGetFramework framework)
 {
     throw null;
 }