Local version identifiers MUST comply with the following scheme::
- <public version identifier>[-<local version label>]
+ <public version identifier>[<local version label>]
They consist of a normal public version identifier (as defined in the
previous section), along with an arbitrary "local version label", separated
-from the public version identifier by a
hyphen. Local version labels have
+from the public version identifier by a . Local version labels have
no specific semantics assigned, but some syntactic restrictions are imposed.
Local version identifiers are used to denote fully API compatible patched
ignored when no local version label is present in the version specifier
clause. Furthermore, the PEP does not attempt to impose any structure on
the local version labels (aside from limiting the set of permitted
-characters), instead treating them as opaque strings that have no inherent
-order and can only be compared for strict equality.
+characters and defining their ordering).
This change is designed to ensure that an integrator provided version like
-``pip 1.5-1`` or ``pip-1.5-1.git.abc123de`` will still satisfy a version
+``pip 1.51`` or ``pip1.5-1.git.abc123de`` will still satisfy a version
specifier like ``pip (>= 1.5)``.
-The hyphen is chosen primarily for readability of local version identifiers.
-As the wheel format also uses hyphens as separators between components, the
+The tilde is chosen primarily for readability of local version identifiers. It
+was chosen instead of the hyphen to prevent ``pkg_resources.parse_version``
+from parsing it as a prerelease. Since the wheel format escapes tilde's the
"local version label" component from this PEP should be mapped to the
optional "build tag" component of the wheel file naming scheme, rather than
-allowing the hyphen to be transformed according the normal PEP 427 escaping
+allowing the tilde to be transformed according the normal PEP 427 escaping
+rules. If at some time Wheels can accurately represent a tilde in the version
+then is preferred to have this information listed there instead.