Questions

  1. Why is software versioning important?
  2. What does a semantic version look like and when are its individual components incremented?
  3. Which component of a package's semantic version would you increment in the following cases?
    1. A new API is introduced.
    2. An existing API is modified and a new, required parameter is added to it.
    3. A fix for a security bug is committed.
  4. Name some alternative versioning schemes that we could use besides semantic versioning.
  5. What are the pros and cons of vendoring?
  6. Name some of the differences between the dep tool and Go modules.