-
Notifications
You must be signed in to change notification settings - Fork 4
Team‐Managed Dependencies
This is a quick guide on the internal dependencies developed and/or managed by the team. A full list is:
Note that the ubuntu repo is now deprecated. We now use the FetchContent
mechanism in CMake to download and install team dependencies.
Go to the FetchContent_Declare()
line in src/CMakeLists.txt
and upate the GIT_TAG
to point to the correct commit hash in the dependency repo. This will usually be the latest one.
⚠️ WARNING
The commit hash pointed to byGIT_TAG
must be on the master/main branch. If it points to a feature branch, then things may break in the future when that branch is deleted.
Suppose the latest commit in the HindsightCAN
repository is 7c22def7f5f7f05ffb33b9088d766ad2e83dd7b0
.
Then the FetchContent_Declare
line in src/CMakeLists.txt
would look like this:
FetchContent_Declare(
HindsightCAN
GIT_REPOSITORY https://github.com/huskyroboticsteam/HindsightCAN.git
GIT_TAG 7c22def7f5f7f05ffb33b9088d766ad2e83dd7b0
)
Then a new PR is merged in HindsightCAN
, and the latest commit is now 7397787fbb04687bf03c8fbac9a1db56f245fc9a
.
Then src/CMakeLists.txt
should be updated:
FetchContent_Declare(
HindsightCAN
GIT_REPOSITORY https://github.com/huskyroboticsteam/HindsightCAN.git
GIT_TAG 7397787fbb04687bf03c8fbac9a1db56f245fc9a
)
It's easy to use versions of dependencies that are still being developed, which is useful when new functionality needs to be tested in a dependent project. For example, if we're working on some new functionality in HindsightCAN
on a feature branch, then src/CMakeLists.txt
can be updated to point to a commit in that feature branch to install and test that functionality. This should be just for development, and when being merged, src/CMakeLists.txt
should always point to the master branch of its dependencies.