Do you want to request a feature or report a bug?
What is the current behavior?
If a transitive dependency version is specified using
3.X.X) in multiple dependencies (and inconsistently, sometimes ‘x’) then lowercase and uppercase version are sorted randomly in the lockfile. This results in unwanted changes to the
yarn.lock file (and git marking it dirty)
If the current behavior is a bug, please provide the steps to reproduce.
git clone https://github.com/csabapalfi/yarn-undeterministic-sort yarn rm -rf node_modules && yarn
Repeat the last step a few times and you should see the yarn.lock file changing even if it doesn’t need to.
What is the expected behavior?
Depency version are always sorted the same way.
https://github.com/yarnpkg/yarn/blob/master/src/util/misc.js#L5 should work without lowercasing first but I’m not sure if any other usages of it depend on that.
Please mention your node.js, yarn and operating system version.
- yarn: 0.16.1
- node: v6.7.0, v6.9.0
- OSX: 10.11.6, 10.12