I've asked this on a couple of different social media sites without much response, so I figured I'd come straight to the source...
When using the drupal-composer/drupal-project Composer template for #drupal 8 projects, I’ve always wondered a bit about the webflo/drupal-core-require-dev dependency. I think I understand it, but looking for confirmation.
It is described as a virtual package, designed only to specify version constraints for #drupal core dependencies. Its webflo/drupal-core-strict sibling specifies the exact version of Drupal core dependencies to use - not a range like drupal-core-require-dev.
drupal-core-strict specifies the exact dependency versions listed in the composer.lock file in the corresponding Drupal core release.
drupal-core-require-dev specifies a range, so if a dependency has been updated after a Drupal core release, you could end up with a different version (which can cause issues) Do I have this all correct?
If I have this all correct, it would seem to me that using drupal-core-strict would be a better way to go for most projects.
Finally, what is the best process for modifying an existing project to switch from require-dev to strict?