Browse Source

remove make release script

Bastien Sevajol 6 years ago
parent
commit
44b92d88e8
1 changed files with 0 additions and 181 deletions
  1. 0 181
      make_release

+ 0 - 181
make_release View File

@@ -1,181 +0,0 @@
1
-#!/usr/bin/env python
2
-# -*- coding: utf-8 -*-
3
-import argparse
4
-import subprocess
5
-
6
-import requests
7
-
8
-
9
-def execute(*args, **kwargs):
10
-    try:
11
-        return subprocess.check_output(*args, **kwargs)
12
-    except subprocess.CalledProcessError as e:
13
-        print(e.output.decode('utf-8'))
14
-        exit(1)
15
-
16
-
17
-def check_setup_py_clean():
18
-    git_status = execute(['git', 'status'])
19
-    for line in git_status.decode('utf-8').split('\n'):
20
-        if 'setup.py' in line:
21
-            print('ERR: setup.py file seems to be already modified')
22
-            exit(1)
23
-
24
-
25
-def extract_version_from_setup_py_content():
26
-    with open('setup.py', 'r') as setup_file:
27
-        setup_file_content = setup_file.read()
28
-
29
-    for line in setup_file_content.split('\n'):
30
-        if line.strip().startswith('version='):
31
-            version_str = line.replace('\'', '')\
32
-                .replace('version=', '')\
33
-                .replace(',', '')
34
-
35
-            major_version_str = version_str.split('.')[0].strip()
36
-            minor_version_str = version_str.split('.')[1]
37
-
38
-            if minor_version_str is None:
39
-                print('ERR: No minor version found !')
40
-                exit(1)
41
-
42
-            try:
43
-                int(minor_version_str)
44
-            except ValueError:
45
-                print(
46
-                    'ERR: Error when read minor version, value found: "{}"'
47
-                    .format(minor_version_str)
48
-                )
49
-
50
-            return version_str.strip()
51
-
52
-    print('ERR: Version not found in setup.py')
53
-    exit(1)
54
-
55
-
56
-def get_last_pypi_version():
57
-    hapic_pypi_version_response = requests.get(
58
-        'https://pypi.python.org/pypi/hapic/json',
59
-    )
60
-    hapic_pypi_versions_data = hapic_pypi_version_response.json()
61
-    hapic_pypi_versions = hapic_pypi_versions_data['releases'].keys()
62
-    last_version = sorted(hapic_pypi_versions)[-1]
63
-    return last_version
64
-
65
-
66
-def get_new_hapic_version():
67
-    version_str = extract_version_from_setup_py_content()
68
-    major_version_str = version_str.split('.')[0].strip()
69
-    minor_version_str = version_str.split('.')[1]
70
-
71
-    next_version = '{}.{}'.format(major_version_str, int(minor_version_str)+1)
72
-    last_pypi_version = get_last_pypi_version()
73
-
74
-    last_version_major = last_pypi_version.split('.')[0]
75
-    last_version_minor = last_pypi_version.split('.')[1]
76
-    last_version_more_one = '{}.{}'.format(
77
-        last_version_major,
78
-        int(last_version_minor)+1,
79
-    )
80
-
81
-    if next_version != last_version_more_one:
82
-        if input(
83
-            'WARN: This script was preparing to create version {} but '
84
-            'last version on pypi is {}. Consider to use version {} '
85
-            '?(y/N)'.format(
86
-                next_version,
87
-                last_pypi_version,
88
-                last_version_more_one,
89
-            )
90
-        ) in ['y', 'Y']:
91
-            return last_version_more_one
92
-        else:
93
-            exit(1)
94
-
95
-    return last_version_more_one
96
-
97
-
98
-def rewrite_setup_py_file(new_version: str):
99
-    with open('setup.py', 'r') as setup_file:
100
-        setup_file_content = setup_file.read()
101
-
102
-    new_content_lines = []
103
-    for line in setup_file_content.split('\n'):
104
-        if line.strip().startswith('version='):
105
-            new_content_lines.append('    version=\'{}\','.format(
106
-                new_version
107
-            ))
108
-        else:
109
-            new_content_lines.append(line)
110
-
111
-    with open('setup.py', 'w') as setup_file:
112
-        setup_file.write('\n'.join(new_content_lines))
113
-
114
-
115
-def commit_setup_py():
116
-    execute(['git', 'reset'])
117
-    execute(['git', 'add', 'setup.py'])
118
-
119
-    version = extract_version_from_setup_py_content()
120
-    execute(
121
-        ['git', 'commit', '-m', 'v{}'.format(version)]
122
-    )
123
-
124
-
125
-def check_branch(must_be_branch):
126
-    current_branch = execute(
127
-        ['git', 'rev-parse', '--abbrev-ref', 'HEAD']
128
-    ).strip().decode('utf-8')
129
-
130
-    if current_branch != must_be_branch:
131
-        print('ERR: Your are actually on branch {} and must be {}'.format(
132
-            current_branch,
133
-            must_be_branch,
134
-        ))
135
-        exit(1)
136
-
137
-
138
-def push_on_github(remote_name):
139
-    execute(
140
-        ['git', 'push', remote_name, 'master']
141
-    )
142
-
143
-
144
-def push_on_pypi():
145
-    execute(
146
-        ['python', 'setup.py', 'sdist', 'upload']
147
-    )
148
-
149
-
150
-def main():
151
-    parser = argparse.ArgumentParser()
152
-    parser.add_argument(
153
-        '--disable-version-increment',
154
-        '-d',
155
-        action='store_true',
156
-        dest='disable_version_increment',
157
-    )
158
-    args = parser.parse_args()
159
-
160
-    if not args.disable_version_increment:
161
-        must_be_branch = 'master'
162
-        remote_name = 'origin'
163
-
164
-        check_setup_py_clean()
165
-        check_branch(must_be_branch)
166
-
167
-        new_version_will_be = get_new_hapic_version()
168
-        actual_version = extract_version_from_setup_py_content()
169
-
170
-        if new_version_will_be != actual_version:
171
-            rewrite_setup_py_file(new_version_will_be)
172
-            commit_setup_py()
173
-            push_on_github(remote_name)
174
-
175
-    push_on_pypi()
176
-    actual_version = extract_version_from_setup_py_content()
177
-    print('Deployed version: {}'.format(actual_version))
178
-
179
-
180
-if __name__ == '__main__':
181
-    main()