I've inherited a project that has a codebase in src/
, but it also has precompiled binaries of dependency software in bin/
. I would like to move away from having precompiled software as part of our repository, since (1) it doesn't work for all users and (2) they won't be updated when the source code of their own repo changes.
I have two options:
- Use
git submodule
to have the source code of the dependency projects present in my repository in a way that keeps them updated. I like this idea, however it requires users to have to build not only our project but the external ones as well. Additionally, I'm not sure where to put the external projects. I'm thinkingexternal/
as suggested by the PFL - Require the users to build the dependencies themselves. This option keeps our repository and may be less confusing to users (who already submit issues to our repo when dependency software is failing). This is a minor gain since its not really a big deal to tend to these.
It seems to me like option 1 is the clear winner, however another post suggests otherwise. Am I missing something? What do people usually do in practice?