# OADP Git repo branch and remote naming + go.mod sync
This document describes
- **remote naming convention** to make it possible to automte rebases across all the repositories in a similar way.
- **branch naming convention** of the oadp repositories to make it easier to automate dependency.
### Repositories
The following repositories will follow the branch and remote naming convention and the go.mod between them will be automatically synced
kubevirt/kubevirt-velero-plugin
migtools/oadp-non-admin
openshift/oadp-operator
openshift/openshift-velero-plugin
openshift/velero
openshift/velero-plugin-for-aws
openshift/velero-plugin-for-gcp
openshift/velero-plugin-for-legacy-aws
openshift/velero-plugin-for-microsoft-azure
openshift/oadp-must-gather /**
source code for the oadp-must-gather extracted
to a new repository from the oadp-operator
**/
### Remote naming convention
ENV Variables for those, with defaults to:
origin
- our personal fork
openshift
- always points to our own repository (our fork)
- example: ***github.com:migtools/kopia.git***
upstream
- only if our repository has an upstream (one-level fork)
- points to the immediate upstream repository we forked from
- example: ***github.com:project-velero/kopia.git***
grand-upstream
- only if this is a two-level fork (fork of a fork)
- points to the original "grandparent" repository (upstream of upstream)
- example: ***github.com:kopia/kopia.git***
### Branch naming convention
oadp-dev
- default primary branch in all repositories
oadp-x.y
- release branches, where x and y are major and minor version numbers
- examples: oadp-1.4, oadp-1.5, oadp-1.5.1
hotfix/oadp-x.y-jira_issue
- branches for urgent fixes
Branch names should be lowercase, use hyphens to separate words, no spaces.
Keep branch names concise but descriptive.
### go.mod updates
Current problem:
- go.mod isn't always up to date across all the repositories.
- The pointers in between modules which we maintain are also not proper - they do not always point to the internal forks of the repositories. E.g. kopia repository is pointing to the upstream.
Solution:
- Automate updates to check if proper go.mod versions are used, include this test as part of the `unit? test` and/or github action.
- Create migtools/oadp-umbrella where we will include automation via github action to ensure all the repositories and it's go.mod files are in sync.
### Reinventing Wheel?
perhaps look into dependabot {%preview https://github.com/vmware-tanzu/velero/blob/main/.github/dependabot.yml %}
https://github.com/openshift-eng/rebasebot