Пример #1
0
        private void updateSpecification(CreatePackagesInput input, SpecGroup group, IEnumerable <SpecGroup> groups)
        {
            var spec   = group.Spec;
            var local  = Solution.LocalDependencies();
            var nuspec = new NuspecDocument(spec.Filename);

            group
            .DetermineDependencies()
            .Each(dependency =>
            {
                var localDependency = local.Get(dependency);
                var constraint      = Solution.ConstraintFor(dependency);
                var version         = constraint.SpecFor(localDependency.Version);

                var nuspecDep = new NuspecDependency(dependency.Name, version);

                RippleLog.Info("Adding dependency: " + nuspecDep);

                nuspec.AddDependency(nuspecDep);
            });

            group
            .Projects
            .SelectMany(project => project.References)
            .Each(projectRef =>
            {
                var target = groups.FirstOrDefault(x => x.Projects.Contains(projectRef));
                if (target == null)
                {
                    return;
                }

                // TODO -- Do we need another setting for project references?
                var constraint = Solution.NuspecSettings.Float;
                var version    = constraint.SpecFor(new SemanticVersion(input.VersionFlag));

                var nuspecDep = new NuspecDependency(target.Spec.Name, version);

                RippleLog.Info("Adding dependency: " + nuspecDep);

                nuspec.AddDependency(nuspecDep);
            });



            nuspec.SaveChanges();
        }
Пример #2
0
        protected override bool Validate(NuspecDependency nuspecDependency, NuspecDependency packageDependency, out string message)
        {
            // No Max => major updates are allowed
            if (nuspecDependency.MaxVersion == null)
            {
                message = $"Package '{nuspecDependency.Name}' does not specify a upper version, which means every major update is allowed.";
                return(false);
            }

            // Version Range with inclusive max
            if (nuspecDependency.MaxVersion.Major > nuspecDependency.MinVersion.Major && nuspecDependency.MaxVersion.Inclusive)
            {
                message = $"Package dependency '{nuspecDependency.Name}' allows major updates.";
                return(false);
            }

            message = null;
            return(true);
        }
Пример #3
0
        protected override bool Validate(NuspecDependency nuspecDependency, NuspecDependency nuConfigPackage, out string message)
        {
            var specMin = nuspecDependency.MinVersion;
            var specMax = nuspecDependency.MaxVersion;

            if (specMax == null)
            {
                message = $"Cannot evaluate rule for '{nuspecDependency.Name}' if no max range is set";
                return(false);
            }

            if (specMin.Major != specMax.Major || (specMin.Major == specMax.Major && specMin.Minor != specMax.Minor && specMax.Inclusive))
            {
                message = $"Package dependency '{nuspecDependency.Name}' more than bug-fix dependencies ({nuspecDependency.Version})!";
                return(false);
            }

            message = string.Empty;
            return(true);
        }