Git and LRAUV-TethysDash coordination¶
Git tagging¶
Git tagging needs to be reflected consistently across three repositories:
Note
lrauv-application incorporates the other two via git submodules.
This consistency, which in particular is needed when preparing a vehicle or set of vehicles for deployment, is accomplished by using the same git tag for the three repos.
TethysDash itself only directly deals with lrauv-config and lrauv-mission,
and this is done via corresponding clones.
TethysDash¶
In concrete, from the TethysDash point of view:
-
TethysDash manages clones of the
lrauv-configandlrauv-missionrepositories. -
The managed
lrauv-configandlrauv-missionclones should not be directly altered in any way (except in cases like conflict resolution). For any artifact changes or additions that need to be reflected in the LRAUV-TethysDash system, operators should follow the regular procedure for that purpose (separate clone, PRs, etc.). -
All LRAUV-TethysDash coordination (in terms of the versions that should be used regarding mission scripts and vehicle configurations) is based on the state of the corresponding repositories at Bitbucket.
-
The concrete git reference to be used by TethysDash to resolve an artifact for a vehicle depends on whether there is an ongoing deployment for that vehicle:
- Ongoing deployment: TethysDash uses the associated git tag to resolve artifacts.
- No deployment: By default, TethysDash uses the "master" branch to resolve artifacts. Operators can also check out some other branch (using the 'Sync M/C' option in Dash4), which will then be used.
Overall workflow¶
The following diagram illustrates the overall workflow:
flowchart LR
Author -- artifacts --> Bitbucket
preparer["Vehicle preparer"] <-- artifacts --> Bitbucket
Bitbucket -- artifacts --> TethysDash([TethysDash]) --> DashUI([DashUI])
preparer -- artifacts ---> LRAUV([LRAUV])
preparer -- SyncMC --> TethysDash
Artifacts: Mission scripts and vehicle configurations.
Author: Adds or updates mission scripts or vehicle configurations. (For simplicity, the diagram does not detail any PR workflow that may be involved.)
Vehicle preparer: Prepares vehicle for a deployment, making sure that appropriate git references are in place for mission scripts and vehicle configurations.
Bitbucket: The central, common place for mission scripts and vehicle configurations.
Note
The LRAUV will output the application git tag name in the syslog.
The way the vehicles are tagged allows the preparer to see what branch of
lrauv-mission/lrauv-config is loaded based on the application tag name
if they were to browse for it in Bitbucket.