Open
Description
I've briefly discussed this on the development chat and I've created this issue so that we can properly evaluate whether we want to use submodules. Please share your thoughts.
Is your feature request related to a problem? Please describe.
Updating and verifying vendor code is fairly manual work.
Describe the solution you'd like
For "vendored" code we haven't modified we can use git submodules.
This would make it easier to update and verify dependencies as we no longer need to fiddle about with copying code and figuring out which files to keep. We would just need to update the submodule reference.
Some things to be aware of:
- We need to remind people to use
git pull --recursive
orgit pull --recursive --shallow-submodules
(the latter doing--depth=1
on submodules) and there are a couple other caveats - Most importantly, it must work with the build server (uses svn)
Additional context
- @sbx320 highlighted a potential problem with clone times
- @patrikjuvonen highlighted that we can fork dependencies that we modify and then submodule our forks
- This is a really good article about submodules - if you are not fluent with submodules I recommend you to download the repo in that article and follow along.