<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc -->
    <title>VersionStrategies (Gradle Wooga Release plugin API)</title>
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="VersionStrategies (Gradle Wooga Release plugin API)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../../index-all.html">Index</a></li>
        <li><a href="../../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../../index.html?wooga/gradle/release/version/semver/VersionStrategies" target="_top">Frames</a></li>
            <li><a href="VersionStrategies.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;<li><a href="#property_summary">Property</a></li>&nbsp;&nbsp;&nbsp;Constructor&nbsp;&nbsp;&nbsp;Method&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;<li><a href="#prop_detail">Property</a></li>&nbsp;&nbsp;&nbsp;Constructor&nbsp;&nbsp;&nbsp;Method&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>wooga.gradle.release.version.semver</strong></div>

    <h2 title="[Groovy] Class VersionStrategies" class="title">[Groovy] Class VersionStrategies</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><ul class="inheritance"></ul></li><li>wooga.gradle.release.version.semver.VersionStrategies
</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">



          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        
         <ul class="blockList">
                <li class="blockList"><a name="property_summary"><!--   --></a>
                    <h3>Properties Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Properties Summary table, listing nested classes, and an explanation">
                        <caption><span>Properties</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong>static&nbsp;org.ajoberstar.gradle.git.release.semver.PartialSemVerStrategy</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#COUNT_INCREMENTED">COUNT_INCREMENTED</a></code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>static&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#DEVELOPMENT">DEVELOPMENT</a></code><br>Returns a version strategy to be used for <CODE>development</CODE> builds.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong>static&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#FINAL">FINAL</a></code><br>Returns a version strategy to be used for <CODE>final</CODE> builds.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><strong>static&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#PRE_RELEASE">PRE_RELEASE</a></code><br>Returns a version strategy to be used for <CODE>pre-release</CODE>/<CODE>candidate</CODE> builds.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><strong>static&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy</strong></code>&nbsp;</td>
                            <td class="colLast"><code><a href="#SNAPSHOT">SNAPSHOT</a></code><br>Returns a version strategy to be used for <CODE>snapshot</CODE> builds.</td>
                        </tr>
                        
                    </table>
                   </ul>
                </li>
            </ul>
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Inherited Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Inherited Methods Summary table">
                        <caption><span>Inherited Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Methods inherited from class</th>
                            <th class="colLast" scope="col">Name</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>class java.lang.Object</code></td>
                            <td class="colLast"><code>java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()</code></td>
                        </tr>
                    </table>
                   </ul>
              </li>
                
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            

            
            <!-- =========== PROPERTY DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="prop_detail">
                    <!--   -->
                </a>
                    <h3>Property Detail</h3>
                    
                        <a name="COUNT_INCREMENTED"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;final&nbsp;org.ajoberstar.gradle.git.release.semver.PartialSemVerStrategy <strong>COUNT_INCREMENTED</strong></h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="DEVELOPMENT"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;final&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy <strong>DEVELOPMENT</strong></h4>
                                <p> Returns a version strategy to be used for <CODE>development</CODE> builds.
 <p>
 This strategy creates a unique version string based on last commit hash and the
 distance of commits to nearest normal version.
 This version string is not compatible with <a href="https://fsprojects.github.io/Paket/">Paket</a> or
 <a href="https://www.nuget.org/">Nuget</a>
 <p>
 Example:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.3.0"
 commitHash = "90c90b9"
 distance = 22
 inferred = "1.3.0-dev.22+90c90b9"
 </CODE>
 </pre>
     </p>
                            </li>
                        </ul>
                    
                        <a name="FINAL"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;final&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy <strong>FINAL</strong></h4>
                                <p> Returns a version strategy to be used for <CODE>final</CODE> builds.
 <p>
 This strategy infers the release version by checking the nearest release.
 <p>
 Example:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.3.0"
 inferred = "1.4.0"
 </CODE>
 </pre>
     </p>
                            </li>
                        </ul>
                    
                        <a name="PRE_RELEASE"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;final&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy <strong>PRE_RELEASE</strong></h4>
                                <p> Returns a version strategy to be used for <CODE>pre-release</CODE>/<CODE>candidate</CODE> builds.
 <p>
 This strategy infers the release version by checking the nearest any release.
 If a <CODE>pre-release</CODE> with the same <CODE>major</CODE>.<CODE>minor</CODE>.<CODE>patch</CODE> version exists, bumps the count part.
 <p>
 Example <i>new pre release</i>:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.2.0"
 nearestAnyVersion = ""
 inferred = "1.3.0-rc00001"
 </CODE>
 </pre>
 <p>
 Example <i>pre release version exists</i>:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.2.0"
 nearestAnyVersion = "1.3.0-rc00001"
 inferred = "1.3.0-rc00002"
 </CODE>
 </pre>
 <p>
 Example <i>last final release higher than pre-release</i>:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.3.0"
 nearestAnyVersion = "1.3.0-rc00001"
 inferred = "1.4.0-rc00001"
 </CODE>
 </pre>
     </p>
                            </li>
                        </ul>
                    
                        <a name="SNAPSHOT"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;final&nbsp;org.ajoberstar.gradle.git.release.semver.SemVerStrategy <strong>SNAPSHOT</strong></h4>
                                <p> Returns a version strategy to be used for <CODE>snapshot</CODE> builds.
 <p>
 This strategy creates a snapshot version suitable for <a href="https://fsprojects.github.io/Paket/">Paket</a> and
 <a href="https://www.nuget.org/">Nuget</a>. <CODE>Nuget</CODE> and <CODE>Paket</CODE> don't support
 <CODE>SNAPSHOT</CODE> versions or any numerical values after the <CODE>patch</CODE> component. We trick these package managers
 by creating a unique version based on <CODE>branch</CODE> and the distance of commits to nearest normal version.
 If the branch name contains numerical values, they will be converted into alphanumerical counterparts.
 The <CODE>master</CODE> branch is a special case so it will end up being higher than any other branch build (m>b)
 <p>
 Example <i>from master branch</i>:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.3.0"
 branch = "master"
 distance = 22
 inferred = "1.4.0-master00022"
 </CODE>
 </pre>
 <p>
 Example <i>from topic branch</i>:
 <pre>
 <CODE>releaseScope = "minor"
 nearestVersion = "1.3.0"
 branch = "feature/fix_22"
 distance = 34
 inferred = "1.4.0-branchFeatureFixTwoTow00034"
 </CODE>
 </pre>
     </p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            

            

            


            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../../index-all.html">Index</a></li>
        <li><a href="../../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../../index.html?wooga/gradle/release/version/semver/VersionStrategies" target="_top">Frames</a></li>
            <li><a href="VersionStrategies.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;<li><a href="#property_summary">Property</a></li>&nbsp;&nbsp;&nbsp;Constructor&nbsp;&nbsp;&nbsp;Method&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;<li><a href="#prop_detail">Property</a></li>&nbsp;&nbsp;&nbsp;Constructor&nbsp;&nbsp;&nbsp;Method&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Gradle Wooga Release plugin API</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
