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