Skip to content

fix file management policy

Guoqing Ge edited this page Jun 8, 2025 · 5 revisions

Level-1 Management:

.agent --> a link to FIX_RRFS

Any text fix files (less than 1.0 MB) will be tracked by git, just like script/config/etc files in the rrfs_workflow repo.

Any binary or large text file will be tracked through a link (not the file content itself).
Binary/large files themselves are stored at a fixed location (FIX_RRFS2/) and available on Jet, Hera, Orion, Gaea, Ursa, WCOSS in a similar setting. Synchronization between RDHPCS will be done manually by the fix-file managers.

FIX_RRFS Locations at different HPCs:

  • Jet: /lfs5/BMC/nrtrr/FIX_RRFS2
  • Hera: /scratch2/BMC/rtrr/FIX_RRFS2
  • Ursa: /scratch4/BMC/rtrr/FIX_RRFS2
  • Orion: /work/noaa/rtrr/FIX_RRFS2
  • Gaea: /gpfs/f6/bil-fire10-oar/world-shared/role.rrfsfix/FIX_RRFS2

The "init.sh" script under rrfs-workflow/workflow/ush will create correct links based on the current HPC platform.

  • The build step will run "init.sh" automatically.
  • If cloning the "rrfs-workflow" independently, one needs to run "init.sh" first
  • If fix/INIT_DONE exists, it means the local work copy has already initialized fix/.
  • setup_rocoto.py will also run "init.sh".

How to commit text fix files?

Same as committing all scripts/codes:

git add   
git commit   
git push   

How to commit binary/large fix files?

Follow the following examples:

  1. Add a timestamp to the binary/large files (or the parent directories) and copy to FIX_RRFS2/:
    FIX_RRFS2/static_bec/conus12km_L60.20250606/
    or
    FIX_RRFS2/meshes/conus3km.invariant.nc_L60_RAP.20250405

  2. make links through .agent:
    under rrfs-workflow/fix/meshes
    ln -snf ../.agent/meshes/conus3km.invariant.nc_L60_RAP.20250405 conus3km.invariant.nc_L60_RAP

git add fix/meshes/conus3km.invariant.nc_L60_RAP
git commit
git push

Change the FIX_RRFS location in users' own copies:

either

  1. modify workflow/ush/init.sh
    or
  2. ln -snf /to/your/FIX_RRFS fix/.agent (this will be overwritten when init.sh runs)

Don't use a linked directory as we cannot track individual files inside a linked directory.
Instead, create a corresponding directory and link files under that directory.

If we will not track individual files for a group of fix files in rrfs-workflow anyway, we can create a directory link (such as crtm)

Level-2 Management

This step utilizes the git-mega-rrfs tool to track the binary fix file change history in the FIX_RRFS2 repository. This step is behind the scenes and should be transparent to most developers/users. Only a few fix file managers have to deal with this.
If interested, check the git-mega-rrfs README.md for more information.

Clone this wiki locally