Skip to content

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:

  1. TethysDash manages clones of the lrauv-config and lrauv-mission repositories.

  2. The managed lrauv-config and lrauv-mission clones 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.).

  3. 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.

  4. 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.