From d674e992e551375b996dbe831e4576a26aaaac9b Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Fri, 23 Feb 2018 09:56:45 -0500 Subject: [PATCH] centralize the managing version string for all platform --- dist/version | 1 + tools/make-chromium-meta.py | 29 ++++++++++++++++------------- tools/make-firefox-meta.py | 10 ++++++++-- tools/make-webext-meta.py | 15 ++++++--------- 4 files changed, 31 insertions(+), 24 deletions(-) create mode 100644 dist/version diff --git a/dist/version b/dist/version new file mode 100644 index 000000000..8b2e73123 --- /dev/null +++ b/dist/version @@ -0,0 +1 @@ +1.15.11.1 diff --git a/tools/make-chromium-meta.py b/tools/make-chromium-meta.py index 04990bfa7..f88dda0bf 100644 --- a/tools/make-chromium-meta.py +++ b/tools/make-chromium-meta.py @@ -9,24 +9,27 @@ if len(sys.argv) == 1 or not sys.argv[1]: raise SystemExit('Build dir missing.') proj_dir = os.path.join(os.path.split(os.path.abspath(__file__))[0], '..') +build_dir = os.path.abspath(sys.argv[1]) -manifest_in = {} -manifest_in_file = os.path.join(proj_dir, 'platform', 'chromium', 'manifest.json') -with open(manifest_in_file) as f1: - manifest_in = json.load(f1) +version = '' +with open(os.path.join(proj_dir, 'dist', 'version')) as f: + version = f.read().strip() + +manifest_out = {} +manifest_out_file = os.path.join(build_dir, 'manifest.json') +with open(manifest_out_file) as f: + manifest_out = json.load(f) + +manifest_out['version'] = version # Development build? If so, modify name accordingly. -match = re.search('^\d+\.\d+\.\d+\.\d+$', manifest_in['version']) +match = re.search('^\d+\.\d+\.\d+\.\d+$', version) if match: - build_dir = os.path.abspath(sys.argv[1]) dev_build = ' dev build' - manifest_out = {} - manifest_out_file = os.path.join(build_dir, 'manifest.json') - with open(manifest_out_file) as f2: - manifest_out = json.load(f2) manifest_out['name'] += dev_build manifest_out['short_name'] += dev_build manifest_out['browser_action']['default_title'] += dev_build - with open(manifest_out_file, 'w') as f2: - json.dump(manifest_out, f2, indent=2, separators=(',', ': '), sort_keys=True) - f2.write('\n') + +with open(manifest_out_file, 'w') as f: + json.dump(manifest_out, f, indent=2, separators=(',', ': '), sort_keys=True) + f.write('\n') diff --git a/tools/make-firefox-meta.py b/tools/make-firefox-meta.py index 875885fdb..8285e0943 100644 --- a/tools/make-firefox-meta.py +++ b/tools/make-firefox-meta.py @@ -61,15 +61,19 @@ rmtree(source_locale_dir) # update install.rdf proj_dir = pj(os.path.split(os.path.abspath(__file__))[0], '..') -chromium_manifest = pj(proj_dir, 'platform', 'chromium', 'manifest.json') +version = '' +with open(os.path.join(proj_dir, 'dist', 'version')) as f: + version = f.read().strip() + +chromium_manifest = pj(proj_dir, 'platform', 'chromium', 'manifest.json') with open(chromium_manifest, encoding='utf-8') as m: manifest = json.load(m) # https://developer.mozilla.org/en-US/Add-ons/AMO/Policy/Maintenance#How_do_I_submit_a_Beta_add-on.3F # "To create a beta channel [...] '(a|alpha|b|beta|pre|rc)\d*$' " -match = re.search('^(\d+\.\d+\.\d+)(\.\d+)$', manifest['version']) +match = re.search('^(\d+\.\d+\.\d+)(\.\d+)$', version) if match: buildtype = int(match.group(2)[1:]) if buildtype < 100: @@ -77,6 +81,8 @@ if match: else: builttype = 'rc' + str(buildtype - 100) manifest['version'] = match.group(1) + builttype +else: + manifest['version'] = version manifest['homepage'] = 'https://github.com/gorhill/uBlock' manifest['description'] = descriptions['en'] diff --git a/tools/make-webext-meta.py b/tools/make-webext-meta.py index b74b06e19..6fc340f4a 100644 --- a/tools/make-webext-meta.py +++ b/tools/make-webext-meta.py @@ -11,19 +11,16 @@ if len(sys.argv) == 1 or not sys.argv[1]: proj_dir = os.path.join(os.path.split(os.path.abspath(__file__))[0], '..') build_dir = os.path.abspath(sys.argv[1]) -# Import version number from chromium platform -chromium_manifest = {} +version = '' +with open(os.path.join(proj_dir, 'dist', 'version')) as f: + version = f.read().strip() + webext_manifest = {} - -chromium_manifest_file = os.path.join(proj_dir, 'platform', 'chromium', 'manifest.json') -with open(chromium_manifest_file) as f1: - chromium_manifest = json.load(f1) - webext_manifest_file = os.path.join(build_dir, 'manifest.json') with open(webext_manifest_file) as f2: webext_manifest = json.load(f2) -match = re.search('^(\d+\.\d+\.\d+)(\.\d+)$', chromium_manifest['version']) +match = re.search('^(\d+\.\d+\.\d+)(\.\d+)$', version) if match: buildtype = int(match.group(2)[1:]) if buildtype < 100: @@ -32,7 +29,7 @@ if match: builttype = 'rc' + str(buildtype - 100) webext_manifest['version'] = match.group(1) + builttype else: - webext_manifest['version'] = chromium_manifest['version'] + webext_manifest['version'] = version with open(webext_manifest_file, 'w') as f2: json.dump(webext_manifest, f2, indent=2, separators=(',', ': '), sort_keys=True)