Skip to content

Git and LRAUV-TethysDash coordination

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

  2. The managed lrauv-config and lrauv-missions 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:

    • If there is an ongoing deployment, then the associated git tag is used.
    • Otherwise, by default, the "master" branch is used. Operators can also check out some other branch (using the 'Sync M/C' option in Dash4), which will then be used.

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])

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.