<p>Attempts to parse the version in <codeclass="docutils literal notranslate"><spanclass="pre"><string></span></code> and stores the individual compoents into <codeclass="docutils literal notranslate"><spanclass="pre"><out-var>_<component></span></code>. If a component is not present in the given version, it will be set to a false constant. If an error occurred, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var>_ERROR</span></code> will contain the error message otherwise it will be a false constant. The <codeclass="docutils literal notranslate"><spanclass="pre">PRERELEASE</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">BUILD</span></code> components support the dot-separation specifier and will be turned into a list if they are encountered. The optional <codeclass="docutils literal notranslate"><spanclass="pre">REQUIRE</span></code> allows forcing the components <codeclass="docutils literal notranslate"><spanclass="pre">PATCH</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">TWEAK</span></code> to always be defined.</p>
<p>It is necessary to include a <codeclass="docutils literal notranslate"><spanclass="pre">;</span></code> for the <codeclass="docutils literal notranslate"><spanclass="pre">REQUIRE</span></code> parameter, even if there is only one required part.</p>
<p>Generates a version from the components provided and stores the result in <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code>. The components <codeclass="docutils literal notranslate"><spanclass="pre"><major></span></code> and <codeclass="docutils literal notranslate"><spanclass="pre"><minor></span></code> will default to <codeclass="docutils literal notranslate"><spanclass="pre">0</span></code> if not provided. If an error occurred, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var>_ERROR</span></code> will contain the error message otherwise it will be a false constant. The <codeclass="docutils literal notranslate"><spanclass="pre">PRERELEASE</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">BUILD</span></code> components support the dot-separation specifier and will be converted from a list if encountered. The optional <codeclass="docutils literal notranslate"><spanclass="pre">REQUIRE</span></code> allows forcing the components <codeclass="docutils literal notranslate"><spanclass="pre">PATCH</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">TWEAK</span></code> to always be defined.</p>
<p>It is necessary to include a <codeclass="docutils literal notranslate"><spanclass="pre">;</span></code> for the <codeclass="docutils literal notranslate"><spanclass="pre">REQUIRE</span></code> parameter, even if there is only one required part.</p>
<p>Modifies the version provided in <codeclass="docutils literal notranslate"><spanclass="pre"><string></span></code> with the components provided. The components <codeclass="docutils literal notranslate"><spanclass="pre"><major></span></code>, <codeclass="docutils literal notranslate"><spanclass="pre"><minor></span></code>, <codeclass="docutils literal notranslate"><spanclass="pre"><patch></span></code> and <codeclass="docutils literal notranslate"><spanclass="pre"><tweak></span></code> may have a prefix of <codeclass="docutils literal notranslate"><spanclass="pre">+</span></code> or <codeclass="docutils literal notranslate"><spanclass="pre">-</span></code> to add and subtract the value, or no prefix to replace. The result of this operation will be stored as a string in <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code>. If a component did not exist in the original, it will be added to the version as a replace operation. If an error occurred, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var>_ERROR</span></code> will contain the error message otherwise it will be a false constant. The optional <codeclass="docutils literal notranslate"><spanclass="pre">REQUIRE</span></code> allows forcing the components <codeclass="docutils literal notranslate"><spanclass="pre">PATCH</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">TWEAK</span></code> to always be defined.</p>
<p>It is necessary to include a <codeclass="docutils literal notranslate"><spanclass="pre">;</span></code> for the <codeclass="docutils literal notranslate"><spanclass="pre">REQUIRE</span></code> parameter, even if there is only one required part.</p>
<p>Compares the version <codeclass="docutils literal notranslate"><spanclass="pre"><a></span></code> against <codeclass="docutils literal notranslate"><spanclass="pre"><b></span></code> and stores the result in <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code>. The provided version will be evaluated in the order MAJOR, MINOR, PATCH, TWEAK, PRERELEASE, and then BUILD. The following results should be expected:</p>
<ulclass="simple">
<li><p>If a component is only in <codeclass="docutils literal notranslate"><spanclass="pre"><a></span></code>, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will contain the componenent name prefixed by <codeclass="docutils literal notranslate"><spanclass="pre">+</span></code>.</p></li>
<li><p>If a component is only in <codeclass="docutils literal notranslate"><spanclass="pre"><b></span></code>, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will contain the componenent name prefixed by <codeclass="docutils literal notranslate"><spanclass="pre">-</span></code>.</p></li>
<li><p>If a component is numerical and the value is larger in <codeclass="docutils literal notranslate"><spanclass="pre"><a></span></code>, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will contain the componenent name prefixed by <codeclass="docutils literal notranslate"><spanclass="pre">></span></code>.</p></li>
<li><p>If a component is numerical and the value is larger in <codeclass="docutils literal notranslate"><spanclass="pre"><b></span></code>, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will contain the componenent name prefixed by <codeclass="docutils literal notranslate"><spanclass="pre"><</span></code>.</p></li>
<li><p>If a component is alphanumerical and the value is different in either, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will contain the component name with no prefix.</p></li>
<li><p>If an error occurred, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var>_ERROR</span></code> will contain the error message otherwise it will be a false constant, and <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will be a false constant.</p></li>
<li><p>In all other cases, <codeclass="docutils literal notranslate"><spanclass="pre"><out-var></span></code> will be a false constant.</p></li>
<p>There is no special handling for dot-separated <codeclass="docutils literal notranslate"><spanclass="pre">PRERELEASE</span></code> and <codeclass="docutils literal notranslate"><spanclass="pre">BUILD</span></code> component. They will be treated as if they were a string, as special handling for these is up to the application.</p>