Statistics
| Branch: | Tag: | Revision:

root / devflow / __init__.py @ 2da876d0

History | View | Annotate | Download (2.9 kB)

1
# Copyright 2012, 2013 GRNET S.A. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or
4
# without modification, are permitted provided that the following
5
# conditions are met:
6
#
7
#   1. Redistributions of source code must retain the above
8
#      copyright notice, this list of conditions and the following
9
#      disclaimer.
10
#
11
#   2. Redistributions in binary form must reproduce the above
12
#      copyright notice, this list of conditions and the following
13
#      disclaimer in the documentation and/or other materials
14
#      provided with the distribution.
15
#
16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
# POSSIBILITY OF SUCH DAMAGE.
28
#
29
# The views and conclusions contained in the software and
30
# documentation are those of the authors and should not be
31
# interpreted as representing official policies, either expressed
32
# or implied, of GRNET S.A.
33

    
34
"""A set of tools to ease versioning and use of git flow"""
35

    
36
from collections import namedtuple
37

    
38
# Branch types:
39
# builds_snapshot: Whether the branch can produce snapshot builds
40
# builds_release: Whether the branch can produce release builds
41
# versioned: Whether the name of the branch defines a specific version
42
# allowed_version_re: A regular expression describing allowed values for
43
#                     base_version in this branch
44
branch_type = namedtuple("branch_type", ["builds_snapshot", "builds_release",
45
                                         "versioned", "allowed_version_re",
46
                                         "debian_branch"])
47
VERSION_RE = "[0-9]+\.[0-9]+(\.[0-9]+)*"  # pylint: disable=W1401
48

    
49
BRANCH_TYPES = {
50
    "feature": branch_type(True, False, False, "^%snext$" % VERSION_RE,
51
                           "debian-develop"),
52
    "develop": branch_type(True, False, False, "^%snext$" % VERSION_RE,
53
                           "debian-develop"),
54
    "release": branch_type(True, True, True,
55
                           "^(?P<bverstr>%s)rc[1-9][0-9]*$" % VERSION_RE,
56
                           "debian-develop"),
57
    "master": branch_type(True, True, False,
58
                          "^%s$" % VERSION_RE, "debian"),
59
    "hotfix": branch_type(True, True, True,
60
                          "^(?P<bverstr>^%s\.[1-9][0-9]*)$" % VERSION_RE,
61
                          "debian")}
62
BASE_VERSION_FILE = "version"