Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: packagerEdge.py

Issue 29542744: Issue 5666 - Replace 4th component of version in AppxManifest.xml with 0 (Closed)
Patch Set: Removed redundant whitespaces Created Sept. 12, 2017, 9:39 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tests/test_packagerEdge.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # This Source Code Form is subject to the terms of the Mozilla Public 1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this 2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 4
5 import base64 5 import base64
6 import hashlib 6 import hashlib
7 import json 7 import json
8 import mimetypes 8 import mimetypes
9 import os 9 import os
10 import zipfile 10 import zipfile
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 files = [_make_blockmap_entry(n, d) for n, d in files.items()] 63 files = [_make_blockmap_entry(n, d) for n, d in files.items()]
64 return template.render(files=files).encode('utf-8') 64 return template.render(files=files).encode('utf-8')
65 65
66 66
67 def load_translation(files, locale): 67 def load_translation(files, locale):
68 """Load translation strings for locale from files.""" 68 """Load translation strings for locale from files."""
69 path = '{}/_locales/{}/messages.json'.format(EXTENSION_DIR, locale) 69 path = '{}/_locales/{}/messages.json'.format(EXTENSION_DIR, locale)
70 return json.loads(files[path]) 70 return json.loads(files[path])
71 71
72 72
73 def pad_version(version): 73 def fix_version(version):
74 """Make sure version number has 4 groups of digits.""" 74 """Prepare a version number for usage in AppxManifest.xml.
75 groups = (version.split('.') + ['0', '0', '0'])[:4] 75
76 return '.'.join(groups) 76 As required by the Windows Store, the returned version string has
77 four components with the last component being zero (e.g. 12.34.56.0).
78 """
79 components = version.split('.')[:3]
80 components.extend(['0'] * (4 - len(components)))
81 return '.'.join(components)
77 82
78 83
79 def create_appx_manifest(params, files, release_build=False): 84 def create_appx_manifest(params, files, release_build=False):
80 """Create AppxManifest.xml.""" 85 """Create AppxManifest.xml."""
81 params = dict(params) 86 params = dict(params)
82 metadata = params['metadata'] 87 metadata = params['metadata']
83 w = params['windows_version'] = {} 88 w = params['windows_version'] = {}
84 w['min'], w['max'] = metadata.get('compat', 'windows').split('/') 89 w['min'], w['max'] = metadata.get('compat', 'windows').split('/')
85 params['version'] = pad_version(params['version']) 90 params['version'] = fix_version(params['version'])
86 91
87 metadata_suffix = 'release' if release_build else 'devbuild' 92 metadata_suffix = 'release' if release_build else 'devbuild'
88 app_extension_id = 'extension_id_' + metadata_suffix 93 app_extension_id = 'extension_id_' + metadata_suffix
89 if metadata.has_option('general', app_extension_id): 94 if metadata.has_option('general', app_extension_id):
90 params['app_extension_id'] = metadata.get('general', app_extension_id) 95 params['app_extension_id'] = metadata.get('general', app_extension_id)
91 else: 96 else:
92 params['app_extension_id'] = 'EdgeExtension' 97 params['app_extension_id'] = 'EdgeExtension'
93 98
94 app_id = 'app_id_' + metadata_suffix 99 app_id = 'app_id_' + metadata_suffix
95 params['app_id'] = metadata.get('general', app_id) 100 params['app_id'] = metadata.get('general', app_id)
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 if metadata.has_section('appx_assets'): 190 if metadata.has_section('appx_assets'):
186 for name, path in metadata.items('appx_assets'): 191 for name, path in metadata.items('appx_assets'):
187 path = os.path.join(baseDir, path) 192 path = os.path.join(baseDir, path)
188 files.read(path, '{}/{}'.format(ASSETS_DIR, name)) 193 files.read(path, '{}/{}'.format(ASSETS_DIR, name))
189 194
190 files[MANIFEST] = create_appx_manifest(params, files, releaseBuild) 195 files[MANIFEST] = create_appx_manifest(params, files, releaseBuild)
191 files[BLOCKMAP] = create_appx_blockmap(files) 196 files[BLOCKMAP] = create_appx_blockmap(files)
192 files[CONTENT_TYPES] = create_content_types_map(files.keys() + [BLOCKMAP]) 197 files[CONTENT_TYPES] = create_content_types_map(files.keys() + [BLOCKMAP])
193 198
194 files.zip(outfile, compression=zipfile.ZIP_STORED) 199 files.zip(outfile, compression=zipfile.ZIP_STORED)
OLDNEW
« no previous file with comments | « no previous file | tests/test_packagerEdge.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld