|
| 1 | +.. _ref-dev-gfdl: |
| 2 | + |
| 3 | +Maintaining the GFDL MDTF-diagnostics installation |
| 4 | +================================================== |
| 5 | + |
| 6 | +Updating the main branch of the oar.gfdl.mdtf MDTF-diagnostics repo |
| 7 | +------------------------------------------------------------------- |
| 8 | + |
| 9 | +A copy of the NOAA-GFDL/MDTF-diagnostics package is located in /home/oar.gfdl.mdtf/mdtf |
| 10 | +and is maintained by developers with oar.gfdl.mdtf role account access. The |
| 11 | +central installation is synced with main branch at this time. To update the main branch, |
| 12 | +log into the role account, `cd` to the /home/oar.gfdl.mdtf/mdtf/MDTF-diagnostics, and run `git pull`. |
| 13 | + |
| 14 | +Maintaining miniconda3 environments |
| 15 | +----------------------------------- |
| 16 | + |
| 17 | +A central installation of miniconda3 with the MDTF-diagnostics _MDTF_base, _MDTF_python3_base, _MDTF_NCL_base, |
| 18 | +_MDTF_R_base, and _MDTF_dev environments located in /home/oar.gfdl.mdtf/miniconda3. To access conda binaries directly, |
| 19 | +open a bash shell and run `source ~/.bashrc`. The conda environments need to be updated |
| 20 | +when the environment files in MDTF-diagnostics/src/conda are changed on the main branch. After logging into the |
| 21 | +oar.gfdl.mdtf role account, `cd` to /home/oar.gfdl.mdtf/mdtf/MDTF-diagnostics, |
| 22 | +pull in changes to the MDTF-diagnostics repo, and run `/src/conda/conda_env_setup.sh -e [environment name] -- |
| 23 | +conda_root /home/oar.gfdl.mdtf/miniconda3 --env_dir /home/oar.gfdl.mdtf/miniconda3/envs`. |
| 24 | +`[environment name]` is "base" for the _MDTF_base environment, "dev" for the _MDTF_dev environment, |
| 25 | +"python3_base" for the _MDTF_python3_base environment, "NCL_base" for the _MDTF_NCL_base environment, and "R_base", |
| 26 | +for the _MDTF_R_base environment. |
| 27 | + |
| 28 | +Exising environments may require complete removal before updating, as continuously overwriting sometimes |
| 29 | +fails to update all packages. You can verify package versions in a particular environment match the specs in the |
| 30 | +corresponding environment file by running `conda activate _MDTF_[environment name]`, followed by `conda list`. |
| 31 | +To delete a conda environment, run `conda remove -n ENV_NAME --all`. Reinstall the environment using |
| 32 | +the `conda_env_setup.sh` call in the previous instructions. |
| 33 | + |
| 34 | +If miniconda3 itself requires updating, completely delete it by running `rm -rf /home/oar.gfdl.mdtf/miniconda3`, |
| 35 | +then remove the configuration files with `rm -rf ~/.condarc ~/.conda ~/.continuum`. |
| 36 | + |
| 37 | +Download a tarball of the latest miniconda3 version using `wget`, `curl`, etc..., and install it in |
| 38 | +the /home/oar.gfdl.mdtf directory using the `links and instructions |
| 39 | +<https://www.anaconda.com/docs/getting-started/miniconda/main>`__ on the Conda website. Reinstall the MDTF-diagnostics |
| 40 | +environments by running `/src/conda/conda_env_setup.sh --all --conda_root |
| 41 | +/home/oar.gfdl.mdtf/miniconda3 --env_dir /home/oar.gfdl.mdtf/miniconda3/envs`. Note that the _MDTF_dev environment |
| 42 | +needs to be installed with `-e dev`, as `--all` only installs the base environments. |
| 43 | + |
| 44 | +Adding copies of POD observational data to the oar.gfdl.mdtf/inputdata directory |
| 45 | +-------------------------------------------------------------------------------- |
| 46 | + |
| 47 | +Copies of POD bservational datasets are located the /home/oar.gfdl.mdtf/mdtf/inputdata directory. |
| 48 | +The data are available in the `NCAR MDTF obs_data collection on Globus |
| 49 | + <https://app.globus.org/file-manager?origin_id=87726236-cbdd-4a91-a904-7cc1c47f8912&origin_path=%2F&two_pane=false>`__. |
| 50 | +In addition, GFDL developers who are responsible for reviewing POD pull requests can ask POD developers to email |
| 51 | +tarballs with observational and test datasets. This may be necessary to debug issues with the framework that POD |
| 52 | +developers encounter when integrating their code into the package. |
0 commit comments