There are even scenarios where I’ve seen Java projects check in their dependencies (in conservative industries) so this erodes the value of the numbers greatly.
We have a pretty big issue with duplication of effort. I was hoping for an article that would be a wake up call but instead it’s just measurement artifacts.
If you all grab it from the same repo (possibly through some sort of 'repo link' mechanism that keeps a local clone but is clearly marked as a clone, of course) then when a bug is fixed, it's fixed.
If you copy and paste it, suddenly every fix has to be done once per project using the library.
Nobody is supposed to modify those files. They’re just a local replica.
And no, I refuse to believe such requirement is hard to solve at all. I refuse to believe AWS doesn't create some container-like environment behind the scene for launching and running a function.
See https://forums.aws.amazon.com/thread.jspa?messageID=791221&t...
there was at least one point in time where that was the recommended strategy
This is pretty much what the golang world does (though now there are some tools that do a better job).
I have already been in a situation where a dependency version that I was locked to was simply removed from the official registry.
The right solution is to have your own registry or backup the archives of dependencies that you are using.
I think it is better to commit the archives rather than the whole node_modules as it does not produce a mess.
1. http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm
Other than a local npm mirror, what do you think is the best way to store artifacts for new builds? Vendoring code is not a bad solution if it permits new builds to occur even in the event of a package manager outage. I see vendoring code as the simplest solution for small companies who don't want the management overhead of running a local mirror of package managers.
That said, I'm very much open to learning a new technique for handling this problem.