cesm transition to git/githubcesm transition to git/github bill sacks cesm software engineering...

7
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

Upload: others

Post on 11-Sep-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

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,

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,

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,

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,

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,

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,

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,

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: