SemVer or Semantic Versioning is an important tool to help us build large modular systems. Most modern programming languages have a package manager of some description to go with them. This lets you install dependencies easilly, and it allows those dependencies to have their own dependencies and so on. The advantage of this is that modules can share code, which saves time and speeds up bug fixing.
OK, so lets imagine your building a large web-app and you've got lots of dependencies because you know that's better than re-writing or copy and paste programming. You have broadly 3 options for how you lock down your dependency versions:
- Use
*to always get the latest - Use an exact version number to always stay on the same version