Пример #1
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode           = versioningMode;
     GitTagPrefix             = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget          = trackMergeTarget;
     MajorVersionBumpMessage   = majorVersionBumpMessage;
     MinorVersionBumpMessage   = minorVersionBumpMessage;
     PatchVersionBumpMessage   = patchVersionBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
 }
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
     MajorVersionBumpMessage = majorVersionBumpMessage;
     MinorVersionBumpMessage = minorVersionBumpMessage;
     PatchVersionBumpMessage = patchVersionBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
 }
Пример #3
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     AssemblyFileVersioningScheme assemblyFileVersioningScheme,
     string?assemblyInformationalFormat,
     string?assemblyVersioningFormat,
     string?assemblyFileVersioningFormat,
     VersioningMode versioningMode, string?gitTagPrefix,
     string?tag, string?nextVersion, IncrementStrategy increment,
     string?branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string?tagNumberPattern,
     string?continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string?majorVersionBumpMessage,
     string?minorVersionBumpMessage,
     string?patchVersionBumpMessage,
     string?noBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding,
     int commitsSinceVersionSourcePadding,
     IEnumerable <IVersionFilter> versionFilters,
     bool tracksReleaseBranches,
     bool isCurrentBranchRelease,
     string?commitDateFormat,
     bool updateBuildNumber,
     int preReleaseWeight,
     int tagPreReleaseWeight)
 {
     AssemblyVersioningScheme     = assemblyVersioningScheme;
     AssemblyFileVersioningScheme = assemblyFileVersioningScheme;
     AssemblyInformationalFormat  = assemblyInformationalFormat;
     AssemblyVersioningFormat     = assemblyVersioningFormat;
     AssemblyFileVersioningFormat = assemblyFileVersioningFormat;
     VersioningMode     = versioningMode;
     GitTagPrefix       = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget                 = trackMergeTarget;
     MajorVersionBumpMessage          = majorVersionBumpMessage;
     MinorVersionBumpMessage          = minorVersionBumpMessage;
     PatchVersionBumpMessage          = patchVersionBumpMessage;
     NoBumpMessage                    = noBumpMessage;
     CommitMessageIncrementing        = commitMessageIncrementing;
     LegacySemVerPadding              = legacySemVerPaddding;
     BuildMetaDataPadding             = buildMetaDataPadding;
     CommitsSinceVersionSourcePadding = commitsSinceVersionSourcePadding;
     VersionFilters                   = versionFilters;
     TracksReleaseBranches            = tracksReleaseBranches;
     IsCurrentBranchRelease           = isCurrentBranchRelease;
     CommitDateFormat                 = commitDateFormat;
     UpdateBuildNumber                = updateBuildNumber;
     PreReleaseWeight                 = preReleaseWeight;
     TagPreReleaseWeight              = tagPreReleaseWeight;
 }
Пример #4
0
 public static VersionField ToVersionField(this IncrementStrategy strategy)
 {
     return(strategy switch
     {
         IncrementStrategy.None => VersionField.None,
         IncrementStrategy.Major => VersionField.Major,
         IncrementStrategy.Minor => VersionField.Minor,
         IncrementStrategy.Patch => VersionField.Patch,
         _ => throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null)
     });
Пример #5
0
        public void IncrementVersion_VersionFieldTest(string source, string expected, VersionField versionField)
        {
            var sourceVer   = SemanticVersion.Parse(source);
            var expectedVer = SemanticVersion.Parse(expected);

            var strategy  = new IncrementStrategy(versionField);
            var actualVer = strategy.IncrementVersion(sourceVer);

            Assert.That(actualVer, Is.EqualTo(expectedVer));
        }
 public static void ApplyBranchDefaults(Config config,
     BranchConfig branchConfig,
     string defaultTag = "useBranchName",
     IncrementStrategy defaultIncrementStrategy = IncrementStrategy.Patch,
     bool defaultPreventIncrement = false,
     VersioningMode? defaultVersioningMode = null, // Looked up from main config
     bool defaultTrackMergeTarget = false,
     string defaultTagNumberPattern = null)
 {
     branchConfig.Tag = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment = branchConfig.Increment ?? defaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
 }
Пример #7
0
 public static void ApplyBranchDefaults(Config config,
                                        BranchConfig branchConfig,
                                        string defaultTag = "useBranchName",
                                        IncrementStrategy defaultIncrementStrategy = IncrementStrategy.Patch,
                                        bool defaultPreventIncrement         = false,
                                        VersioningMode?defaultVersioningMode = null, // Looked up from main config
                                        bool defaultTrackMergeTarget         = false,
                                        string defaultTagNumberPattern       = null)
 {
     branchConfig.Tag = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment        = branchConfig.Increment ?? defaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode   = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
 }
Пример #8
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     string assemblyInformationalFormat,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     string noBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding,
     int commitsSinceVersionSourcePadding,
     IEnumerable <IVersionFilter> versionFilters,
     bool isCurrentBranchDevelop,
     bool isCurrentBranchRelease)
 {
     AssemblyVersioningScheme    = assemblyVersioningScheme;
     AssemblyInformationalFormat = assemblyInformationalFormat;
     VersioningMode     = versioningMode;
     GitTagPrefix       = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget                 = trackMergeTarget;
     MajorVersionBumpMessage          = majorVersionBumpMessage;
     MinorVersionBumpMessage          = minorVersionBumpMessage;
     PatchVersionBumpMessage          = patchVersionBumpMessage;
     NoBumpMessage                    = noBumpMessage;
     CommitMessageIncrementing        = commitMessageIncrementing;
     LegacySemVerPadding              = legacySemVerPaddding;
     BuildMetaDataPadding             = buildMetaDataPadding;
     CommitsSinceVersionSourcePadding = commitsSinceVersionSourcePadding;
     VersionFilters                   = versionFilters;
     IsCurrentBranchDevelop           = isCurrentBranchDevelop;
     IsCurrentBranchRelease           = isCurrentBranchRelease;
 }
Пример #9
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     string assemblyInformationalFormat,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     string noBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding,
     int commitsSinceVersionSourcePadding,
     IEnumerable<IVersionFilter> versionFilters,
     bool isCurrentBranchDevelop,
     bool isCurrentBranchRelease)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     AssemblyInformationalFormat = assemblyInformationalFormat;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
     MajorVersionBumpMessage = majorVersionBumpMessage;
     MinorVersionBumpMessage = minorVersionBumpMessage;
     PatchVersionBumpMessage = patchVersionBumpMessage;
     NoBumpMessage = noBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
     LegacySemVerPadding = legacySemVerPaddding;
     BuildMetaDataPadding = buildMetaDataPadding;
     CommitsSinceVersionSourcePadding = commitsSinceVersionSourcePadding;
     VersionFilters = versionFilters;
     IsCurrentBranchDevelop = isCurrentBranchDevelop;
     IsCurrentBranchRelease = isCurrentBranchRelease;
 }
Пример #10
0
        public static VersionField ToVersionField(this IncrementStrategy strategy)
        {
            switch (strategy)
            {
            case IncrementStrategy.None:
                return(VersionField.None);

            case IncrementStrategy.Major:
                return(VersionField.Major);

            case IncrementStrategy.Minor:
                return(VersionField.Minor);

            case IncrementStrategy.Patch:
                return(VersionField.Patch);

            default:
                throw new ArgumentOutOfRangeException(nameof(strategy), strategy, null);
            }
        }
Пример #11
0
        public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy?alternateExpected)
        {
            // Dummy branch name to make sure that no default config exists.
            const string dummyBranchName = "dummy";

            var config = new ConfigurationBuilder()
                         .Add(new Config {
                Increment = increment
            })
                         .Build();

            using var fixture = new EmptyRepositoryFixture();
            fixture.MakeACommit();
            fixture.BranchTo(dummyBranchName);
            fixture.MakeACommit();

            var context = GetGitVersionContext(fixture.RepositoryPath, fixture.Repository.ToGitRepository(), dummyBranchName, config);

            context.Configuration.Increment.ShouldBe(alternateExpected ?? increment);
        }
Пример #12
0
        public SemanticVersion IncrementVersion(IncrementStrategy incrementStrategy)
        {
            var incremented = new SemanticVersion(this);

            if (!incremented.PreReleaseTag.HasTag())
            {
                switch (incrementStrategy)
                {
                case IncrementStrategy.None:
                    break;

                case IncrementStrategy.Major:
                    incremented.Major++;
                    incremented.Minor = 0;
                    incremented.Patch = 0;
                    break;

                case IncrementStrategy.Minor:
                    incremented.Minor++;
                    incremented.Patch = 0;
                    break;

                case IncrementStrategy.Patch:
                    incremented.Patch++;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            else
            {
                if (incremented.PreReleaseTag.Number != null)
                {
                    incremented.PreReleaseTag.Number = incremented.PreReleaseTag.Number;
                    incremented.PreReleaseTag.Number++;
                }
            }

            return(incremented);
        }
Пример #13
0
        public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy?alternateExpected)
        {
            // Dummy branch name to make sure that no default config exists.
            const string dummyBranchName = "dummy";

            var config = new Config
            {
                Increment = increment
            };

            config.Reset();

            using var fixture = new EmptyRepositoryFixture();
            fixture.MakeACommit();
            fixture.BranchTo(dummyBranchName);
            fixture.MakeACommit();

            var context = new GitVersionContext(fixture.Repository, log, fixture.Repository.Branches[dummyBranchName], config);

            context.Configuration.Increment.ShouldBe(alternateExpected ?? increment);
        }
Пример #14
0
        public void CanInheritIncrement(IncrementStrategy increment, IncrementStrategy? alternateExpected)
        {
            // Dummy branch name to make sure that no default config exists.
            const string dummyBranchName = "dummy";

            var config = new Config
            {
                Increment = increment
            };
            ConfigurationProvider.ApplyDefaultsTo(config);

            using (var fixture = new EmptyRepositoryFixture())
            {
                fixture.MakeACommit();
                fixture.BranchTo(dummyBranchName);
                fixture.MakeACommit();

                var context = new GitVersionContext(fixture.Repository, fixture.Repository.Branches[dummyBranchName], config);
                context.Configuration.Increment.ShouldBe(alternateExpected ?? increment);
            }
        }
Пример #15
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     string assemblyInformationalFormat,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     bool disableMergeMessageStrategy,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget,
     string majorVersionBumpMessage,
     string minorVersionBumpMessage,
     string patchVersionBumpMessage,
     CommitMessageIncrementMode commitMessageIncrementing,
     int legacySemVerPaddding,
     int buildMetaDataPadding
     )
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     AssemblyInformationalFormat = assemblyInformationalFormat;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     DisableMergeMessageStrategy = disableMergeMessageStrategy;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
     MajorVersionBumpMessage = majorVersionBumpMessage;
     MinorVersionBumpMessage = minorVersionBumpMessage;
     PatchVersionBumpMessage = patchVersionBumpMessage;
     CommitMessageIncrementing = commitMessageIncrementing;
     LegacySemVerPadding = legacySemVerPaddding;
     BuildMetaDataPadding = buildMetaDataPadding;
 }
Пример #16
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode           = versioningMode;
     GitTagPrefix             = gitTagPrefix;
     Tag                = tag;
     NextVersion        = nextVersion;
     Increment          = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
 }
Пример #17
0
 public EffectiveConfiguration(
     AssemblyVersioningScheme assemblyVersioningScheme,
     VersioningMode versioningMode, string gitTagPrefix,
     string tag, string nextVersion, IncrementStrategy increment,
     string branchPrefixToTrim,
     bool preventIncrementForMergedBranchVersion,
     string tagNumberPattern,
     string continuousDeploymentFallbackTag,
     bool trackMergeTarget)
 {
     AssemblyVersioningScheme = assemblyVersioningScheme;
     VersioningMode = versioningMode;
     GitTagPrefix = gitTagPrefix;
     Tag = tag;
     NextVersion = nextVersion;
     Increment = increment;
     BranchPrefixToTrim = branchPrefixToTrim;
     PreventIncrementForMergedBranchVersion = preventIncrementForMergedBranchVersion;
     TagNumberPattern = tagNumberPattern;
     ContinuousDeploymentFallbackTag = continuousDeploymentFallbackTag;
     TrackMergeTarget = trackMergeTarget;
 }
Пример #18
0
 public static void ApplyBranchDefaults(Config config,
     BranchConfig branchConfig,
     string branchRegex,
     string defaultTag = "useBranchName",
     IncrementStrategy? defaultIncrementStrategy = null, // Looked up from main config
     bool defaultPreventIncrement = false,
     VersioningMode? defaultVersioningMode = null, // Looked up from main config
     bool defaultTrackMergeTarget = false,
     string defaultTagNumberPattern = null,
     bool tracksReleaseBranches = false,
     bool isReleaseBranch = false,
     bool isMainline = false)
 {
     branchConfig.Regex = string.IsNullOrEmpty(branchConfig.Regex) ? branchRegex : branchConfig.Regex;
     branchConfig.Tag = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment = branchConfig.Increment ?? defaultIncrementStrategy ?? config.Increment ?? DefaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
     branchConfig.TracksReleaseBranches = branchConfig.TracksReleaseBranches ?? tracksReleaseBranches;
     branchConfig.IsReleaseBranch = branchConfig.IsReleaseBranch ?? isReleaseBranch;
     branchConfig.IsMainline = branchConfig.IsMainline ?? isMainline;
 }
Пример #19
0
 public static void ApplyBranchDefaults(Config config,
                                        BranchConfig branchConfig,
                                        string branchRegex,
                                        string defaultTag = "useBranchName",
                                        IncrementStrategy defaultIncrementStrategy = IncrementStrategy.Patch,
                                        bool defaultPreventIncrement         = false,
                                        VersioningMode?defaultVersioningMode = null, // Looked up from main config
                                        bool defaultTrackMergeTarget         = false,
                                        string defaultTagNumberPattern       = null,
                                        bool isDevelop       = false,
                                        bool isReleaseBranch = false,
                                        bool isMainline      = false)
 {
     branchConfig.Regex            = string.IsNullOrEmpty(branchConfig.Regex) ? branchRegex : branchConfig.Regex;
     branchConfig.Tag              = branchConfig.Tag ?? defaultTag;
     branchConfig.TagNumberPattern = branchConfig.TagNumberPattern ?? defaultTagNumberPattern;
     branchConfig.Increment        = branchConfig.Increment ?? defaultIncrementStrategy;
     branchConfig.PreventIncrementOfMergedBranchVersion = branchConfig.PreventIncrementOfMergedBranchVersion ?? defaultPreventIncrement;
     branchConfig.TrackMergeTarget = branchConfig.TrackMergeTarget ?? defaultTrackMergeTarget;
     branchConfig.VersioningMode   = branchConfig.VersioningMode ?? defaultVersioningMode ?? config.VersioningMode;
     branchConfig.IsDevelop        = branchConfig.IsDevelop ?? isDevelop;
     branchConfig.IsReleaseBranch  = branchConfig.IsReleaseBranch ?? isReleaseBranch;
     branchConfig.IsMainline       = branchConfig.IsMainline ?? isMainline;
 }
Пример #20
0
 public static VersionField ToVersionField(this IncrementStrategy strategy) => strategy switch
 {