From f891334a0ddc34c69d00b44bb6c07f19fdeb6174 Mon Sep 17 00:00:00 2001 From: Rick Harris Date: Wed, 21 Mar 2018 12:47:45 -0500 Subject: [PATCH] Pipfile.lock hashes back to deterministic order The intent has been for hashes to be in a stable order to minimize diff noise. Commit 1fa3e2a567da779b0c081ac28893aca3353c0674 caused a regression here by converting to a set and back. This patch also removes unecessary `sorted` calls that were added in 4d8e01b80f1560ce0fc5535f2fc04bca8cf30927. Since sorting is done at the last possible moment, sorting beforehand is a waste. Fixes #1529 Fixes #1664 --- pipenv/core.py | 4 ++-- pipenv/utils.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pipenv/core.py b/pipenv/core.py index bb14bd02..d26356ca 100644 --- a/pipenv/core.py +++ b/pipenv/core.py @@ -1070,7 +1070,7 @@ def do_lock( {dep['name']: {'version': '=={0}'.format(dep['version'])}} ) # Add Hashes to lockfile - lockfile['develop'][dep['name']]['hashes'] = sorted(dep['hashes']) + lockfile['develop'][dep['name']]['hashes'] = dep['hashes'] # Add index metadata to lockfile. if 'index' in dep: lockfile['develop'][dep['name']]['index'] = dep['index'] @@ -1126,7 +1126,7 @@ def do_lock( {dep['name']: {'version': '=={0}'.format(dep['version'])}} ) # Add Hashes to lockfile - lockfile['default'][dep['name']]['hashes'] = sorted(dep['hashes']) + lockfile['default'][dep['name']]['hashes'] = dep['hashes'] # Add index metadata to lockfile. if 'index' in dep: lockfile['default'][dep['name']]['index'] = dep['index'] diff --git a/pipenv/utils.py b/pipenv/utils.py index 0f70f79b..8faa9d9f 100644 --- a/pipenv/utils.py +++ b/pipenv/utils.py @@ -496,7 +496,7 @@ def resolve_deps( except (ValueError, KeyError, ConnectionError, IndexError): if verbose: print('Error generating hash for {}'.format(name)) - collected_hashes = list(set(collected_hashes)) + collected_hashes = sorted(set(collected_hashes)) d = {'name': name, 'version': version, 'hashes': collected_hashes} if index: d.update({'index': index})