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