Context
MVP uses manually-copied vendor libraries (bcrypt, uuid_gen) in include/net-net/vendor/.
This approach requires manual tracking of upstream changes and lacks version control integration.
No automated mechanism exists to check for updates or ensure consistent dependency versions across environments.
Motivation
- Version control: Git submodules provide explicit commit-hash tracking of dependencies
- Auditing: Changes to vendor code are tracked in project history
- Simplified updates:
git submodule update --remote handles upstream changes
- No manual file copying: Reduces human error and maintenance burden
- Offline builds: Dependencies available without internet after initial clone
- Industry standard: Used by major projects (LLVM, Chromium, Linux kernel)
Proposed Changes
Priority
Medium (improves maintainability and professionalism of dependency management)
References
Context
MVP uses manually-copied vendor libraries (bcrypt, uuid_gen) in
include/net-net/vendor/.This approach requires manual tracking of upstream changes and lacks version control integration.
No automated mechanism exists to check for updates or ensure consistent dependency versions across environments.
Motivation
git submodule update --remotehandles upstream changesProposed Changes
git submodule add https://github.com/hilch/Bcrypt.cpp.git include/net-net/vendor/bcryptCMakeLists.txtto reference submodule paths instead of direct file includes.gitmodulesconfiguration file with submodule trackinggit clone --recurse-submodulesinstructionsscripts/update_vendor.shhelper script to update all submodulesdocs/development.mdPriority
Medium (improves maintainability and professionalism of dependency management)
References