summaryrefslogtreecommitdiff
path: root/README
blob: 989f5b622be135f75383abdbfb8ed5d28f6203b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
python-semanticversion
======================

.. image:: https://secure.travis-ci.org/rbarrois/python-semanticversion.png?branch=master
    :target: http://travis-ci.org/rbarrois/python-semanticversion/

This small python library provides a few tools to handle `SemVer <http://semver.org>`_ in Python.


Handles the full 2.0.0-rc1 version of the SemVer scheme, and provides tools to declare version ranges.

The full doc is available on http://python-semanticversion.readthedocs.org/; simple usage is described below.


Usage
=====

Define a Version::

  >>> from semantic_version import Version
  >>> v = Version('0.1.1')

Compare it to other versions::

  >>> v < Version('0.1.2')
  True
  >>> sorted([Version('0.1.1'), Version('0.11.1'), Version('0.1.1-alpha')])
  [Version('0.1.1-alpha'), Version('0.1.1'), Version('0.11.1')]

Define a simple specification::

  >>> from semantic_version import Spec
  >>> s = Spec('>=0.1.1')
  >>> Version('0.1.1') in s
  True
  >>> Version('0.1.1-alpha') in s
  False

Define complex specifications::

  >>> s = Spec('>=0.1.1,<0.2.0')
  >>> Version('0.1.2') in s
  True
  >>> Version('0.3.0') in s
  False
  >>> Version('0.2.0') in s
  False


Select the best compatible version from a list::

  >>> s = Spec('>=0.1.1,<0.2.0')
  >>> s.select([Version('0.1.1'), Version('0.1.9-alpha'), Version('0.1.9-alpha+1'))
  Version('0.1.9-alpha+1')


Framework integration
=====================

Integrates with `Django <http://djangoproject.com>`_, through the ``VersionField`` and ``SpecField`` custom fields::

    from semantic_version import django_fields as semver_fields

    class MyComputer(models.Model):
        name = models.CharField(max_length=40)
        kernel_version = semver_fields.VersionField()


Links
=====

- Package on `PyPI <http://pypi.python.org/>`_: http://pypi.python.org/pypi/semantic_version/
- Doc on `ReadTheDocs <http://readthedocs.org/>`_: http://readthedocs.org/docs/python-semanticversion/
- Source on `GitHub <http://github.com/>`_: http://github.com/rbarrois/python-semanticversion/
- Build on `Travis CI <http://travis-ci.org/>`_: http://travis-ci.org/rbarrois/python-semanticversion/
- Semantic Version specification: http://semver.org/