----------------
Added
~~~~~
- ``Version.truncate`` method to remove trailing zeros from the release
segment.
- ``Version`` now validates each item in the release sequence.
- ``Version.bump_epoch`` method.
- Add ``by`` keyword argument to ``bump_pre``, ``bump_post``, and
``bump_dev`` methods, which e.g. ``.bump_dev(by=-1)``.
Changed
~~~~~~~
- **BREAKING CHANGE**. The ``Version`` constructor now uses an empty
string to represent an implicit zero instead of ``None``.
.. code:: python
>>> Version(release=1, post='')
<Version '1.post'>
Removed
~~~~~~~
- **BREAKING CHANGE**. ``Version.clear`` is no longer necessary. Use
``Version.replace(pre=None, post=None, dev=None)`` instead.
Fixed
~~~~~
- ``Version`` incorrectly allowed an empty release sequence.
- ``Version`` rejects ``bool`` for numeric components.
- ``Version`` rejects negative integers for numeric components.
- The strict parser no longer accepts local versions with ``-`` or
``_`` separators, or uppercase letters.
- The strict parser no longer accepts numbers with leading zeros.
- The local version was only being converted to lowercase when parsing
with ``strict=False``. It is now always converted.
- The local version separators were not being normalized to use ``.``.