• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2"""Compatibility tests between last released and the current version.
3
4Usage: ./update_compatibility_version.py <MAJOR>.<MINOR>.<MICRO> [<RC version>]
5Example: ./update_compatibility_version.py 3.7.1
6"""
7
8from __future__ import print_function
9import re
10import sys
11
12if len(sys.argv) < 2 or len(sys.argv) > 3:
13  print("""
14[ERROR] Please specify a version.
15
16./update_compatibility_version.py.py <MAJOR>.<MINOR>.<MICRO> [<RC version>]
17
18Example:
19./update_compatibility_version.py.py 3.7.1 2
20""")
21  exit(1)
22
23NEW_VERSION = sys.argv[1]
24NEW_VERSION_INFO = NEW_VERSION.split('.')
25if len(NEW_VERSION_INFO) != 3:
26  print("""
27[ERROR] Version must be in the format <MAJOR>.<MINOR>.<MICRO>
28
29Example:
30./update_compatibility_version.py.py 3.7.3
31""")
32  exit(1)
33
34if len(sys.argv) > 2:
35  RC_VERSION = int(sys.argv[2])
36  # Do not update compatibility versions for rc release
37  if RC_VERSION != 0:
38    exit(0)
39
40
41def RewriteTextFile(filename, line_rewriter):
42  lines = open(filename, 'r').readlines()
43  updated_lines = []
44  for line in lines:
45    updated_lines.append(line_rewriter(line))
46  if lines == updated_lines:
47    print('%s was not updated. Please double check.' % filename)
48  f = open(filename, 'w')
49  f.write(''.join(updated_lines))
50  f.close()
51
52
53def ReplaceVersion(line):
54  return re.sub(r'LAST_RELEASED=.*$', 'LAST_RELEASED=%s' % NEW_VERSION, line)
55
56RewriteTextFile('tests.sh', ReplaceVersion)
57