Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(253)

Side by Side Diff: Source/build/scripts/audit_runtime_enabled_features.py

Issue 339703002: Fix audit_runtime_enabled_features now that omahaproxy has headers in their CSV (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 import requests 3 import requests
4 import re 4 import re
5 from in_file import InFile 5 from in_file import InFile
6 6
7 BRANCH_FORMAT = "https://src.chromium.org/blink/branches/chromium/%s/%s" 7 BRANCH_FORMAT = "https://src.chromium.org/blink/branches/chromium/%s/%s"
8 TRUNK_PATH = "Source/platform/RuntimeEnabledFeatures.in" 8 TRUNK_PATH = "Source/platform/RuntimeEnabledFeatures.in"
9 TRUNK_URL = "https://src.chromium.org/blink/trunk/%s" % TRUNK_PATH 9 TRUNK_URL = "https://src.chromium.org/blink/trunk/%s" % TRUNK_PATH
10 10
(...skipping 29 matching lines...) Expand all
40 40
41 41
42 def stable_features(in_file): 42 def stable_features(in_file):
43 return [feature['name'] for feature in in_file.name_dictionaries if feature[ 'status'] == 'stable'] 43 return [feature['name'] for feature in in_file.name_dictionaries if feature[ 'status'] == 'stable']
44 44
45 45
46 def branch_from_version(version_string): 46 def branch_from_version(version_string):
47 # Format: 31.0.1650.63, the second digit was only ever used for M4 47 # Format: 31.0.1650.63, the second digit was only ever used for M4
48 # no clue what it's actually intended for. 48 # no clue what it's actually intended for.
49 version_regexp = r"(?P<major>\d+)\.\d+\.(?P<branch>\d+)\.(?P<minor>\d+)" 49 version_regexp = r"(?P<major>\d+)\.\d+\.(?P<branch>\d+)\.(?P<minor>\d+)"
50 return int(re.match(version_regexp, version_string).group('branch')) 50 match = re.match(version_regexp, version_string)
51 # if match == None, we'll blow up, so at least provide some debugging inform ation:
52 if not match:
53 print version_string
54 return int(match.group('branch'))
51 55
52 56
53 def print_feature_diff(added_features, removed_features): 57 def print_feature_diff(added_features, removed_features):
54 for feature in added_features: 58 for feature in added_features:
55 print "+ %s" % feature 59 print "+ %s" % feature
56 for feature in removed_features: 60 for feature in removed_features:
57 print "- %s" % feature 61 print "- %s" % feature
58 62
59 63
60 def historical_versions(os_string, channel): 64 def historical_versions(os_string, channel):
61 url_pattern = "http://omahaproxy.appspot.com/history?os=%s&channel=%s" 65 url_pattern = "http://omahaproxy.appspot.com/history?os=%s&channel=%s"
62 url = url_pattern % (os_string, channel) 66 url = url_pattern % (os_string, channel)
63 releases_csv = requests.get(url).text.strip("\n") 67 releases_csv = requests.get(url).text.strip("\n")
64 # Format: os,channel,version_string,date_string 68 # Format: os,channel,version_string,date_string
65 return [line.split(',')[2] for line in releases_csv.split("\n")] 69 lines = releases_csv.split('\n')
70 # As of June 2014, omahaproxy is now including headers:
71 assert(lines[0] == 'os,channel,version,timestamp')
72 # FIXME: We could replace this with more generic CSV parsing now that we hav e headers.
73 return [line.split(',')[2] for line in lines[1:]]
66 74
67 75
68 def feature_file_url_for_branch(branch): 76 def feature_file_url_for_branch(branch):
69 path = features_path(branch) 77 path = features_path(branch)
70 if not path: 78 if not path:
71 return None 79 return None
72 return BRANCH_FORMAT % (branch, path) 80 return BRANCH_FORMAT % (branch, path)
73 81
74 82
75 def feature_file_for_branch(branch): 83 def feature_file_for_branch(branch):
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 for version, feature_file in historical_tuples + active_tuples: 167 for version, feature_file in historical_tuples + active_tuples:
160 auditor.add_version(version, feature_file) 168 auditor.add_version(version, feature_file)
161 169
162 print "\nConsider for removal (have been stable for at least one release):" 170 print "\nConsider for removal (have been stable for at least one release):"
163 for feature in stale_features(historical_tuples): 171 for feature in stale_features(historical_tuples):
164 print feature 172 print feature
165 173
166 174
167 if __name__ == "__main__": 175 if __name__ == "__main__":
168 main() 176 main()
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698