Github#
The CESM project is managed through the GitHub online software development platform. The CESM Project is hosted under the Earth System Community Modeling Portal (ESCOMP) which is managed by the University Corporation for Atmospheric Research (UCAR). The ESCOMP portal and the CESM project are publicly available and do not require a Github account for read and download access. You can find information, track conversations, create issues, and learn lots about what’s going on with CESM development through the CESM GitHub repository and the associated wiki. CTSM is a subcomponent of CESM and it’s repository is also under the ESCOMP portal.
Note: In the tutorial, where git commands are needed we explicitly detail what commands to use. You will not need to use Github for other activities in this Tutorial. We do however suggest that in your own time you become familiar with Github, register as a Github user, and then become an active member of the CESM and CTSM user and development community. When you make a free account in GitHub, you can access numerous repositories for different software code development at NCAR and beyond. Github, ESCOMP, and the CESM project are vast and you can get lost in this material for hours, days, weeks or even years. Don’t go too far off the path in this tutorial as we are expecting that you will focus on learning other derecho and CTSM code download tasks.
What are Git and GitHub?#
Git is an open-source version control software to track your changes in the source code.
GitHub is an online software development platform. GitHub provides a centralized online service to host the source code and version control using Git. GitHub is used for storing, tracking, and collaborating on software projects. It makes it easy for developers to share code files and collaborate with fellow developers on open-source projects. GitHub also serves as a social networking site where developers can openly network, collaborate, and pitch their work. GitHub allows software developers (including scientists working on scientific software projects) to create remote, publicly available repositories on the cloud for free. A repository, or “repo” for short, is a coding project’s files and the revision history for each file.
Figure: Top Level Github Header
Learning all the tricks and features of Git and GitHub takes some time to figure out. Below are some links to GitHub tutorials that can help you become more familiar with this powerful tool.
ESCOMP#
The ESCOMP github organization is managed by UCAR and NCAR to organize and manage large, community-oriented earth system modeling projects of broad interest. As shown below there are many projects beyond CESM/CTSM managed under the ESCOMP organization. The component models used by CTSM (see the list in the figure below) are also hosted under the ESCOMP organization.
Figure: ESCOMP Github Header
CTSM and GitHub#
The CTSM Project has been hosted on Github since CLM5.0 under the ESCOMP organization. The CTSM Project contains all development and release code for all subsequent versions of CTSM. The CTSM GitHub repository has the tools for managing the external components that make up a CTSM model tag. Additionally, the documentation at this repository provides information about software requirements to run CTSM, developer guidelines, and a Quickstart guide to accessing CTSM through GitHub.
Note: CTSM6 and CESM3 documentation is still under active development. As a result, some of the documentation and examples might refer to CLM5.0 or CESM2. While there might be some implementation details that differ between CESM2 and CESM3 or CLM5 and CTSM6, the overall workflow remains similar. The CESM2 and CLM5 documentation is therefore still a useful reference for learning how to work with CTSM6.
Figure: CESM Project Github Header