(Cards on the table: I've occasionally vendored stuff for a variety of reasons - because we needed to apply a patch that upstream didn't want or didn't accept quickly enough, or because we were stuck on an old version and needed to backport a fix - I've also on occasion copy-pasted 50-100 lines of code for a specific bit of functionality to avoid bringing in a 5MB library. These are exceptions - in the general case I prefer to depend on upstream wherever possible.)