|
| 1 | +# Moving `SPK` repo from `Catalystcode` to `Microsoft` org |
| 2 | + |
| 3 | +| Revision | Date | Author (s) | Remarks | |
| 4 | +| -------: | ------------ | ------------- | ------------- | |
| 5 | +| 0.1 | Mar-30, 2020 | Sarath, Andre | Initial Draft | |
| 6 | + |
| 7 | +## Overview |
| 8 | + |
| 9 | +This document describes high level steps to move Bedrock-CLI repo (formerly |
| 10 | +known as `SPK`) to the Microsoft organization in GitHub. |
| 11 | + |
| 12 | +The major change is to rename the CLI tool name in the existing repo from `spk` |
| 13 | +to a new name which is a non trivial and requires code changes in many files. |
| 14 | +The plan is to make the changes in the current repo which will simplify the |
| 15 | +final sync as we validate CI builds side-by-side for sometime in both repos. |
| 16 | + |
| 17 | +## In Scope |
| 18 | + |
| 19 | +Only renaming `spk` to a new name and moving the repo to Microsoft org is in |
| 20 | +scope and all other changes are defferred to post move. |
| 21 | + |
| 22 | +## Design Details |
| 23 | + |
| 24 | +1. Create a new repo `bedrock-cli` in `microsoft` org |
| 25 | + |
| 26 | + - Create a new repo `bedrock-cli` under `microsoft org`. The final repo name |
| 27 | + is TBD. |
| 28 | + - Perform initial sync between `spk` and `bedrock-cli` repos. |
| 29 | + |
| 30 | +2. Changes in `bedrock-cli` repo |
| 31 | + |
| 32 | + - Clone existing builds and pipelines in Azure DevOps with references to the |
| 33 | + new repo. |
| 34 | + - Change docs links in `Bedrock` repo to point to new repo location. |
| 35 | + - Configure new name in in the configuration according step 1 above. |
| 36 | + |
| 37 | +3. `SPK` name change |
| 38 | + |
| 39 | + - Review existing `spk` usage in various types of files such as source code, |
| 40 | + docs, pipeline yaml files, and etc. |
| 41 | + - Define one or more approaches to replace `spk` with new name that works |
| 42 | + better with various file types. For example: |
| 43 | + |
| 44 | + - replacing `spk` in code files from a configuration |
| 45 | + - using a generic name `cli` or new name in docs and pipeline yaml files |
| 46 | + where reading the new name from a configurable location is not feasible. |
| 47 | + - Changing `webpack.config.js` and/or `package.json` files for generated |
| 48 | + docs and binaries. |
| 49 | + |
| 50 | + - Create a plan based on approaches from the above activity. |
| 51 | + - Implement above plan to rename `spk` with a new name. |
| 52 | + |
| 53 | +4. Validate |
| 54 | + |
| 55 | + - All CI and other builds work connecting to the new repo. |
| 56 | + - All docs navigation without any broken links. |
| 57 | + - Validate `git` history in the new repo. |
| 58 | + |
| 59 | +5. Finalize |
| 60 | + |
| 61 | + - Determine the date for final sync and cut off. |
| 62 | + - Perform final sync. |
| 63 | + - Make current `spk` repo offline. |
| 64 | + |
| 65 | +6. Stabilization |
| 66 | + - Continue to monitor closely for any issues and address them for few days. |
| 67 | + |
| 68 | +## Dependencies |
| 69 | + |
| 70 | +1. The docs in `spk` and `bedrock` repos have references which needs to |
| 71 | + modified. |
| 72 | + |
| 73 | +2) The build pipelines in Azure DevOps are referencing `yaml` files in `spk` |
| 74 | + repo which needs to be modified. |
| 75 | + |
| 76 | +## Risks & Mitigations |
| 77 | + |
| 78 | +1. Docs and builds as listed in the above section may break as part of this |
| 79 | + move. |
| 80 | +2. The mitigation plan is to keep both repos side-by-side for few days by: |
| 81 | + - create new build definitions in Azure DevOps and validate. |
| 82 | + - change the doc links in `bedrock` repo and validate. |
| 83 | + |
| 84 | +## Appendix |
| 85 | + |
| 86 | +1. https://www.atlassian.com/git/tutorials/git-move-repository |
0 commit comments