Skip to content

Getting Started for Developers

JulieSchramm edited this page Jun 17, 2021 · 24 revisions

This page is under construction....

Getting started for developers

Development of the UFS Short-Range Weather App and its subcomponents such as the regional workflow is typically done on a user's fork. A fork is a copy of the authoritative repository and allows the user to make code changes without affecting the original repository. To set up for development work, a user will need to:

  1. Create a GitHub account

  2. Create fork(s) via GitHub. It is generally good practice to create a fork of the repository where you are doing development work, and any parent repository. For example, if you are modifying the regional_workflow repository, create a fork of the regional_workflow and the ufs-srweather-app repositories:

  3. Clone your fork of the ufs-srweather-app repository:

     git clone https://github.com/<your_github_username>/ufs-srweather-app.git

    Add the authoritative repository "upstream" to keep track of changes made to this repository:

    git remote add upstream https://github.com/ufs-community/ufs-srweather-app.git

    Confirm your remotes:

    git remote -v
      origin	https://github.com/<your_github_username>/ufs-srweather-app.git (fetch)
      origin	https://github.com/<your_github_username>/ufs-srweather-app.git (push)
      upstream	https://github.com/ufs-community/ufs-srweather-app.git (fetch)
      upstream	https://github.com/ufs-community/ufs-srweather-app.git (push)

    Check that you are on the develop branch:

    git branch -a
      * develop
      remotes/origin/HEAD -> origin/develop
      remotes/origin/RRFS_baseline
      remotes/origin/develop
      remotes/origin/release/public-v1

    If you will be making changes in the ufs-srweather-app repository, make a new branch for your local development:

    git checkout -b feature/my_new_work
  4. Run ./manage_externals/checkout_externals from the top directory to check out all of the submodules:

       Processing externals description file : Externals.cfg
       Checking status of externals: regional_workflow, ufs-weather-model, ufs_utils, emc_post, 
       Checking out externals: regional_workflow, ufs-weather-model, ufs_utils, emc_post,

Information about code development in the regional_workflow repository is here.

Information about code development in the UFS Weather Model is here.