Author: svn-site-role
Date: Tue Jan 16 17:45:43 2024
New Revision: 1915272
Log:
Site checkin for project Apache Maven Site
Modified:
maven/website/content/maven-site-1.0-site.jar
maven/website/content/pom.html
Modified: maven/website/content/maven-site-1.0-site.jar
==============================================================================
Binary files - no diff available.
Modified: maven/website/content/pom.html
==============================================================================
--- maven/website/content/pom.html (original)
+++ maven/website/content/pom.html Tue Jan 16 17:45:43 2024
@@ -335,7 +335,7 @@
<h4><a id="Version_Order_Specification">Version Order Specification</a>:</h4>
<p>If version strings are syntactically correct <a class="externalLink"
href="https://semver.org/spec/v1.0.0.html">Semantic Versioning 1.0.0</a>
version numbers, then in almost all cases version comparison follows the
precedence rules outlined in that specification. These versions are the
commonly encountered alphanumeric ASCII strings such as 2.15.2-alpha. More
precisely, this is true if both version numbers to be compared match the
"valid semver" production in the BNF grammar in the semantic
versioning specification. Maven does not consider any semantics implied by that
specification.</p>
<p><b>Important</b>: This is only true for Semantic Versioning <i>1.0.0</i>.
The Maven version order algorithm is not compatible with Semantic Versioning
<i>2.0.0</i>. In particular, Maven does not special case the plus sign or
consider build identifiers.</p>
-<p>When version strings do not follow semantic versioning, a more complex set
of rules is required. The Maven coordinate is split in tokens between dots
('<code>.</code>'), hyphens ('<code>-</code>') and transitions between digits
and characters. The separator is recorded and will have effect on the order. A
transition between digits and characters is equivalent to a hyphen. Empty
tokens are replaced with "<code>0</code>". This gives a sequence of
version numbers (numeric tokens) and version qualifiers (non-numeric tokens)
with "<code>.</code>" or "<code>-</code>" prefixes.</p>
+<p>When version strings do not follow semantic versioning, a more complex set
of rules is required. The Maven coordinate is split in tokens between dots
('<code>.</code>'), hyphens ('<code>-</code>'), underscore ('<code>_</code>')
and transitions between digits and characters. The separator is recorded and
will have effect on the order. A transition between digits and characters is
equivalent to a hyphen. Empty tokens are replaced with
"<code>0</code>". This gives a sequence of version numbers (numeric
tokens) and version qualifiers (non-numeric tokens) with
"<code>.</code>" or "<code>-</code>" prefixes. Versions are
expected to start with numbers.</p>
<p>Splitting and Replacing Examples:</p>
<ul>
<li><code>1-1.foo-bar1baz-.1</code> ->
<code>1-1.foo-bar-1-baz-0.1</code></li></ul>
@@ -373,11 +373,11 @@
<li>"<code>1</code>" < "<code>1.1</code>" (number
padding)</li>
<li>"<code>1-snapshot</code>" < "<code>1</code>" <
"<code>1-sp</code>" (qualifier padding)</li>
<li>"<code>1-foo2</code>" < "<code>1-foo10</code>"
(correctly automatically "switching" to numeric order)</li>
-<li>"<code>1.foo</code>" = "<code>1-foo</code>" <
"<code>1-1</code>" < "<code>1.1</code>"</li>
+<li>"<code>1.foo</code>" = "<code>1-foo</code>" <
"<code>1-1</code>" = "<code>1.1</code>"</li>
<li>"<code>1.ga</code>" = "<code>1-ga</code>" =
"<code>1-0</code>" = "<code>1.0</code>" =
"<code>1</code>" (removing of trailing "null" values)</li>
<li>"<code>1-sp</code>" > "<code>1-ga</code>"</li>
<li>"<code>1-sp.1</code>" > "<code>1-ga.1</code>"</li>
-<li>"<code>1-sp-1</code>" < "<code>1-ga-1</code>" =
"<code>1-1</code>" (trailing "null" values at each
hyphen)</li>
+<li>"<code>1-sp-1</code>" > "<code>1-ga-1</code>"</li>
<li>"<code>1-a1</code>" = "<code>1-alpha-1</code>"
<p>Note: Contrary to what was stated in some design documents, for version
order, snapshots are not treated differently than releases or any other
qualifier.</p>
<p>Note: As <code>2.0-rc1</code> < <code>2.0</code>, the version
requirement <code>[1.0,2.0)</code> excludes <code>2.0</code> but includes
version <code>2.0-rc1</code>, which is contrary to what most people expect. In
addition, Gradle interprets it differently, resulting in different dependency
trees for the same POM. If the intention is to restrict it to <i>1.*</i>
versions, the better version requirement is
<code>[1,1.999999)</code>.</p></li></ul></section><section>