Files
deb-python-semantic-version/ChangeLog
Raphaël Barrois 2ed3d39c29 Forbid build metadata ordering (See #18)
SemVer 2.0.0 states that "Build metadata SHOULD be ignored when
determining version precedence".

This means that, when comparing ``0.1.0+1`` to ``0.1.0+bcd``::

    >>> Version('0.1.0+1') == Version('0.1.0+bcd')
    False
    >>> Version('0.1.0+1') != Version('0.1.0+bcd')
    True
    >>> Version('0.1.0+1') < Version('0.1.0+bcd')
    False
    >>> Version('0.1.0+1') > Version('0.1.0+bcd')
    False
    >>> Version('0.1.0+1') <= Version('0.1.0+bcd')
    False
    >>> Version('0.1.0+1') >= Version('0.1.0+bcd')
    False
    >>> compare(Version('0.1.0+1'), Version('0.1.0+bcd'))
    NotImplemented

This change also has the following effects:
- When including build metadata in a ``Spec``, the only valid options
  are ``Spec('==0.1.0+sth')`` and ``Spec('!=0.1.0+sth')``
- The meaning of ``Spec('==0.1.0+')`` is now "Only version 0.1.0 without
  build metadata"
- ``Spec('==0.1.0')`` now matches ``Version('0.1.0+anything')``
2015-09-15 23:40:59 +02:00

174 lines
4.6 KiB
ReStructuredText

ChangeLog
=========
2.5.0 (master)
--------------
*Bugfix:*
`#18 <https://github.com/rbarrois/python-semanticversion/issues/18>`_: According to SemVer 2.0.0, build numbers aren't ordered.
* Remove specs of the ``Spec('<1.1.3+')`` form
* Comparing ``Version('0.1.0')`` to ``Version('0.1.0+bcd')`` has new
rules::
>>> Version('0.1.0+1') == Version('0.1.0+bcd')
False
>>> Version('0.1.0+1') != Version('0.1.0+bcd')
True
>>> Version('0.1.0+1') < Version('0.1.0+bcd')
False
>>> Version('0.1.0+1') > Version('0.1.0+bcd')
False
>>> Version('0.1.0+1') <= Version('0.1.0+bcd')
False
>>> Version('0.1.0+1') >= Version('0.1.0+bcd')
False
>>> compare(Version('0.1.0+1'), Version('0.1.0+bcd'))
NotImplemented
* :func:`semantic_version.compare` returns ``NotImplemented`` when its
parameters differ only by build metadata
* ``Spec('<=1.3.0')`` now matches ``Version('1.3.0+abde24fe883')``
2.4.2 (2015-07-02)
------------------
*Bugfix:*
* Fix tests for Django 1.7+, thanks to @mhrivnak.
2.4.1 (2015-04-01)
------------------
*Bugfix:*
* Fix packaging metadata (advertise Python 3.4 support)
2.4.0 (2015-04-01)
------------------
*New:*
* `#16 <https://github.com/rbarrois/python-semanticversion/issues/16>`_: Add an API for bumping versions,
by @RickEyre.
2.3.1 (2014-09-24)
------------------
*Bugfix:*
* `#13 <https://github.com/rbarrois/python-semanticversion/issues/13>`_: Fix handling of files encoding
in ``setup.py``.
2.3.0 (2014-03-16)
------------------
*New:*
* Handle the full ``semver-2.0.0`` specifications (instead of the ``2.0.0-rc2`` of previous releases)
* `#8 <https://github.com/rbarrois/python-semanticversion/issues/8>`_: Allow ``'*'`` as a valid version spec
2.2.2 (2013-12-23)
------------------
*Bugfix:*
* `#5 <https://github.com/rbarrois/python-semanticversion/issues/5>`_: Fix packaging (broken
symlinks, old-style distutils, etc.)
2.2.1 (2013-10-29)
------------------
*Bugfix:*
* `#2 <https://github.com/rbarrois/python-semanticversion/issues/2>`_: Properly expose
:func:`~semantic_version.validate` as a top-level module function.
2.2.0 (2013-03-22)
------------------
*Bugfix:*
* `#1 <https://github.com/rbarrois/python-semanticversion/issues/1>`_: Allow partial
versions without minor or patch level
*New:*
* Add the :meth:`Version.coerce <semantic_version.Version.coerce>` class method to
:class:`~semantic_version.Version` class for mapping arbitrary version strings to
semver.
* Add the :func:`~semantic_version.validate` method to validate a version
string against the SemVer rules.
* Full Python3 support
2.1.2 (2012-05-22)
------------------
*Bugfix:*
* Properly validate :class:`~semantic_version.django_fields.VersionField` and
:class:`~semantic_version.django_fields.SpecField`.
2.1.1 (2012-05-22)
------------------
*New:*
* Add introspection rules for south
2.1.0 (2012-05-22)
------------------
*New:*
* Add :func:`semantic_version.Spec.filter` (filter a list of :class:`~semantic_version.Version`)
* Add :func:`semantic_version.Spec.select` (select the highest
:class:`~semantic_version.Version` from a list)
* Update :func:`semantic_version.Version.__repr__`
2.0.0 (2012-05-22)
------------------
*Backwards incompatible changes:*
* Removed "loose" specification support
* Cleanup :class:`~semantic_version.Spec` to be more intuitive.
* Merge Spec and SpecList into :class:`~semantic_version.Spec`.
* Remove :class:`~semantic_version.django_fields.SpecListField`
1.2.0 (2012-05-18)
------------------
*New:*
* Allow split specifications when instantiating a
:class:`~semantic_version.SpecList`::
>>> SpecList('>=0.1.1', '!=0.1.3') == SpecList('>=0.1.1,!=0.1.3')
True
1.1.0 (2012-05-18)
------------------
*New:*
* Improved "loose" specification support (``>~``, ``<~``, ``!~``)
* Introduced "not equal" specifications (``!=``, ``!~``)
* :class:`~semantic_version.SpecList` class combining many :class:`~semantic_version.Spec`
* Add :class:`~semantic_version.django_fields.SpecListField` to store a :class:`~semantic_version.SpecList`.
1.0.0 (2012-05-17)
------------------
First public release.
*New:*
* :class:`~semantic_version.Version` and :class:`~semantic_version.Spec` classes
* Related django fields: :class:`~semantic_version.django_fields.VersionField`
and :class:`~semantic_version.django_fields.SpecField`
.. vim:et:ts=4:sw=4:tw=79:ft=rst: