From: Daniel Martí Date: Sat, 12 Sep 2015 01:19:51 +0000 (-0700) Subject: Ensure that builds are always sorted when writing X-Git-Tag: 0.5.0~112 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=cd202e59b1e170e04e50019507f85350b8451b6b;p=fdroidserver.git Ensure that builds are always sorted when writing This might not be true if builds are appended by e.g. checkupdates --auto. This ensures that we sort them again before writing. --- diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 2afb590b..b6f5911d 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -602,6 +602,10 @@ def get_default_app_info_list(apps, metadatapath=None): return appid, thisinfo +def sorted_builds(builds): + return sorted(builds, key=lambda build: int(build['vercode'])) + + def post_metadata_parse(thisinfo): supported_metadata = app_defaults.keys() + ['comments', 'builds', 'id', 'metadatapath'] @@ -663,7 +667,7 @@ def post_metadata_parse(thisinfo): for build in thisinfo['builds']: fill_build_defaults(build) - thisinfo['builds'] = sorted(thisinfo['builds'], key=lambda build: int(build['vercode'])) + thisinfo['builds'] = sorted_builds(thisinfo['builds']) # Parse metadata for a single application. @@ -1082,7 +1086,7 @@ def write_metadata(dest, app): if app['Binaries']: writefield('Binaries') mf.write('\n') - for build in app['builds']: + for build in sorted_builds(app['builds']): if build['version'] == "Ignore": continue