# Repository Migration Plan We need to figure out exactly how we’re going to move to the CaC/compliance-operator. ## Tasks - [x] Enable OpenShift CI on CaC/CO - [x] Merge https://github.com/openshift/compliance-operator/pull/822 - [x] Merge https://github.com/openshift/compliance-operator/pull/820 - [x] Close https://github.com/openshift/compliance-operator/pull/823 after CI reports a failure - [x] Merge https://github.com/openshift/compliance-operator/pull/824 - [x] Ensure CaC/CO has approvers file with valid users - [x] Sync changes from openshift/CO to CaC/CO - [x] Port open issues from openshift/CO to CaC/CO - [x] Mark openshift/CO as a read-only repository ## Open Questions - How are upstream builds going to work? - Should we still push content to Quay with each CaC commit so we're not completely reliant on GitHub images (thinking about outages)? - Yes, having content in two places is never a bad thing if it's free - How do we keep openshift/CO in sync with CaC/CO? - Create a `release-stream` branch in openshift/CO - It would be nice if the upstream (CaC/CO) release would... - Do we want to associate each upstream release to a commit of CaC/content? Today, if we released the CaC/CO, we would: 1. Create a branch for 0.1.51 (`release-v0.1.51`), tag it (`v0.1.51`), release 2. Sync the fork to openshift/CO, which should contain the new branch and tag 3. Downstream just continues doing what it does today (midstream would still need a pointer) Improvement: 1. In CaC/CO we make a `ocp-0.1` (e.g., `release-0.1`) branch. 2. When we release a new version on `0.1`, eg. `0.1.51`, the release PR is merged into master and tagged with `v0.1.51`. (no more `release-0.1.x` branches). 3. Fast-forward `ocp-0.1` to tag `v0.1.51` 4. Update midstream to point to CaC/CO `ocp-0.1` (only once) We can add `ocp-0.1` as a protected branch in CaC/CO It sounds like we have two processes 1. We need one process for releasing upstream 2. We have another process for actually updating the openshift/CO fork