|
1 | 1 | # Met Office Simulation Systems Git Migration Project |
2 | 2 |
|
3 | | -This project is aimed to migrate the Met Office simulation systems repositories |
4 | | -to Git ecosystem. See MetOffice/simulation-systems/discussions/337 for details. |
5 | | - |
6 | | -> [!NOTE] |
7 | | -> **Pre-requisites to run the migration script** |
8 | | -> |
9 | | -> - Read access to the Met Office Science Repository [MOSRS](https://code.metoffice.gov.uk/trac/home) or the Met Office internal mirror (~~`svn://fcm1`~~ `https://metomi/svn`). |
10 | | -> - Optional Write access to the [Met Office GitHub organisation](https://github.com/MetOffice) for push to remote (usually, an admin). |
11 | | -> - Tools: [`fcm`](https://metomi.github.io/fcm/doc/user_guide/introduction.html), [`git`](https://git-scm.com), [`gitlify`](https://github.com/MetOffice/gitlify), [`jq`](https://jqlang.org), and [`gh`](https://cli.github.com) available on the system. |
12 | | -
|
13 | | -## Checklist |
14 | | - |
15 | | -1. Test `gitlify` translation tool :white_check_mark: |
16 | | - - [x] Able to convert only svn trunk to Git. |
17 | | - - [x] Able to map svn revisions to Git tag. |
18 | | - - [x] Synchronise trunk updates locally in Git repositories. |
19 | | - - [x] Set-up a (`scron`) job to update code/tags routinely. |
20 | | - |
21 | | -2. Create/update GitHub repositories under [MetOffice](https://github.com/MetOffice) |
22 | | - - [x] `svn:um/main` (@trunk) → [um](https://github.com/MetOffice/um) (@trunk) |
23 | | - - [x] `svn:um/aux` (@trunk) → [um_aux](https://github.com/MetOffice/um_aux) (@trunk) |
24 | | - - [x] `svn:um/meta` (@trunk) → [um_meta](https://github.com/MetOffice/um_meta) (@trunk) |
25 | | - - [x] `svn:um/doc` (@trunk) → [um_doc](https://github.com/MetOffice/um_doc) (@trunk) |
26 | | - - [x] Compress/convert large graphics in the repository consulting the authors/IAO, if possible. |
27 | | - - [ ] Implement GitHub Action to build/deploy docs: test using [texlive docker image](https://hub.docker.com/r/texlive/texlive/tags?name=2018) |
28 | | - - [x] `svn:um/mule` (@trunk) → [mule](https://github.com/MetOffice/mule) (@trunk) |
29 | | - - [x] Contact [metomi](https://github.com/metomi/mule) owner to deprecate their repository. |
30 | | - - [x] `svn:gcom/main` (@trunk) → [gcom](https://github.com/MetOffice/gcom) (@trunk) |
31 | | - - [x] `svn:jules/main` (@trunk) → [jules](https://github.com/MetOffice/jules) (@trunk) |
32 | | - - [x] Check licence agreements, if going public. (_JULES in progress..._) |
33 | | - - [ ] Plan to migrate JULES documentation here (post migration). |
34 | | - - [x] `svn:socrates/main` (@trunk) → [socrates](https://github.com/MetOffice/socrates) (@trunk) |
35 | | - - [x] `svn:utils/shumlib` (@trunk) → [shumlib](https://github.com/MetOffice/shumlib) (@trunk) |
36 | | - - [x] Contact [metomi](https://github.com/metomi/shumlib) owner to deprecate their repository. |
37 | | - - [x] `svn:ukca/main` (@trunk) → [ukca](https://github.com/MetOffice/ukca) (@trunk) |
38 | | - - [x] `svn:monc/casim` (@trunk) → [casim](https://github.com/MetOffice/casim) (@trunk) |
39 | | - - [x] `svn:moci/main` (@trunk) → [moci](https://github.com/MetOffice/moci) (@trunk) |
40 | | - - [x] `svn:lfric/LFRic` (@trunk) → [lfric_core](https://github.com/MetOffice/lfric_core) (@trunk) |
41 | | - - [x] Repository already exists: ask for admin access to the repository. |
42 | | - - [x] `svn:lfric/GPL-utilities` (@trunk) → [rose_picker](https://github.com/MetOffice/rose_picker) (@trunk) |
43 | | - - [x] `svn:lfric_apps/main` (@trunk) → [lfric_apps](https://github.com/MetOffice/lfric_apps) (@trunk) |
44 | | - - [ ] Propose `lfric_core` as a submodule in this repository? (post migration) |
45 | | - - [x] `svn:monc/main` (@trunk) → [monc](https://github.com/MetOffice/monc) (@trunk) |
46 | | - - [x] Check `config.json` is correct and up-to-date with MOSRS revisions. |
47 | | - |
48 | | -3. General updates for all repositories (during migration) |
49 | | - - [x] All _private_ with specific team access only. |
50 | | - - [x] Repository Description. |
51 | | - - [ ] `README.md` (_in progress..._) |
52 | | - - [ ] `LICENCE` (_in progress..._) |
53 | | - - [ ] `CONTRIBUTING.md` (CLA) (_in progress..._) |
54 | | - - [ ] Automated Code Quality checks via GitHub Action (_in progress..._) |
55 | | - - [ ] Correct Copyright statements, particularly in planned open-source repositories. (_in progress..._) |
56 | | - - [ ] ~~Map SRS to GitHub username, where possible.~~ |
57 | | - |
58 | | -4. Testbed |
59 | | - - [ ] Create additional `main` branches. |
60 | | - - [ ] Test Fab (build tool) integration. (_post migration_) |
61 | | - - [ ] Test Simulation System workflows with GitHub. |
62 | | - - [x] Make sure tags/releases are still functional. |
63 | | - - [ ] Update Working practices. (_in progress..._) |
64 | | - - [ ] Allow limited number of developers to test their workflows. |
65 | | - - [ ] Add/update Templates. (_in progress..._) |
66 | | - |
67 | | -5. During SRS freeze |
68 | | - - [x] Test `trunk` and `main` are able to merge with different history. |
69 | | - - [ ] Merge `trunk` in _future_ default (`main`) and delete `trunk` |
70 | | - |
71 | | -6. Update communication plan |
72 | | - - [x] Update [Simulation Systems Discussion](https://github.com/MetOffice/simulation-systems/discussions/337) |
73 | | - - [x] Engage in [Simulation Systems Q&A](https://github.com/MetOffice/simulation-systems/discussions/categories/questions-and-answers) |
74 | | - |
75 | | -## FAQ |
76 | | - |
77 | | -<details> |
78 | | -<summary><b>How long it takes to convert svn repo to Git?</b></summary> |
79 | | -The listing below shows the time taken to convert trunk-only branches and |
80 | | -attach svn tags to the Git repository locally using <code>ssd_svn2git.sh</code> script. |
81 | | - |
82 | | -```sh |
83 | | -$ tail -n1 *.log |
84 | | -==> 20250330T025505_casim.log <== |
85 | | -2025-03-30 02:56:25 Done: casim in 00:01:20 |
86 | | - |
87 | | -==> 20250330T025625_moci.log <== |
88 | | -2025-03-30 02:59:42 Done: moci in 00:03:17 |
89 | | - |
90 | | -==> 20250330T025942_jules.log <== |
91 | | -2025-03-30 03:14:50 Done: jules in 00:15:08 |
92 | | - |
93 | | -==> 20250330T031450_socrates.log <== |
94 | | -2025-03-30 03:17:04 Done: socrates in 00:02:14 |
95 | | - |
96 | | -==> 20250330T031704_ukca.log <== |
97 | | -2025-03-30 03:18:06 Done: ukca in 00:01:02 |
98 | | - |
99 | | -==> 20250330T031806_shumlib.log <== |
100 | | -2025-03-30 03:19:40 Done: shumlib in 00:01:34 |
101 | | - |
102 | | -==> 20250330T031940_mule.log <== |
103 | | -2025-03-30 03:24:19 Done: mule in 00:04:39 |
104 | | - |
105 | | -==> 20250330T032419_um_aux.log <== |
106 | | -2025-03-30 03:29:52 Done: um_aux in 00:05:33 |
107 | | - |
108 | | -==> 20250330T032952_um_doc.log <== |
109 | | -2025-03-30 03:42:31 Done: um_doc in 00:12:39 |
110 | | - |
111 | | -==> 20250330T034231_um_meta.log <== |
112 | | -2025-03-30 03:46:47 Done: um_meta in 00:04:16 |
113 | | - |
114 | | -==> 20250330T034647_um.log <== |
115 | | -2025-03-30 05:04:04 Done: um in 01:17:17 |
116 | | - |
117 | | -==> 20250330T050404_gcom.log <== |
118 | | -2025-03-30 05:06:17 Done: gcom in 00:02:13 |
119 | | - |
120 | | -==> 20250330T050617_lfric_apps.log <== |
121 | | -2025-03-30 05:11:44 Done: lfric_apps in 00:05:27 |
122 | | - |
123 | | -==> 20250330T051145_lfric_core.log <== |
124 | | -2025-03-30 05:48:32 Done: lfric_core in 00:36:48 |
125 | | -``` |
126 | | -</details> |
127 | | - |
128 | | -<details> |
129 | | -<summary><b>What happens to a tag if the corresponding branch gets deleted?</b></summary> |
130 | | -A branch is simply a way to track a collection of commits. The tag and commit |
131 | | -would stull exist if the branch is deleted. Ref: https://github.com/orgs/community/discussions/23918. |
132 | | -</details> |
133 | | - |
134 | | -<details> |
135 | | -<summary><b>When will the developers get access to the GitHub repositories</b></summary> |
136 | | -Please refer to the timeline in [Simulation Systems Discussion](https://github.com/MetOffice/simulation-systems/discussions/337). |
137 | | -We will announce the opportunity to participate during the later part of migration testbed. |
138 | | -</details> |
| 3 | +See |
| 4 | +[Git Migration Wiki](https://github.com/MetOffice/simulation-systems/wiki/Git-Migration) |
0 commit comments