CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering...
Transcript of CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering...
![Page 1: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/1.jpg)
CESM Transition to Git/GitHub
Bill Sacks CESM Software Engineering Group
With substantial contributions from Ben Andre
and also: Dave Bailey, Alice Bertini, Martyn Clark, Alice DuVivier, Jim Edwards, Chris Fischer, Steve Goldhaber, Erik Kluzek, Mike Levy,
Mariana Vertenstein, and others
![Page 2: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/2.jpg)
Why git/GitHub?
• Git via GitHub is becoming the standard for open source collaboration
• Great collaborative tools for code development and review
• Integration of code, issues and project management creates greater transparency
• Distributed version control makes it easier for anyone in the community to keep their developments in version control
![Page 3: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/3.jpg)
Key requirements for CESM components
• Each component has its own development repository
• Each component can bring in other external repositories (SVN and git mix)
‣ Component does not always control external repository
‣ Component migration to git should not require external repositories to move to git as well
• Each component needs flexibility to move to git on its own timeline
• If component development is required to be private, then maintain this in the GitHub migration
![Page 4: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/4.jpg)
Evolution to git
CESM TopCIMECAM• CHEM• CLUBB• CARMACLM (CTSM)• FATES• PTCLMPOP• MARBL• CVMixCICE5MOSARTCISMWW3MOM6CICE6
SVNGitSVNSVNSVNSVNSVNGitSVNSVNGitGitSVNSVNGitSVN
GitGitSVNSVNSVNSVNGitGitGitSVNGitGitGitGitGitSVN?
GitGitGitGit?GitSVN?GitGitGitSVNGitGitGitGitGitSVN?GitGit
Component Recently Now / CESM2.0 CESM2.1+
![Page 5: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/5.jpg)
manage_externals tool
• We evaluated various solutions to manage this collection of repositories in a CESM checkout
• Problems with existing git solutions (subtree, submodule, subrepo):
‣ No support for SVN externals
‣ To support standalone CAM and CLM workflows: Would require two repositories per component
‣ Various other issues
• Solution: developed a new tool: manage_externals
‣ https://github.com/NCAR/manage_externals/
‣ (May move to ESMCI)
![Page 6: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/6.jpg)
Demo
![Page 7: CESM Transition to Git/GitHubCESM Transition to Git/GitHub Bill Sacks CESM Software Engineering Group With substantial contributions from Ben Andre and also: Dave Bailey, Alice Bertini,](https://reader034.fdocuments.net/reader034/viewer/2022051823/5fee4695ce42c06ad7272732/html5/thumbnails/7.jpg)
Quick start
CESM on GitHub:https://github.com/escomp/cesm
gitclonehttps://github.com/escomp/cesm.gitmy_cesm_sandboxcdmy_cesm_sandboxgittag#listavailabletagsgitcheckout[sometag]./manage_externals/checkout_externals
Obtaining the code: