I have a project that need to create/read protobuf files generated by other projects.
I want dlprimitives to be able to read files formatted as ONNX protobuf and Caffe protobuf
What is the best way to include them into project:
My thoughts:
What would be better policy? How is it usually solved?
All of your approaches are valid.
Protocol buffers is by design forward- or backward-compatible, so updating manually is fine. You'll can mitigate the issue by documenting the task or providing a script / task.
External sub-projects is also fine, but you'll still have to update them manually (in the case of git submodules) and handle changed paths in the original project. You'll might want to consider contacting the projects and suggest splitting the format descriptions from the main project.
Usually proxies or caches help in that case. Very few projects build nowadays without external dependencies.
In the end you should consider what you intended audience is. Maybe you can get some feedback from them how they would use your project?