public void should_not_include_build_in_comparison() { var v1 = Semver.Parse("1.2.3+fuu"); var v2 = Semver.Parse("1.2.3+bar"); var compared = v1.CompareTo(v2); Assert.Equal(0, compared); }
private void ScanDirectory(DirectoryInfo directory, List <Project> projects, Semver currentVersion) { var versionFile = directory.GetFiles("version.txt").SingleOrDefault(); if (versionFile != null) { Program.VerboseOut(Verbose.Scanning, "Found version.txt at {0}", directory.FullName); var parser = new VersionFileParser(versionFile); var parsedVersion = parser.GetVersion(); Program.VerboseOut(Verbose.Scanning, "Parsed version: {0}", parsedVersion); if (Program.RootDirectory.FullName.Equals(directory.FullName) && currentVersion == Semver.NoVersion) { Program.RootVersion = parsedVersion; Program.VerboseOut(Verbose.Scanning, "Setting root version: {0}", parsedVersion); } currentVersion = parsedVersion; } var nuspecFile = directory.GetFiles("*.nuspec") .FirstOrDefault(file => file.Name.StartsWith(directory.Name)); var projFile = directory.GetFiles("*.csproj") .FirstOrDefault(file => file.Name.StartsWith(directory.Name)); if (projFile != null || nuspecFile != null) { // We say that this is a project if it has either a projfile or a nuspec file. var projName = directory.Name; Program.VerboseOut(Verbose.Scanning, "Found project {0} at {1}", projName, directory.FullName); var project = new Project { Name = projName, Path = directory.FullName, Version = currentVersion, Nuspec = (nuspecFile != null) ? nuspecFile.FullName : null }; projects.Add(project); } if (_scan) { var directories = directory.GetDirectories(); foreach (var directoryInfo in directories) { try { ScanDirectory(directoryInfo, projects, currentVersion); } catch (PathTooLongException) { Program.VerboseOut(Verbose.Warning, "Skipping subdir {0}; path too long", directoryInfo.FullName); } } } }
public Project[] Scan(Semver version, bool scan = false) { _scan = scan; var projects = new List <Project>(); ScanDirectory(Program.RootDirectory, projects, version); return(projects.ToArray()); }
public void should_return_1_when_args_major_nr_is_less_than_own_major_nr_other_things_equal() { var v1 = Semver.Parse("2.1.0"); var v2 = Semver.Parse("1.1.0"); var compared = v1.CompareTo(v2); Assert.Equal(1, compared); }
public void should_return_minus_1_when_own_prerelease_has_less_fields_than_other() { var v1 = Semver.Parse("1.2.3-pre"); var v2 = Semver.Parse("1.2.3-pre.1"); var compared = v1.CompareTo(v2); Assert.Equal(-1, compared); }
public void should_return_minus_1_when_self_is_prerelease() { var v1 = Semver.Parse("1.2.3-pre"); var v2 = Semver.Parse("1.2.3"); var compared = v1.CompareTo(v2); Assert.Equal(-1, compared); }
public void should_return_minus_1_when_own_numeric_prerelease_is_less_than_other() { var v1 = Semver.Parse("1.2.3-1"); var v2 = Semver.Parse("1.2.3-2"); var compared = v1.CompareTo(v2); Assert.Equal(-1, compared); }
public void should_return_minus_1_when_own_prerelease_is_numeric_and_other_is_alphanum() { var v1 = Semver.Parse("1.2.3-1"); var v2 = Semver.Parse("1.2.3-alpha"); var compared = v1.CompareTo(v2); Assert.Equal(-1, compared); }
public void should_return_0_when_versions_are_equal() { var v1 = Semver.Parse("1.2.3"); var v2 = Semver.Parse("1.2.3"); var compared = v1.CompareTo(v2); Assert.Equal(0, compared); }
public void should_return_minus_1_when_args_minor_nr_is_greater_than_own_minor_nr_other_things_equal() { var v1 = Semver.Parse("1.0.0"); var v2 = Semver.Parse("1.1.0"); var compared = v1.CompareTo(v2); Assert.Equal(-1, compared); }
public void should_parse_a_version_with_both_prerelease_and_build_info() { var semver = Semver.Parse("1.2.3-beta+master"); Assert.Equal(1, semver.Major); Assert.Equal(2, semver.Minor); Assert.Equal(3, semver.Patch); Assert.Equal("beta", semver.PreRelease); Assert.Equal("master", semver.Build); }
public override int GetHashCode() { int hash = 1; if (semver_ != null) { hash ^= Semver.GetHashCode(); } if (custom_ != null) { hash ^= Custom.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
public static void HandleSetAction(setArgs args) { RootVersion = args.version.Length > 0 ? Semver.Parse(args.version) : Semver.NoVersion; var hasBuild = args.build.Length > 0; var scanner = new ProjectScanner(); var projects = scanner.Scan(RootVersion, args.scan); VerboseOut(Verbose.Scanning, "Scan done; found {0} projects", projects.Length); if (args.@override && RootVersion == Semver.NoVersion) { VerboseOut(Verbose.Warning, "No root version set; all versions will be overridden with {0}", Semver.NoVersion); } if (hasBuild) { RootVersion = RootVersion.OverrideBuild(args.build); } if (args.tcbuildno) { Console.Out.WriteLine("##teamcity[buildNumber '{0}']", RootVersion); } foreach (var project in projects) { VerboseOut(Verbose.Version, "Versioning project {0}", project.Name); if (args.@override && RootVersion != Semver.NoVersion) { VerboseOut(Verbose.Version, "Overriding version {0} => {1}", project.Version, RootVersion); project.Version = RootVersion; } if (hasBuild) { VerboseOut(Verbose.Version, "Overriding build {0} => {1}", project.Version.Build, args.build); project.Version = project.Version.OverrideBuild(args.build); } AssemblyVersionSetter.SetVersion(project.AssemlyInfo, project.Version); NuspecVersionSetter.SetVersion(project.Nuspec, project.Version); } }
public void MergeFrom(EstafetteVersion other) { if (other == null) { return; } if (other.semver_ != null) { if (semver_ == null) { Semver = new global::Estafette.Ci.Manifest.V1.EstafetteSemverVersion(); } Semver.MergeFrom(other.Semver); } if (other.custom_ != null) { if (custom_ == null) { Custom = new global::Estafette.Ci.Manifest.V1.EstafetteCustomVersion(); } Custom.MergeFrom(other.Custom); } _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); }
/// <summary> /// Integration dependency info. /// </summary> /// <param name="runningVersion">Running version of the dependency.</param> /// <param name="latestAvailableVersion">Latest available version of the dependency.</param> public DependencyInfo(Semver runningVersion, Semver latestAvailableVersion) { RunningVersion = runningVersion ?? throw new ArgumentNullException(nameof(runningVersion)); LatestAvailableVersion = latestAvailableVersion ?? throw new ArgumentNullException(nameof(latestAvailableVersion)); }
public void should_return_false_when_args_is_not_a_valid_semver_version() { Assert.False(Semver.IsValidSemver("foobar")); }
public void should_return_true_when_arg_is_a_valid_semver_version() { Assert.True(Semver.IsValidSemver("1.2.3-pre+build")); }
public void should_trim_starting_whitespace() { var semver = Semver.Parse(" 1.0.0"); Assert.Equal(semver, new Semver(1, 0, 0)); }
public void should_return_false_when_other_object_is_not_a_semver() { var v1 = Semver.Parse("1.2.4-beta"); Assert.False(v1.Equals(new object())); }
public void should_throw_a_format_exception_when_the_input_string_is_an_invalid_semver() { Assert.Throws <FormatException>(() => Semver.Parse("1.2-foo")); }
public void should_display_full_version_when_called_with_F_argument() { var semver = new Semver(1, 2, 3, "pre", "build"); Assert.Equal("1.2.3-pre+build", semver.ToString("F")); }
public Semver GetVersion() { var line = File.ReadLines(_file.FullName).First(l => !string.IsNullOrWhiteSpace(l)); return(Semver.Parse(line)); }
public void should_throw_format_exception_when_format_is_not_a_valid_value() { var semver = new Semver(1, 2, 3, "pre", "build"); Assert.Throws <FormatException>(() => semver.ToString("X")); }
public void should_display_normal_version_when_called_with_V_argument() { var semver = new Semver(1, 2, 3, "pre", "build"); Assert.Equal("1.2.3", semver.ToString("V")); }
public void should_display_normal_version_when_called_with_P_argument_and_version_is_not_prerelease() { var semver = new Semver(1, 2, 3, "", "build"); Assert.Equal("1.2.3", semver.ToString("P")); }
public void should_parse_a_version_with_build_meta_data_but_no_prerelase_info() { var semver = Semver.Parse("1.2.3+master.c34fede"); Assert.Equal("master.c34fede", semver.Build); }
public void should_return_true_when_version_is_a_pre_release() { var semver = new Semver(1, 2, 3, "pre"); Assert.True(semver.IsPreRelease); }
public void should_return_false_when_version_is_not_a_pre_release() { var semver = new Semver(1, 2, 3); Assert.False(semver.IsPreRelease); }
public void should_parse_a_version_with_prerelese_information() { var semver = Semver.Parse("1.2.3-beta.2"); Assert.Equal("beta.2", semver.PreRelease); }