diff --git a/.circleci/config.yml b/.circleci/config.yml index ada1298639..8888e80562 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,8 +8,8 @@ commands: check_changes: steps: - run: | - if (test "$CIRCLE_BRANCH" = master || - git --no-pager diff --name-only origin/master... | + if (test "$CIRCLE_BRANCH" = main || + git --no-pager diff --name-only origin/main... | grep -q -E -f .circleci/install_triggers) then echo Running installation tests @@ -277,7 +277,7 @@ workflows: filters: branches: only: - - master + - main jobs: - test - test_installation diff --git a/.github/workflows/action-conda-build.yml b/.github/workflows/action-conda-build.yml index c744685d4c..fa345f48af 100644 --- a/.github/workflows/action-conda-build.yml +++ b/.github/workflows/action-conda-build.yml @@ -1,10 +1,10 @@ name: Conda-build -# runs on a push on master and at the end of every day +# runs on a push on main and at the end of every day on: push: branches: - - master + - main schedule: - cron: '0 0 * * *' diff --git a/.github/workflows/action-conda-publish.yml b/.github/workflows/action-conda-publish.yml index e05fe3a5d5..22c8dd8be9 100644 --- a/.github/workflows/action-conda-publish.yml +++ b/.github/workflows/action-conda-publish.yml @@ -6,7 +6,7 @@ on: # use this to test before actual release and publish push: branches: - - master + - main jobs: diff --git a/.github/workflows/action-install-from-conda.yml b/.github/workflows/action-install-from-conda.yml index 806ac20a72..d7b6060d29 100644 --- a/.github/workflows/action-install-from-conda.yml +++ b/.github/workflows/action-install-from-conda.yml @@ -1,10 +1,10 @@ name: Conda Base Install -# runs on a push on master and at the end of every day +# runs on a push on main and at the end of every day on: push: branches: - - master + - main schedule: - cron: '0 4 * * *' diff --git a/.github/workflows/action-install-from-source.yml b/.github/workflows/action-install-from-source.yml index 145a5e10f2..9b334a838c 100644 --- a/.github/workflows/action-install-from-source.yml +++ b/.github/workflows/action-install-from-source.yml @@ -1,10 +1,10 @@ name: Source Install -# runs on a push on master and at the end of every day +# runs on a push on main and at the end of every day on: push: branches: - - master + - main schedule: - cron: '0 0 * * *' diff --git a/.github/workflows/action-pypi-build-and-deploy.yml b/.github/workflows/action-pypi-build-and-deploy.yml index ca1e1cfe02..5e6eb5bfb0 100644 --- a/.github/workflows/action-pypi-build-and-deploy.yml +++ b/.github/workflows/action-pypi-build-and-deploy.yml @@ -6,7 +6,7 @@ on: # use this for testing push: branches: - - master + - main jobs: build-n-publish: diff --git a/.github/workflows/action-test-development.yml b/.github/workflows/action-test-development.yml index 37ff5ba8d1..ce34197042 100644 --- a/.github/workflows/action-test-development.yml +++ b/.github/workflows/action-test-development.yml @@ -1,17 +1,17 @@ # Action that runs the full development stack: # Steps (Python-only): # - creates esmvaltool conda environment and pip-installs esmvaltool -# - downloads latest master of esmvalcore and installs it in development mode +# - downloads latest main of esmvalcore and installs it in development mode # - runs tests of esmvaltool -# Triggered by a push to master and nightly +# Triggered by a push to main and nightly name: Develop Test -# runs on a push on master and at the end of every day +# runs on a push on main and at the end of every day on: push: branches: - - master + - main schedule: - cron: '0 0 * * *' diff --git a/.github/workflows/action-test.yml b/.github/workflows/action-test.yml index e0313fc224..90c4d220a4 100644 --- a/.github/workflows/action-test.yml +++ b/.github/workflows/action-test.yml @@ -1,10 +1,10 @@ name: Test -# runs on a push on master and at the end of every day +# runs on a push on main and at the end of every day on: push: branches: - - master + - main schedule: - cron: '0 0 * * *' diff --git a/README.md b/README.md index 4a509fa5a7..0c71873daa 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,14 @@ [![Documentation Status](https://readthedocs.org/projects/esmvaltool/badge/?version=latest)](https://esmvaltool.readthedocs.io/en/latest/?badge=latest) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3401363.svg)](https://doi.org/10.5281/zenodo.3401363) [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/ESMValGroup?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![CircleCI](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/master.svg?style=svg)](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/master) -[![example branch parameter](https://github.com/github/docs/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/ESMValGroup/ESMValTool/actions) +[![CircleCI](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/main.svg?style=svg)](https://circleci.com/gh/ESMValGroup/ESMValTool/tree/main) +[![example branch parameter](https://github.com/github/docs/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/ESMValGroup/ESMValTool/actions) [![Codacy Badge](https://app.codacy.com/project/badge/Coverage/79bf6932c2e844eea15d0fb1ed7e415c)](https://www.codacy.com/gh/ESMValGroup/ESMValTool?utm_source=github.com&utm_medium=referral&utm_content=ESMValGroup/ESMValTool&utm_campaign=Badge_Coverage) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/79bf6932c2e844eea15d0fb1ed7e415c)](https://www.codacy.com/gh/ESMValGroup/ESMValTool?utm_source=github.com&utm_medium=referral&utm_content=ESMValGroup/ESMValTool&utm_campaign=Badge_Grade) [![Docker Build Status](https://img.shields.io/docker/cloud/build/esmvalgroup/esmvaltool.svg)](https://hub.docker.com/r/esmvalgroup/esmvaltool/) [![Anaconda-Server Badge](https://anaconda.org/esmvalgroup/esmvaltool/badges/installer/conda.svg)](https://conda.anaconda.org/esmvalgroup) -![esmvaltoollogo](https://github.com/ESMValGroup/ESMValTool/blob/master/doc/sphinx/source/figures/ESMValTool-logo.png) +![esmvaltoollogo](https://github.com/ESMValGroup/ESMValTool/blob/main/doc/sphinx/source/figures/ESMValTool-logo.png) - [**Documentation**](https://docs.esmvaltool.org/en/latest/) - [**ESMValTool Website**](https://www.esmvaltool.org/) diff --git a/doc/sphinx/source/changelog.rst b/doc/sphinx/source/changelog.rst index 80c1cd67b4..6d07272838 100644 --- a/doc/sphinx/source/changelog.rst +++ b/doc/sphinx/source/changelog.rst @@ -49,7 +49,7 @@ Documentation - Adding tutorial links to documentation (`#1927 `__) `Birgit Hassler `__ - Added bibtex file for schlund20jgr (`#1928 `__) `Manuel Schlund `__ - Documentation contact added the actual email for the mailing list (`#1938 `__) `Valeriu Predoi `__ -- Make CircleCI badge specific to master branch (`#1831 `__) `Bouwe Andela `__ +- Make CircleCI badge specific to main branch (`#1831 `__) `Bouwe Andela `__ - Documentation on how to move code from a private repository to a public repository (`#1920 `__) `Birgit Hassler `__ - Refine pull request review guidelines (`#1924 `__) `Stef Smeets `__ - Update release schedule (`#1948 `__) `Klaus Zimmermann `__ @@ -104,7 +104,7 @@ Automatic testing - Fix conda installation test on CircleCI (`#1952 `__) `Bouwe Andela `__ - Github Actions: change time for cron job that installs from conda (`#1969 `__) `Valeriu Predoi `__ - CI upload relevant artifacts for test job (`#1999 `__) `Valeriu Predoi `__ -- Github Actions test that runs with the latest ESMValCore master (`#1989 `__) `Valeriu Predoi `__ +- Github Actions test that runs with the latest ESMValCore main (`#1989 `__) `Valeriu Predoi `__ - Introduce python 39 in Github Actions tests (`#2029 `__) `Valeriu Predoi `__ - Remove test for conda package installation on Python 3.6 (`#2033 `__) `Valeriu Predoi `__ - Update codacy coverage reporter to fix coverage (`#2039 `__) `Bouwe Andela `__ diff --git a/doc/sphinx/source/community/code_documentation.rst b/doc/sphinx/source/community/code_documentation.rst index 8613a26109..149694290d 100644 --- a/doc/sphinx/source/community/code_documentation.rst +++ b/doc/sphinx/source/community/code_documentation.rst @@ -27,7 +27,7 @@ New development should preferably be done in the GitHub repository. However, for scientists requiring confidentiality, private repositories are available, see :ref:`private_repository` for more information. -The default git branch is ``master``. Use +The default git branch is ``main``. Use this branch to create a new feature branch from and make a pull request against. This @@ -263,9 +263,9 @@ and is built using `Sphinx `_. There are two main ways of adding documentation: #. As written text in the directory - `doc/sphinx/source `__. + `doc/sphinx/source `__. When writing - `reStructuredText `_ + `reStructuredText `_ (``.rst``) files, please try to limit the line length to 80 characters and always start a sentence on a new line. This makes it easier to review changes to documentation on GitHub. @@ -275,7 +275,7 @@ There are two main ways of adding documentation: `docstrings `__ of Python modules, classes, and functions that are mentioned in - `doc/sphinx/source/api `__ + `doc/sphinx/source/api `__ are used to generate documentation. This results in the :ref:`api`. @@ -332,7 +332,7 @@ CircleCI_ will build the documentation with the command to catch mistakes that can be detected automatically. The configuration file for Sphinx_ is -`doc/shinx/source/conf.py `_. +`doc/shinx/source/conf.py `_. When reviewing a pull request, always check that the documentation checks shown below the pull request were successful. @@ -355,9 +355,9 @@ For example, ``:ref:`esmvalcore:recipe``` to link to There is a script that generates the navigation menu shown on the left when you view the documentation. This script is called -`doc/sphinx/source/gensidebar.py `_ +`doc/sphinx/source/gensidebar.py `_ in the ESMValTool repository and it should be identical to -`doc/gensidebar.py `_ +`doc/gensidebar.py `_ in the ESMValCore repository, or the sidebar will change when navigating from the ESMValTool documentation to the ESMValCore documentation and vice-versa. @@ -367,7 +367,7 @@ Tests ----- To check various aspects of the recipes and code, there tests available in the -`tests `__ +`tests `__ directory. Whenever you make a pull request or push new commits to an existing pull @@ -389,16 +389,16 @@ These nightly tests have been designed to mimic the installation procedures described in the documentation, e.g. in the :ref:`install` chapter. The nightly tests are run using both CircleCI and GitHub Actions, the result of the tests ran by CircleCI can be seen on the -`CircleCI project page `__ +`CircleCI project page `__ and the result of the tests ran by GitHub Actions can be viewed on the `Actions tab `__ of the repository. The configuration of the tests run by CircleCI can be found in the directory -`.circleci `__, +`.circleci `__, while the configuration of the tests run by GitHub Actions can be found in the directory -`.github/workflows `__. +`.github/workflows `__. When reviewing a pull request, always check that all test jobs on CircleCI_ were successful. @@ -420,7 +420,7 @@ name to the list of authors in ``CITATION.cff`` and generate the entry for the cffconvert --ignore-suspect-keys --outputformat zenodo --outfile .zenodo.json Note that authors of recipes and/or diagnostics also need to be added to the file -`esmvaltool/config-references.yml `__, +`esmvaltool/config-references.yml `__, see :ref:`recording-provenance` for more information. .. _dependencies: @@ -433,7 +433,7 @@ Before considering adding a new dependency, carefully check that the of the dependency you want to add and any of its dependencies are `compatible `__ with the -`Apache 2.0 `_ +`Apache 2.0 `_ license that applies to the ESMValTool. Note that GPL version 2 license is considered incompatible with the Apache 2.0 license, while the compatibility of GPL version 3 license with the Apache 2.0 @@ -500,8 +500,8 @@ You can attract the attention of the `@ESMValGroup/esmvaltool-coreteam`_ by mentioning them in the issue if it looks like no-one is working on solving the problem yet. The issue needs to be fixed in a separate pull request first. -After that has been merged into the ``master`` branch and all checks are green -again on the ``master`` branch, merge it into your own branch to get the tests +After that has been merged into the ``main`` branch and all checks are green +again on the ``main`` branch, merge it into your own branch to get the tests to pass. When reviewing a pull request, always make sure that all checks were successful. diff --git a/doc/sphinx/source/community/dataset.rst b/doc/sphinx/source/community/dataset.rst index 0a86be369f..23b9be561a 100644 --- a/doc/sphinx/source/community/dataset.rst +++ b/doc/sphinx/source/community/dataset.rst @@ -30,7 +30,7 @@ Testing ======= When contributing a new script, add an entry for the CMORized data to -`recipes/examples/recipe_check_obs.yml `__ +`recipes/examples/recipe_check_obs.yml `__ and run the recipe, to make sure the CMOR checks pass without warnings or errors. To test a pull request for a new CMORizer script: diff --git a/doc/sphinx/source/community/diagnostic.rst b/doc/sphinx/source/community/diagnostic.rst index 07344ad142..7f2fbd4216 100644 --- a/doc/sphinx/source/community/diagnostic.rst +++ b/doc/sphinx/source/community/diagnostic.rst @@ -18,7 +18,7 @@ Creating a recipe and diagnostic script(s) First create a recipe in esmvaltool/recipes to define the input data your analysis script needs and optionally preprocessing and other settings. Also create a script in the -`esmvaltool/diag_scripts `_ +`esmvaltool/diag_scripts `_ directory and make sure it is referenced from your recipe. The easiest way to do this is probably to copy the example recipe and diagnostic script and adjust those to your needs. @@ -28,17 +28,17 @@ However, NCL, R, and Julia scripts are also supported. Good example recipes for the different languages are: -- python: `esmvaltool/recipes/examples/recipe_python.yml `_ -- R: `esmvaltool/recipes/examples/recipe_r.yml `_ -- julia: `esmvaltool/recipes/examples/recipe_julia.yml `_ -- ncl: `esmvaltool/recipes/examples/recipe_ncl.yml `_ +- python: `esmvaltool/recipes/examples/recipe_python.yml `_ +- R: `esmvaltool/recipes/examples/recipe_r.yml `_ +- julia: `esmvaltool/recipes/examples/recipe_julia.yml `_ +- ncl: `esmvaltool/recipes/examples/recipe_ncl.yml `_ Good example diagnostics are: -- python: `esmvaltool/diag_scripts/examples/diagnostic.py `_ -- R: `esmvaltool/diag_scripts/examples/diagnostic.R `_ -- julia: `esmvaltool/diag_scripts/examples/diagnostic.jl `_ -- ncl: `esmvaltool/diag_scripts/examples/diagnostic.ncl `_ +- python: `esmvaltool/diag_scripts/examples/diagnostic.py `_ +- R: `esmvaltool/diag_scripts/examples/diagnostic.R `_ +- julia: `esmvaltool/diag_scripts/examples/diagnostic.jl `_ +- ncl: `esmvaltool/diag_scripts/examples/diagnostic.ncl `_ For an explanation of the recipe format, you might want to read about the :ref:`ESMValTool recipe ` and have a look at the @@ -47,7 +47,7 @@ For further inspiration, check out the already :ref:`available recipes and diagnostics `. There is a directory -`esmvaltool/diag_scripts/shared `_ +`esmvaltool/diag_scripts/shared `_ for code that is shared by many diagnostics. This directory contains code for creating common plot types, generating output file names, selecting input data, and other commonly needed functions. @@ -83,10 +83,10 @@ Recipes should have a page in the :ref:`recipes` chapter which describes what the recipe/diagnostic calculates. When adding a completely new recipe, please start by copying -`doc/sphinx/source/recipes/recipe_template.rst.template `_ +`doc/sphinx/source/recipes/recipe_template.rst.template `_ to a new file ``doc/sphinx/source/recipes/recipe_.rst`` and do not forget to add your recipe to the -`index `_. +`index `_. Fill all sections from the template: @@ -99,7 +99,7 @@ Fill all sections from the template: An example image for each type of plot produced by the recipe should be added to the documentation page to show the kind of output the recipe produces. The '.png' files can be stored in a subdirectory specific for the recipe under -`doc/sphinx/source/recipes/figures `_ +`doc/sphinx/source/recipes/figures `_ and linked from the recipe documentation page. A resolution of 150 `dpi `_ is recommended for these image files, as this is high enough for the images to look @@ -193,7 +193,7 @@ For each diagnostic in the recipe, ESMValCore supports the following additional - :code:`themes` a list of themes Please see the (installed version of the) file -`esmvaltool/config-references.yml `_ +`esmvaltool/config-references.yml `_ for all available information on each item. Provenance items provided by the diagnostic script @@ -218,7 +218,7 @@ It is also possible to add more information for the implemented diagnostics usin Arbitrarily named other items are also supported. Please see the (installed version of the) file -`esmvaltool/config-references.yml `_ +`esmvaltool/config-references.yml `_ for all available information on each item, see :ref:`esmvalcore:config-ref` for an introduction. In this file, the information is written in the form of ``key: value``. @@ -282,7 +282,7 @@ The ``provenance_record`` is a dictionary of provenance items, for example: } Have a look at the example Python diagnostic in -`esmvaltool/diag_scripts/examples/diagnostic.py `_ +`esmvaltool/diag_scripts/examples/diagnostic.py `_ for a complete example. Recording provenance in an NCL diagnostic script @@ -308,7 +308,7 @@ For example: metadata_att_as_array(info0, "filename")) Have a look at the example NCL diagnostic in -`esmvaltool/diag_scripts/examples/diagnostic.ncl `_ +`esmvaltool/diag_scripts/examples/diagnostic.ncl `_ for a complete example. Recording provenance in a Julia diagnostic script @@ -344,7 +344,7 @@ For example: provenance_records[output_file] = provenance_record Have a look at the example Julia diagnostic in -`esmvaltool/diag_scripts/examples/diagnostic.jl `_ +`esmvaltool/diag_scripts/examples/diagnostic.jl `_ for a complete example. Recording provenance in an R diagnostic script diff --git a/doc/sphinx/source/community/private_repository.rst b/doc/sphinx/source/community/private_repository.rst index b3716f6592..349036c38c 100644 --- a/doc/sphinx/source/community/private_repository.rst +++ b/doc/sphinx/source/community/private_repository.rst @@ -18,7 +18,7 @@ or 2. Make a branch to develop your recipe and diagnostic ====================================================== -``git checkout master`` +``git checkout main`` ``git pull`` diff --git a/doc/sphinx/source/community/release_strategy.rst b/doc/sphinx/source/community/release_strategy.rst index a568473812..0b6811de48 100644 --- a/doc/sphinx/source/community/release_strategy.rst +++ b/doc/sphinx/source/community/release_strategy.rst @@ -175,7 +175,7 @@ These are the detailed steps to take to make a release. 3. Some additional testing of ESMValCore - Run all the recipes (optionally with a reduced amount of data) to check that they still work - - If a bug is discovered that needs to be fixed before the release, a pull request can be made to the master branch to fix the bug. The person making the pull request can then ask the release manager to cherry-pick that commit into the release branch. + - If a bug is discovered that needs to be fixed before the release, a pull request can be made to the main branch to fix the bug. The person making the pull request can then ask the release manager to cherry-pick that commit into the release branch. 4. ESMValCore release @@ -193,7 +193,7 @@ These are the detailed steps to take to make a release. 6. Some additional testing of ESMValTool - Run all the recipes to check that they still work and ask authors to review the plots - - If a bug is discovered that needs to be fixed before the release, a pull request can be made to the master branch to fix the bug. The person making the pull request can then ask the release manager to cherry-pick that commit into the release branch. + - If a bug is discovered that needs to be fixed before the release, a pull request can be made to the main branch to fix the bug. The person making the pull request can then ask the release manager to cherry-pick that commit into the release branch. 7. ESMValTool release @@ -222,7 +222,7 @@ Procedure ~~~~~~~~~ 1. One or more issues are resolved that are deemed (by the core development team) to warrant a bugfix release. -2. A release branch is created from the last release tag and the commit that fixes the bug/commits that fix the bugs are cherry-picked into it from the master branch. +2. A release branch is created from the last release tag and the commit that fixes the bug/commits that fix the bugs are cherry-picked into it from the main branch. 3. Some additional testing of the release branch takes place. 4. The release takes place. @@ -245,7 +245,7 @@ The person in charge of making the release, both technically and organizationall Release branch ~~~~~~~~~~~~~~ -The release branch can be used to do some additional testing before the release, while normal development work continues in the master branch. It will be branched off from the master branch after the feature freeze and will be used to make the release on the release date. The only way to still get something included in the release after the feature freeze is to ask the release manager to cherry-pick a commit from the master branch into this branch. +The release branch can be used to do some additional testing before the release, while normal development work continues in the main branch. It will be branched off from the main branch after the feature freeze and will be used to make the release on the release date. The only way to still get something included in the release after the feature freeze is to ask the release manager to cherry-pick a commit from the main branch into this branch. .. _How to make a release: @@ -264,7 +264,7 @@ To make a new release of the package, follow these steps: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Check the ``nightly`` -`build on CircleCI `__ +`build on CircleCI `__ and the `GitHub Actions run `__. All tests should pass before making a release (branch). @@ -276,7 +276,7 @@ The version number is stored in ``esmvaltool/__init__.py``, ``package/meta.yaml``, ``CITATION.cff``. Make sure to update all files. Also update the release date in ``CITATION.cff``. See https://semver.org for more information on choosing a version number. -Make a pull request and get it merged into ``master``. +Make a pull request and get it merged into ``main``. 3. Add release notes ~~~~~~~~~~~~~~~~~~~~ @@ -287,11 +287,11 @@ previous release. Review the results, and if anything needs changing, change it on GitHub and re-run the script until the changelog looks acceptable. Copy the result to the file ``doc/sphinx/source/changelog.rst``. -Make a pull request and get it merged into ``master``. +Make a pull request and get it merged into ``main``. 4. Create a release branch ~~~~~~~~~~~~~~~~~~~~~~~~~~ -Create a branch off the ``master`` branch and push it to GitHub. +Create a branch off the ``main`` branch and push it to GitHub. Ask someone with administrative permissions to set up branch protection rules for it so only you and the person helping you with the release can push to it. Announce the name of the branch in an issue and ask the members of the @@ -301,7 +301,7 @@ to run their favourite recipe using this branch. 5. Cherry pick bugfixes into the release branch ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If a bug is found and fixed (i.e. pull request merged into the -``master`` branch) during the period of testing, use the command +``main`` branch) during the period of testing, use the command ``git cherry-pick COMMIT_HASH``, where ``COMMIT_HASH`` is the commit hash of the commit that needs to be cherry-picked, to include the commit for this bugfix into the release branch. @@ -309,7 +309,7 @@ Cherry-pick any new contributions in the order they were merged, to avoid conflicts. When the testing period is over, make a pull request to update the release notes with the latest changes (do not forget to include the pull -request itself into the changelog), get it merged into ``master`` and +request itself into the changelog), get it merged into ``main`` and cherry-pick it into the release branch. 6. Make the release on GitHub @@ -319,7 +319,7 @@ Do a final check that all tests on CircleCI and GitHub Actions completed successfully. Then click the `releases tab `__ -and create the new release from the release branch (i.e. not from ``master``). +and create the new release from the release branch (i.e. not from ``main``). The release tag always starts with the letter ``v`` followed by the version number, e.g. ``v2.1.0``. diff --git a/doc/sphinx/source/community/repository.rst b/doc/sphinx/source/community/repository.rst index 402f999320..d1e6c4a70a 100644 --- a/doc/sphinx/source/community/repository.rst +++ b/doc/sphinx/source/community/repository.rst @@ -20,17 +20,17 @@ The PRIVATE GitHub repository offers a central protected environment for ESMValT Both, the PUBLIC and the PRIVATE repository, contain the following kinds of branches: -* *MASTER BRANCH* (official releases), +* *MAIN BRANCH* (official releases), * *DEVELOPMENT BRANCH* (includes approved new contributions but version is not yet fully tested), * *FEATURE BRANCH* (development branches for new features and diagnostics created by developers, the naming convention for *FEATURE BRANCHES* is _). Access rights ============= -* Write access to the *MASTER* and *DEVELOPMENT BRANCH* in both, the PUBLIC and the PRIVATE GitHub repositories, is restricted to the :ref:`ESMValTool Core Development Team `. +* Write access to the *MAIN* and *DEVELOPMENT BRANCH* in both, the PUBLIC and the PRIVATE GitHub repositories, is restricted to the :ref:`ESMValTool Core Development Team `. * *FEATURE BRANCHES* in both the PUBLIC and the PRIVATE repository can be created by all members of the ESMValTool development team (i.e. members in the GitHub organization "ESMValGroup"). If needed, branches can be individually write-protected within each repository so that other developers cannot accidently push changes to these branches. -The *MASTER BRANCH* of the PRIVATE repository will be regularly synchronized with the *MASTER BRANCH* of the PUBLIC repository (currently by hand). This ensures that they are identical at all times (see schematic in Figure :numref:`fig-git`). The recommended workflow for members of the ESMValTool development team is to create additional *FEATURE BRANCHES* in either the PUBLIC or the PRIVATE repository, see further instructions below. +The *MAIN BRANCH* of the PRIVATE repository will be regularly synchronized with the *MAIN BRANCH* of the PUBLIC repository (currently by hand). This ensures that they are identical at all times (see schematic in Figure :numref:`fig-git`). The recommended workflow for members of the ESMValTool development team is to create additional *FEATURE BRANCHES* in either the PUBLIC or the PRIVATE repository, see further instructions below. .. _fig-git: @@ -97,7 +97,7 @@ This will clone the ESMValTool repository at GitHub to a local folder. You can n git status -You will see that you are on a branch called master and your local working copy is up to date with the remote repository. With +You will see that you are on a branch called main and your local working copy is up to date with the remote repository. With .. code:: bash diff --git a/doc/sphinx/source/community/review.rst b/doc/sphinx/source/community/review.rst index d1011a5398..4717a0b656 100644 --- a/doc/sphinx/source/community/review.rst +++ b/doc/sphinx/source/community/review.rst @@ -204,7 +204,7 @@ their opinion and try to find a solution. .. _`@ESMValGroup/science-reviewers`: https://github.com/orgs/ESMValGroup/teams/science-reviewers .. _`@ESMValGroup/esmvaltool-coreteam`: https://github.com/orgs/ESMValGroup/teams/esmvaltool-coreteam .. _`@remi-kazeroni`: https://github.com/remi-kazeroni -.. _`pull request template`: https://raw.githubusercontent.com/ESMValGroup/ESMValTool/master/.github/pull_request_template.md +.. _`pull request template`: https://raw.githubusercontent.com/ESMValGroup/ESMValTool/main/.github/pull_request_template.md .. _`Google meet`: https://meet.google.com .. _`Jitsi meet`: https://meet.jit.si .. _`git blame`: https://www.freecodecamp.org/news/git-blame-explained-with-examples/ diff --git a/doc/sphinx/source/community/upgrading.rst b/doc/sphinx/source/community/upgrading.rst index 1724243ea5..9ed7f8b5b1 100644 --- a/doc/sphinx/source/community/upgrading.rst +++ b/doc/sphinx/source/community/upgrading.rst @@ -4,7 +4,7 @@ Upgrading a namelist (recipe) or diagnostic to ESMValTool v2 ************************************************************ -This guide summarizes the main steps to be taken in order to port an ESMValTool namelist (now called **recipe**) and the corresponding diagnostic(s) from v1.0 to v2.0, hereafter also referred as the *"old"* and the *"new version"*, respectively. The new ESMValTool version is being developed in the public git branch ``master``. An identical version of this branch is maintained in the private repository as well and kept synchronized on an hourly basis. +This guide summarizes the main steps to be taken in order to port an ESMValTool namelist (now called **recipe**) and the corresponding diagnostic(s) from v1.0 to v2.0, hereafter also referred as the *"old"* and the *"new version"*, respectively. The new ESMValTool version is being developed in the public git branch ``main``. An identical version of this branch is maintained in the private repository as well and kept synchronized on an hourly basis. In the following, it is assumed that the user has successfully installed ESMValTool v2 and has a rough overview of its structure (see `Technical Overview `_). @@ -17,15 +17,15 @@ Do not forget to assign it to yourself. Create your own branch ====================== -Create your own branch from ``master`` for each namelist (recipe) to be ported: +Create your own branch from ``main`` for each namelist (recipe) to be ported: .. code-block:: bash - git checkout master + git checkout main git pull git checkout -b -``master`` contains only v2.0 under the ``./esmvaltool/`` directory. +``main`` contains only v2.0 under the ``./esmvaltool/`` directory. Convert xml to yml ================== @@ -214,4 +214,4 @@ If necessary, add or update the documentation for your recipes in the corrspondi Open a pull request =================== -Create a pull request on github to merge your branch back to ``master``, provide a short description of what has been done and nominate one or more reviewers. +Create a pull request on github to merge your branch back to ``main``, provide a short description of what has been done and nominate one or more reviewers. diff --git a/doc/sphinx/source/develop/dataset.rst b/doc/sphinx/source/develop/dataset.rst index 70ad5c4829..c6c70eeda6 100644 --- a/doc/sphinx/source/develop/dataset.rst +++ b/doc/sphinx/source/develop/dataset.rst @@ -33,7 +33,7 @@ data set for the use in ESMValTool. Most variables are defined in the CMIP data request and can be found in the CMOR tables in the folder `/esmvalcore/cmor/tables/cmip6/Tables/ -`_, +`_, differentiated according to the ``MIP`` they belong to. The tables are a copy of the `PCMDI `_ guidelines. If you find the variable in one of these tables, you can proceed to the next section. @@ -41,7 +41,7 @@ variable in one of these tables, you can proceed to the next section. If your variable is not available in the standard CMOR tables, you need to write a custom CMOR table entry for the variable as outlined below and add it to `/esmvalcore/cmor/tables/custom/ -`_. +`_. To create a new custom CMOR table you need to follow these guidelines: @@ -79,7 +79,7 @@ should then be stored then in the appropriate of these three folders. ==================================== There are many cmorizing scripts available in `/esmvaltool/cmorizers/obs/ -`_ +`_ where solutions to many kinds of format issues with observational data are addressed. Most of these scripts are written in NCL at the moment, but more and more examples for Python-based cmorizing scripts become available. @@ -100,12 +100,12 @@ and one written in NCL, are explained in more detail. Find here an example of a cmorizing script, written for the ``MTE`` dataset that is available at the MPI for Biogeochemistry in Jena: `cmorize_obs_mte.py -`_. +`_. All the necessary information about the dataset to write the filename correctly, and which variable is of interest, is stored in a separate configuration file: `MTE.yml -`_ +`_ in the directory ``ESMValTool/esmvaltool/cmorizers/obs/cmor_config/``. Note that the name of this configuration file has to be identical to the name of your data set. It is recommended that you set ``project`` to ``OBS6`` in the @@ -157,7 +157,7 @@ that code style). For example, the function ``_get_filepath`` converts the raw filepath to the correct one and the function ``_extract_variable`` extracts and saves a single variable from the raw data. -.. _utilities.py: https://github.com/ESMValGroup/ESMValTool/blob/master/esmvaltool/cmorizers/obs/utilities.py +.. _utilities.py: https://github.com/ESMValGroup/ESMValTool/blob/main/esmvaltool/cmorizers/obs/utilities.py 4.2 Cmorizer script written in NCL @@ -166,7 +166,7 @@ saves a single variable from the raw data. Find here an example of a cmorizing script, written for the ``ESACCI XCH4`` dataset that is available on the Copernicus Climate Data Store: `cmorize_obs_cds_xch4.ncl -`_. +`_. The first part of the script collects all the information about the dataset that are necessary to write the filename correctly and to understand which @@ -183,9 +183,9 @@ CMOR_TABLE. through the loading of the script interface.ncl_. There are similar functions available for python scripts. -.. _interface.ncl: https://github.com/ESMValGroup/ESMValTool/blob/master/esmvaltool/cmorizers/obs/interface.ncl +.. _interface.ncl: https://github.com/ESMValGroup/ESMValTool/blob/main/esmvaltool/cmorizers/obs/interface.ncl -.. _utilities.ncl: https://github.com/ESMValGroup/ESMValTool/blob/master/esmvaltool/cmorizers/obs/utilities.ncl +.. _utilities.ncl: https://github.com/ESMValGroup/ESMValTool/blob/main/esmvaltool/cmorizers/obs/utilities.ncl In the second part of the script each variable defined in ``VAR`` is separately extracted from the original data file and processed. Most parts of the code are @@ -234,7 +234,7 @@ script has been used to create the netCDF file. The correct structure of an observational data set is defined in `config-developer.yml -`_, +`_, and looks like the following: .. code-block:: console diff --git a/doc/sphinx/source/faq.rst b/doc/sphinx/source/faq.rst index dc954a83d2..8145557171 100644 --- a/doc/sphinx/source/faq.rst +++ b/doc/sphinx/source/faq.rst @@ -90,7 +90,7 @@ a symbolic link to it so it gets picked up at every re-run iteration: ln -sfT $(ls -1d ~/esmvaltool_output/recipe_example_* | tail -1) ~/esmvaltool_output/recipe_example_latest -.. uncomment when feature plopped in master +.. uncomment when feature plopped in main .. # Running a dry run .. ================= diff --git a/doc/sphinx/source/input.rst b/doc/sphinx/source/input.rst index 69494443f9..d1aa66fcd6 100644 --- a/doc/sphinx/source/input.rst +++ b/doc/sphinx/source/input.rst @@ -134,7 +134,7 @@ To use this functionality, users need to provide a path for the ``native6`` proj Currently, the native6 project only supports ERA5 and ERA5-Land data in the format defined in the `config-developer file `_. ERA5 data can be downloaded using `era5cli `_ To support other datasets as well, we need to make it possible to have a dataset specific DRS. This is still on the horizon. -While it is not strictly necessary, it may still be useful in some cases to create a local pool of cmorized observations. This can be achieved by using a cmorizer *recipe*. For an example, see `recipe_era5.yml `_. This recipe reads native, hourly ERA5 data, performs a daily aggregation preprocessor, and then calls a diagnostic that operates on the data. In this example, the diagnostic renames the data to the standard OBS6 format. The output are thus daily, cmorized ERA5 data, that can be used through the OBS6 project. As such, this example recipe does exactly the same as the cmorizer scripts described above: create a local pool of cmorized data. The advantage, in this case, is that the daily aggregation is performed only once, which can save a lot of time and compute if it is used often. +While it is not strictly necessary, it may still be useful in some cases to create a local pool of cmorized observations. This can be achieved by using a cmorizer *recipe*. For an example, see `recipe_era5.yml `_. This recipe reads native, hourly ERA5 data, performs a daily aggregation preprocessor, and then calls a diagnostic that operates on the data. In this example, the diagnostic renames the data to the standard OBS6 format. The output are thus daily, cmorized ERA5 data, that can be used through the OBS6 project. As such, this example recipe does exactly the same as the cmorizer scripts described above: create a local pool of cmorized data. The advantage, in this case, is that the daily aggregation is performed only once, which can save a lot of time and compute if it is used often. The example cmorizer recipe can be run like any other ESMValTool recipe: diff --git a/doc/sphinx/source/quickstart/installation.rst b/doc/sphinx/source/quickstart/installation.rst index e345c26dd9..5acc56e659 100644 --- a/doc/sphinx/source/quickstart/installation.rst +++ b/doc/sphinx/source/quickstart/installation.rst @@ -237,11 +237,11 @@ By far the easiest way to install these dependencies is to use conda_. For a minimal conda installation (recommended) go to https://conda.io/miniconda.html. After installing conda, download -`the file with the list of dependencies `_: +`the file with the list of dependencies `_: .. code-block:: bash - wget https://raw.githubusercontent.com/ESMValGroup/ESMValTool/master/environment.yml + wget https://raw.githubusercontent.com/ESMValGroup/ESMValTool/main/environment.yml and install these dependencies into a new conda environment with the command @@ -291,7 +291,7 @@ You can get the latest release with docker pull esmvalgroup/esmvaltool:stable -If you want to use the current master branch, use +If you want to use the current main branch, use .. code-block:: bash diff --git a/doc/sphinx/source/quickstart/running.rst b/doc/sphinx/source/quickstart/running.rst index 81e248fc47..882319b5c7 100644 --- a/doc/sphinx/source/quickstart/running.rst +++ b/doc/sphinx/source/quickstart/running.rst @@ -14,7 +14,7 @@ Running a recipe ================ An -`example recipe `_ +`example recipe `_ is available in the ESMValTool installation folder as ``examples/recipe_python.yml``. @@ -22,7 +22,7 @@ This recipe finds data from CanESM2 and MPI-ESM-LR for 2000 - 2002, extracts a single level (850 hPa), regrids it to a 1x1 degree mesh and runs a diagnostic script that creates some plots of Air temperature and precipitation flux. You can download the recipe from -`github `_ +`github `_ and save it in your project directory as (e.g.) ``recipe_python.yml`` and then run ESMValTool with diff --git a/doc/sphinx/source/recipes/recipe_autoassess_stratosphere.rst b/doc/sphinx/source/recipes/recipe_autoassess_stratosphere.rst index 66c1fbe939..c25258c047 100644 --- a/doc/sphinx/source/recipes/recipe_autoassess_stratosphere.rst +++ b/doc/sphinx/source/recipes/recipe_autoassess_stratosphere.rst @@ -202,7 +202,7 @@ on ``.pp`` data from UKESM1 ``u-bc179`` suite and are listed here to confirm the compliance between the ported Autoassess metric in ESMValTool and the original native metric. Another reference run comparing UKESM1-0-LL to the physical model HadGEM3-GC31-LL can be found -`here `_ . +`here `_ . .. figure:: /recipes/figures/autoassess_stratosphere/metrics.png diff --git a/doc/sphinx/source/recipes/recipe_examples.rst b/doc/sphinx/source/recipes/recipe_examples.rst index 965f1ef7d1..5c330775ae 100644 --- a/doc/sphinx/source/recipes/recipe_examples.rst +++ b/doc/sphinx/source/recipes/recipe_examples.rst @@ -15,7 +15,7 @@ It also produces a map of global temperature in January 2020. The recipe examples/recipe_extract_shape.yml produces a map of the mean temperature in the Elbe catchment over the years 2000 to 2002. Some example shapefiles for use with this recipe are available -`here `__, +`here `__, make sure to download all files with the same name but different extensions. For detailed instructions on obtaining input data, please refer to diff --git a/doc/sphinx/source/recipes/recipe_hydro_forcing.rst b/doc/sphinx/source/recipes/recipe_hydro_forcing.rst index 2d7b4eef9e..fd0007a444 100644 --- a/doc/sphinx/source/recipes/recipe_hydro_forcing.rst +++ b/doc/sphinx/source/recipes/recipe_hydro_forcing.rst @@ -30,7 +30,7 @@ Diagnostics are stored in esmvaltool/diag_scripts/hydrology/ User settings in recipe ----------------------- -All hydrological recipes require a shapefile as an input to select forcing data. This shapefile determines the shape of the basin for which the data will be cut out and processed. All recipes are tested with `the shapefiles `_ from HydroSHEDS that are used for the eWaterCycle project. In principle any shapefile can be used, for example, the freely available basin shapefiles from the `HydroSHEDS project `_. +All hydrological recipes require a shapefile as an input to select forcing data. This shapefile determines the shape of the basin for which the data will be cut out and processed. All recipes are tested with `the shapefiles `_ from HydroSHEDS that are used for the eWaterCycle project. In principle any shapefile can be used, for example, the freely available basin shapefiles from the `HydroSHEDS project `_. #. recipe ``hydrology/hydro_forcing.yml`` diff --git a/doc/sphinx/source/recipes/recipe_hydrology.rst b/doc/sphinx/source/recipes/recipe_hydrology.rst index 32547d74da..ad88430666 100644 --- a/doc/sphinx/source/recipes/recipe_hydrology.rst +++ b/doc/sphinx/source/recipes/recipe_hydrology.rst @@ -63,7 +63,7 @@ Diagnostics are stored in esmvaltool/diag_scripts/hydrology User settings in recipe ----------------------- -All hydrological recipes require a shapefile as an input to produce forcing data. This shapefile determines the shape of the basin for which the data will be cut out and processed. All recipes are tested with `the shapefiles `_ that are used for the eWaterCycle project. In principle any shapefile can be used, for example, the freely available basin shapefiles from the `HydroSHEDS project `_. +All hydrological recipes require a shapefile as an input to produce forcing data. This shapefile determines the shape of the basin for which the data will be cut out and processed. All recipes are tested with `the shapefiles `_ that are used for the eWaterCycle project. In principle any shapefile can be used, for example, the freely available basin shapefiles from the `HydroSHEDS project `_. #. recipe_pcrglobwb.yml diff --git a/doc/sphinx/source/recipes/recipe_oceans.rst b/doc/sphinx/source/recipes/recipe_oceans.rst index e49f49d47a..616534aa10 100644 --- a/doc/sphinx/source/recipes/recipe_oceans.rst +++ b/doc/sphinx/source/recipes/recipe_oceans.rst @@ -821,22 +821,22 @@ The file needs to be reformatted using the `cmorize_obs_py` script with output n .. Links: .. Recipes: -.. _recipe_ocean_amoc.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_amoc.yml -.. _recipe_ocean_example.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_example.yml -.. _recipe_ocean_scalar_fields.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_scalar_fields.yml -.. _recipe_ocean_bgc.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_bgc.yml -.. _recipe_ocean_quadmap.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_quadmap.yml -.. _recipe_ocean_Landschuetzer2016.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_Landschuetzer2016.yml -.. _recipe_ocean_multimap.yml: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/recipes/recipe_ocean_multimap.yml +.. _recipe_ocean_amoc.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_amoc.yml +.. _recipe_ocean_example.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_example.yml +.. _recipe_ocean_scalar_fields.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_scalar_fields.yml +.. _recipe_ocean_bgc.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_bgc.yml +.. _recipe_ocean_quadmap.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_quadmap.yml +.. _recipe_ocean_Landschuetzer2016.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_Landschuetzer2016.yml +.. _recipe_ocean_multimap.yml: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/recipes/recipe_ocean_multimap.yml .. Diagnostics: -.. _ocean: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/: -.. _diagnostic_maps.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_maps.py -.. _diagnostic_maps_quad.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_maps_quad.py -.. _diagnostic_model_vs_obs.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_model_vs_obs.py -.. _diagnostic_maps_multimodel.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_maps_multimodel.py -.. _diagnostic_profiles.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_profiles.py -.. _diagnostic_timeseries.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_timeseries.py -.. _diagnostic_transects.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_transects.py -.. _diagnostic_seaice.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_seaice.py -.. _diagnostic_tools.py: https://github.com/ESMValGroup/ESMValTool/tree/master/esmvaltool/diag_scripts/ocean/diagnostic_tools.py +.. _ocean: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/: +.. _diagnostic_maps.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_maps.py +.. _diagnostic_maps_quad.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_maps_quad.py +.. _diagnostic_model_vs_obs.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_model_vs_obs.py +.. _diagnostic_maps_multimodel.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_maps_multimodel.py +.. _diagnostic_profiles.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_profiles.py +.. _diagnostic_timeseries.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_timeseries.py +.. _diagnostic_transects.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_transects.py +.. _diagnostic_seaice.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_seaice.py +.. _diagnostic_tools.py: https://github.com/ESMValGroup/ESMValTool/tree/main/esmvaltool/diag_scripts/ocean/diagnostic_tools.py diff --git a/doc/sphinx/source/recipes/recipe_perfmetrics.rst b/doc/sphinx/source/recipes/recipe_perfmetrics.rst index ae3a4d5f89..f3323d39fc 100644 --- a/doc/sphinx/source/recipes/recipe_perfmetrics.rst +++ b/doc/sphinx/source/recipes/recipe_perfmetrics.rst @@ -125,7 +125,7 @@ Observations and reformat scripts --------------------------------- The following list shows the currently used observational data sets for this recipe with their variable names and the reference to their respective reformat scripts in parentheses. Please note that obs4mips data can be used directly without any reformating. For non-obs4mips data see headers of cmorization scripts (in `/esmvaltool/cmorizers/obs/ -`_) for downloading and processing instructions. +`_) for downloading and processing instructions. #. recipe_perfmetrics_CMIP5.yml * AIRS (hus - obs4mips) diff --git a/doc/sphinx/source/recipes/recipe_smpi.rst b/doc/sphinx/source/recipes/recipe_smpi.rst index 63d819a5ca..19ec65d0b7 100644 --- a/doc/sphinx/source/recipes/recipe_smpi.rst +++ b/doc/sphinx/source/recipes/recipe_smpi.rst @@ -73,7 +73,7 @@ Observations and reformat scripts --------------------------------- The following list shows the currently used observational data sets for this recipe with their variable names and the reference to their respective reformat scripts in parentheses. Please note that obs4mips data can be used directly without any reformating. For non-obs4mips data see headers of cmorization scripts (in `/esmvaltool/cmorizers/obs/ -`_) for downloading and processing instructions. +`_) for downloading and processing instructions. * ERA-Interim (hfds, hus, psl, ta, tas, tauu, tauv, ua, va - esmvaltool/utils/cmorizers/obs/cmorize_obs_ERA-Interim.ncl) * HadISST (sic, tos - reformat_scripts/obs/reformat_obs_HadISST.ncl) diff --git a/doc/sphinx/source/utils.rst b/doc/sphinx/source/utils.rst index 6407e7ed75..9696b69998 100644 --- a/doc/sphinx/source/utils.rst +++ b/doc/sphinx/source/utils.rst @@ -6,7 +6,7 @@ Utilities This section provides information on tools that are useful when developing ESMValTool. Tools that are specific to ESMValTool live in the -`esmvaltool/utils `_ +`esmvaltool/utils `_ directory, while others can be installed using the usual package managers. .. _pre-commit: @@ -75,7 +75,7 @@ or uninstall the pre-commit hook Note that the configuration of pre-commit lives in -`.pre-commit-config.yaml `_. +`.pre-commit-config.yaml `_. .. _nclcodestyle: @@ -132,7 +132,7 @@ To use it, run draft_release_notes.py ====================== -`draft_release_notes.py `__ +`draft_release_notes.py `__ is a script for drafting release notes based on the titles and labels of the GitHub pull requests that have been merged since the previous release. @@ -165,7 +165,7 @@ Converting Version 1 Namelists to Version 2 Recipes =================================================== The -`xml2yml `_ +`xml2yml `_ converter can turn the old xml namelists into new-style yml recipes. It is implemented as a xslt stylesheet that needs a processor that is xslt 2.0 capable. With this, you simply process your old