title: Why is my yarn.lock file changing when running yarn install after incrementing version in package.json?
body: <p>I have read through the documentation on yarn commands and yarn.lock, and I was led to believe that the whole point of a yarn.lock file was to use the version specified in that file.</p>
  
  <p>What I was curious about was: when is the version specified in yarn.lock actually used? I manually changed the version of a package in package.json, and reran <code>yarn install</code>, and the yarn.lock file was updated to use the new version. I thought it would be locked, so that it didn't matter what new version was specified in package.json, as long as the yarn.lock specified a version for that package, it would use that older version.</p>
  
  <p>If this is how yarn.lock is supposed to work, then why not just specify the EXACT version in package.json, instead of using the ~ or ^ in front of the version numbers. Right now I have to do this in order to not change the yarn.lock file when running <code>yarn install</code> anyway.</p>
  
  <p>So when is the locked version actually being used/is this the correct way of using yarn.lock?</p>