I read lot of docs about Go Dependency Management and I understand there are two systems for Go to manage them: * 1.5 System and before * 1.6 and later
The problem both try to address is: how to create a reproducible build with all the dependency at the exact commit level expected?
The first one basically has a Godeps folder with Godeps.json files where are reported the list of dependencies with their own commit level. Then with a command a developer can easily recreate the same dev environment.
The same thing happen with vendor system. This time we have a vendor folder with vendor.json file.
Now at my eyes these two systems look similar and it's not clear to me why the new system has been introduced. They apparently do the same thing and it's not clear to me which problem the first system had that second system solved.
Can someone explain to me this? Can someone also explain a real example that is problematic with first method and the second resolve? Thanks