From 3f9f9d22a65299b48eac7de1700670c721676a07 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Tue, 29 Sep 2020 13:28:43 +0100 Subject: [PATCH 01/27] New requirements directory. --- .travis.yml | 2 +- readthedocs.yml | 2 +- environment.yml => requirements/environment.yml | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename environment.yml => requirements/environment.yml (100%) diff --git a/.travis.yml b/.travis.yml index dffed78d..5c3a9ca6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,7 @@ install: # Customise the test environment # ------------------------------ - > - conda env update -n ${ENV_NAME} --quiet --file environment.yml; + conda env update -n ${ENV_NAME} --quiet --file requirements/environment.yml; # Check installation of eccodes. python -m eccodes selfcheck; diff --git a/readthedocs.yml b/readthedocs.yml index 5d3b36c7..f2f6ff0b 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -1,2 +1,2 @@ conda: - file: environment.yml + file: requirements/environment.yml diff --git a/environment.yml b/requirements/environment.yml similarity index 100% rename from environment.yml rename to requirements/environment.yml From 21a762123626b1cc80ac14ea7db36b10fa712d80 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Tue, 29 Sep 2020 15:01:04 +0100 Subject: [PATCH 02/27] CI-specific conda environment files, in line with SciTools/iris#3812. --- .travis.yml | 21 ++++++++------------- readthedocs.yml | 2 +- requirements/ci/py36.yml | 19 +++++++++++++++++++ requirements/ci/py37.yml | 19 +++++++++++++++++++ requirements/ci/readthedocs.yml | 11 +++++++++++ 5 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 requirements/ci/py36.yml create mode 100644 requirements/ci/py37.yml create mode 100644 requirements/ci/readthedocs.yml diff --git a/.travis.yml b/.travis.yml index 5c3a9ca6..b47c3475 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ dist: xenial env: matrix: - - PYTHON_VERSION=3.6 - - PYTHON_VERSION=3.7 + - PYTHON_VERSION=36 + - PYTHON_VERSION=37 install: # Install miniconda @@ -12,11 +12,7 @@ install: - > echo "Installing miniconda"; export CONDA_BASE="https://repo.continuum.io/miniconda/Miniconda"; - if [[ "${PYTHON_VERSION}" == 2* ]]; then - wget --quiet ${CONDA_BASE}2-latest-Linux-x86_64.sh -O miniconda.sh; - else - wget --quiet ${CONDA_BASE}3-latest-Linux-x86_64.sh -O miniconda.sh; - fi; + wget --quiet ${CONDA_BASE}3-latest-Linux-x86_64.sh -O miniconda.sh; bash miniconda.sh -b -p ${HOME}/miniconda; export PATH="${HOME}/miniconda/bin:${PATH}"; @@ -28,16 +24,15 @@ install: conda config --set show_channel_urls True; conda config --add channels conda-forge; conda update --quiet conda; - ENV_NAME='test-environment'; - conda create --quiet -n ${ENV_NAME} python=${PYTHON_VERSION} mock filelock pep8; + ENV_NAME='iris-grib-dev'; + ENV_FILE='requirements/ci/py${PYTHON_VERSION}.yml'; + cat ${ENV_FILE}; + conda env create --quiet --file=${ENV_FILE}; source activate ${ENV_NAME}; - # Customise the test environment - # ------------------------------ - - > - conda env update -n ${ENV_NAME} --quiet --file requirements/environment.yml; # Check installation of eccodes. python -m eccodes selfcheck; + conda install --quiet pip; # Download and install iris-test-data # ----------------------------------- diff --git a/readthedocs.yml b/readthedocs.yml index f2f6ff0b..4653044c 100644 --- a/readthedocs.yml +++ b/readthedocs.yml @@ -1,2 +1,2 @@ conda: - file: requirements/environment.yml + file: requirements/ci/readthedocs.yml diff --git a/requirements/ci/py36.yml b/requirements/ci/py36.yml new file mode 100644 index 00000000..fb5bd465 --- /dev/null +++ b/requirements/ci/py36.yml @@ -0,0 +1,19 @@ +name: iris-grib-dev + +channels: + - conda-forge + +dependencies: + - python=3.6 + +# Core dependencies. + - iris>=2.4 + - python-eccodes + +# Optional dependencies. + - mo_pack + +# Test dependencies. + - mock + - filelock + - pep8 diff --git a/requirements/ci/py37.yml b/requirements/ci/py37.yml new file mode 100644 index 00000000..a18966ea --- /dev/null +++ b/requirements/ci/py37.yml @@ -0,0 +1,19 @@ +name: iris-grib-dev + +channels: + - conda-forge + +dependencies: + - python=3.7 + +# Core dependencies. + - iris>=2.4 + - python-eccodes + +# Optional dependencies. + - mo_pack + +# Test dependencies. + - mock + - filelock + - pep8 diff --git a/requirements/ci/readthedocs.yml b/requirements/ci/readthedocs.yml new file mode 100644 index 00000000..1ffd09d3 --- /dev/null +++ b/requirements/ci/readthedocs.yml @@ -0,0 +1,11 @@ +name: iris-grib-docs + +channels: + - conda-forge + +dependencies: + - python=3.7 + +# Core dependencies. + - iris>=2.4 + - python-eccodes From 7f50e64c76d32105b582047a394728d39b4d5cc7 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Tue, 29 Sep 2020 15:01:50 +0100 Subject: [PATCH 03/27] iris-grib.yml symlink file to aid in developer env setup. --- requirements/ci/iris-grib.yml | 1 + 1 file changed, 1 insertion(+) create mode 120000 requirements/ci/iris-grib.yml diff --git a/requirements/ci/iris-grib.yml b/requirements/ci/iris-grib.yml new file mode 120000 index 00000000..e9adb956 --- /dev/null +++ b/requirements/ci/iris-grib.yml @@ -0,0 +1 @@ +py37.yml \ No newline at end of file From b6a5183abe509f983fce0bdaba6c91d51bbb82a7 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Tue, 29 Sep 2020 15:36:57 +0100 Subject: [PATCH 04/27] PyPi improvements in line with SciTools/iris#3812. --- requirements/all.txt | 3 ++ requirements/core.txt | 4 ++ requirements/environment.yml | 7 ---- requirements/test.txt | 5 +++ setup.py | 78 ++++++++++++++++++++++-------------- 5 files changed, 59 insertions(+), 38 deletions(-) create mode 100644 requirements/all.txt create mode 100644 requirements/core.txt delete mode 100644 requirements/environment.yml create mode 100644 requirements/test.txt diff --git a/requirements/all.txt b/requirements/all.txt new file mode 100644 index 00000000..e776a67c --- /dev/null +++ b/requirements/all.txt @@ -0,0 +1,3 @@ +# Optional dependencies. + +mo_pack diff --git a/requirements/core.txt b/requirements/core.txt new file mode 100644 index 00000000..f88d210d --- /dev/null +++ b/requirements/core.txt @@ -0,0 +1,4 @@ +# Core dependencies. + +scitools-iris>=2.4 +eccodes-python diff --git a/requirements/environment.yml b/requirements/environment.yml deleted file mode 100644 index 6fc22df4..00000000 --- a/requirements/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -channels: - - conda-forge -dependencies: - - iris>=2.4 - - mo_pack - - python-eccodes - - pep8 diff --git a/requirements/test.txt b/requirements/test.txt new file mode 100644 index 00000000..da738e0b --- /dev/null +++ b/requirements/test.txt @@ -0,0 +1,5 @@ +# Test dependencies. + +mock +filelock +pep8 diff --git a/setup.py b/setup.py index 5db3255b..1259cd56 100644 --- a/setup.py +++ b/setup.py @@ -2,48 +2,59 @@ import os import os.path -import sys from setuptools import setup -import textwrap -name = 'iris_grib' - - -LONG_DESCRIPTION = textwrap.dedent(""" - Iris loading of GRIB files - ========================== - - With this package, iris is able to load GRIB files: - - ``` - my_data = iris.load(path_to_grib_file) - ``` - """) - - -here = os.path.abspath(os.path.dirname(__file__)) -pkg_root = os.path.join(here, name) +NAME = 'iris_grib' +PYPI_NAME = 'iris-grib' +PACKAGE_DIR = os.path.abspath(os.path.dirname(__file__)) +PACKAGE_ROOT = os.path.join(PACKAGE_DIR, NAME) packages = [] -for d, _, _ in os.walk(os.path.join(here, name)): +for d, _, _ in os.walk(os.path.join(PACKAGE_DIR, NAME)): if os.path.exists(os.path.join(d, '__init__.py')): - packages.append(d[len(here)+1:].replace(os.path.sep, '.')) + packages.append(d[len(PACKAGE_DIR) + 1:].replace(os.path.sep, '.')) + + +def pip_requirements(*args): + requirements = [] + for name in args: + fname = os.path.join( + PACKAGE_DIR, "requirements", "{}.txt".format(name) + ) + if not os.path.exists(fname): + emsg = ( + f"Unable to find the {name!r} requirements file at {fname!r}" + ) + raise RuntimeError(emsg) + with open(fname, "r") as fh: + for line in fh: + line = line.strip() + if not line or line.startswith("#"): + continue + requirements.append(line) + return requirements def extract_version(): version = None - fdir = os.path.dirname(__file__) - fnme = os.path.join(fdir, 'iris_grib', '__init__.py') - with open(fnme) as fd: - for line in fd: + fname = os.path.join(PACKAGE_DIR, 'iris_grib', '__init__.py') + with open(fname) as fi: + for line in fi: if (line.startswith('__version__')): _, version = line.split('=') - version = version.strip()[1:-1] # Remove quotation characters + version = version.strip()[1:-1] # Remove quotations break return version +def long_description(): + fname = os.path.join(PACKAGE_DIR, "README.md") + with open(fname, "rb") as fi: + result = fi.read().decode("utf-8") + return result + + def file_walk_relative(top, remove=''): """ Returns a generator of files from the top of the tree, removing @@ -58,13 +69,14 @@ def file_walk_relative(top, remove=''): setup_args = dict( - name = name, + name = PYPI_NAME, version = extract_version(), packages = packages, package_data = {'iris_grib': list(file_walk_relative('iris_grib/tests/results', remove='iris_grib/'))}, description = "GRIB loading for Iris", - long_description = LONG_DESCRIPTION, + long_description = long_description(), + long_description_content_type = "text/markdown", url = 'https://github.com/SciTools/iris-grib', author = 'UK Met Office', author_email = 'scitools-iris@googlegroups.com', @@ -78,10 +90,14 @@ def file_walk_relative(top, remove=''): 'Programming Language :: Python :: 3 :: Only', ], # NOTE: The Python 3 bindings to eccodes (eccodes-python) is available on - # PyPI, but the user is required to install eccodes itself manually. See + # PyPI, but the user is required to install eccodes itself manually. See # ECMWF ecCodes installation documentation for more information. - install_requires=['scitools-iris>=2.4.*'] + ['eccodes-python'], - test_suite = 'iris_grib.tests', + install_requires=pip_requirements("core"), + test_suite = f'{PYPI_NAME}.tests', + extras_require={ + "all": pip_requirements("all"), + "test": pip_requirements("test"), + }, ) From 92422d9660b67c1fc3bc2579e911d68372d8717e Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Tue, 29 Sep 2020 23:42:17 +0100 Subject: [PATCH 05/27] Test against latest Iris instead of latest Iris release. --- .travis.yml | 79 ++++++++++++++++++++++++++++------------ requirements/ci/py36.yml | 2 +- requirements/ci/py37.yml | 2 +- 3 files changed, 58 insertions(+), 25 deletions(-) diff --git a/.travis.yml b/.travis.yml index b47c3475..edf55bcf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,24 @@ env: - PYTHON_VERSION=37 install: + # Download iris-test-data + # ----------------------------------- + - > + export IRIS_TEST_DATA_REF="https://github.com/SciTools/iris-test-data/archive/master.zip"; + export IRIS_TEST_DATA_LOCATION="${HOME}/iris-test-data"; + mkdir ${IRIS_TEST_DATA_LOCATION}; + wget -O ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip ${IRIS_TEST_DATA_REF}; + unzip -q ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip -d ${IRIS_TEST_DATA_LOCATION}; + + # Download Iris latest + # -------------------- + - > + export IRIS_REF="https://github.com/SciTools/iris/archive/master.zip"; + export IRIS_LOCATION="${HOME}/iris"; + mkdir ${IRIS_LOCATION}; + wget -O ${IRIS_LOCATION}/iris.zip ${IRIS_REF}; + unzip -q ${IRIS_LOCATION}/iris.zip -d ${IRIS_LOCATION}; + # Install miniconda # ----------------- - > @@ -24,42 +42,57 @@ install: conda config --set show_channel_urls True; conda config --add channels conda-forge; conda update --quiet conda; - ENV_NAME='iris-grib-dev'; - ENV_FILE='requirements/ci/py${PYTHON_VERSION}.yml'; - cat ${ENV_FILE}; + + # Get environment spec and also include Iris dependencies. + - > + export ENV_NAME='iris-grib-dev'; + export ENV_FILE='requirements/ci/py${PYTHON_VERSION}.yml'; + IRIS_ENV_FILE='${IRIS_LOCATION}/requirements/ci/py${PYTHON_VERSION}.yml'; + echo '# IRIS DEPENDENCIES.' >> ${ENV_FILE}; + sed -ne '/dependencies:/,$ p' ${IRIS_ENV_FILE} | sed '1d' >> ${ENV_FILE}; + + # Create environment. + - > conda env create --quiet --file=${ENV_FILE}; source activate ${ENV_NAME}; - # Check installation of eccodes. - python -m eccodes selfcheck; - conda install --quiet pip; + # Check installation of eccodes. + - python -m eccodes selfcheck; - # Download and install iris-test-data - # ----------------------------------- + # Install pip, then coveralls. + - conda install --quiet pip; + - pip install coveralls; + + # Output environment debug info - > - export IRIS_TEST_DATA_REF="https://github.com/SciTools/iris-test-data/archive/master.zip"; - export IRIS_TEST_DATA_LOCATION="${HOME}/iris-test-data"; - mkdir ${IRIS_TEST_DATA_LOCATION}; - wget -O ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip ${IRIS_TEST_DATA_REF}; - unzip -q ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip -d ${IRIS_TEST_DATA_LOCATION}; + conda list -n ${ENV_NAME}; + conda info -a; - # Locate iris installation + # Configure and install Iris # ------------------------ - - export IRIS_DIR=$(python -c "import iris; import os.path; print(os.path.dirname(iris.__file__))") + - echo "Configuring and installing Iris."; - # Poke site.cfg to reference iris-test-data + # Set iris config paths. - > - SITE_CFG="${IRIS_DIR}/etc/site.cfg"; + export PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"; + SITE_CFG="{IRIS_LOCATION}/lib/iris/etc/site.cfg"; echo "[Resources]" > ${SITE_CFG}; - echo "test_data_dir = ${IRIS_TEST_DATA_LOCATION}/iris-test-data-master/test_data" >> ${SITE_CFG}; + echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> ${SITE_CFG}; + echo "doc_dir = $(pwd)/docs/iris" >> ${SITE_CFG}; + echo "[System]" >> ${SITE_CFG}; + echo "udunits2_path = ${PREFIX}/lib/libudunits2.so" >> ${SITE_CFG}; + + # Install iris. + - > + cd {IRIS_LOCATION}; + python setup.py --quiet install; # Install iris-grib itself # ------------------------ - - pip install . --no-deps - - # Install coveralls for test coverage - # ----------------------------------- - - pip install coveralls + - > + echo "Installing Iris-grib."; + cd ${HOME}; + pip install . --no-deps; # Summarise the environment # ------------------------- diff --git a/requirements/ci/py36.yml b/requirements/ci/py36.yml index fb5bd465..a6bfbd17 100644 --- a/requirements/ci/py36.yml +++ b/requirements/ci/py36.yml @@ -7,7 +7,7 @@ dependencies: - python=3.6 # Core dependencies. - - iris>=2.4 + # Iris should be installed manually in dev mode - enables working with latest code. - python-eccodes # Optional dependencies. diff --git a/requirements/ci/py37.yml b/requirements/ci/py37.yml index a18966ea..ab1ee026 100644 --- a/requirements/ci/py37.yml +++ b/requirements/ci/py37.yml @@ -7,7 +7,7 @@ dependencies: - python=3.7 # Core dependencies. - - iris>=2.4 + # Iris should be installed manually in dev mode - enables working with latest code. - python-eccodes # Optional dependencies. From e588c43ecedd20ca8202eb9687a2c99285366cc5 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 11:14:58 +0100 Subject: [PATCH 06/27] Added setup requirements. --- requirements/ci/py36.yml | 3 +++ requirements/ci/py37.yml | 3 +++ requirements/setup.txt | 4 ++++ setup.py | 2 +- 4 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 requirements/setup.txt diff --git a/requirements/ci/py36.yml b/requirements/ci/py36.yml index a6bfbd17..244223ef 100644 --- a/requirements/ci/py36.yml +++ b/requirements/ci/py36.yml @@ -6,6 +6,9 @@ channels: dependencies: - python=3.6 +# Setup dependencies. + - setuptools + # Core dependencies. # Iris should be installed manually in dev mode - enables working with latest code. - python-eccodes diff --git a/requirements/ci/py37.yml b/requirements/ci/py37.yml index ab1ee026..c384b11f 100644 --- a/requirements/ci/py37.yml +++ b/requirements/ci/py37.yml @@ -6,6 +6,9 @@ channels: dependencies: - python=3.7 +# Setup dependencies. + - setuptools + # Core dependencies. # Iris should be installed manually in dev mode - enables working with latest code. - python-eccodes diff --git a/requirements/setup.txt b/requirements/setup.txt new file mode 100644 index 00000000..fb07d5ac --- /dev/null +++ b/requirements/setup.txt @@ -0,0 +1,4 @@ +# Dependencies necessary to run setup.py of iris-grib +# --------------------------------------------------- + +setuptools diff --git a/setup.py b/setup.py index 1259cd56..12d5f185 100644 --- a/setup.py +++ b/setup.py @@ -92,7 +92,7 @@ def file_walk_relative(top, remove=''): # NOTE: The Python 3 bindings to eccodes (eccodes-python) is available on # PyPI, but the user is required to install eccodes itself manually. See # ECMWF ecCodes installation documentation for more information. - install_requires=pip_requirements("core"), + install_requires=pip_requirements("setup", "core"), test_suite = f'{PYPI_NAME}.tests', extras_require={ "all": pip_requirements("all"), From 45718b6c9a229a3c9debbb44f3bd0cee3683339e Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:09:26 +0100 Subject: [PATCH 07/27] Enable testing against latest OR released Iris. --- .travis.yml | 65 +++++++++++++++++++++++----------------- requirements/ci/py36.yml | 2 +- requirements/ci/py37.yml | 2 +- 3 files changed, 40 insertions(+), 29 deletions(-) diff --git a/.travis.yml b/.travis.yml index edf55bcf..0caaaedd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,10 @@ dist: xenial env: matrix: - - PYTHON_VERSION=36 - - PYTHON_VERSION=37 + - PYTHON_VERSION=36 LIMIT_TO_RELEASED_IRIS=false + - PYTHON_VERSION=36 LIMIT_TO_RELEASED_IRIS=true + - PYTHON_VERSION=37 LIMIT_TO_RELEASED_IRIS=false + - PYTHON_VERSION=37 LIMIT_TO_RELEASED_IRIS=true install: # Download iris-test-data @@ -16,15 +18,6 @@ install: wget -O ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip ${IRIS_TEST_DATA_REF}; unzip -q ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip -d ${IRIS_TEST_DATA_LOCATION}; - # Download Iris latest - # -------------------- - - > - export IRIS_REF="https://github.com/SciTools/iris/archive/master.zip"; - export IRIS_LOCATION="${HOME}/iris"; - mkdir ${IRIS_LOCATION}; - wget -O ${IRIS_LOCATION}/iris.zip ${IRIS_REF}; - unzip -q ${IRIS_LOCATION}/iris.zip -d ${IRIS_LOCATION}; - # Install miniconda # ----------------- - > @@ -34,22 +27,35 @@ install: bash miniconda.sh -b -p ${HOME}/miniconda; export PATH="${HOME}/miniconda/bin:${PATH}"; - # Configure the test environment - # ------------------------------ + # Create the test environment + # --------------------------- - > - echo "Configuring testing environment"; + echo "Creating testing environment"; conda config --set always_yes yes --set changeps1 no; conda config --set show_channel_urls True; conda config --add channels conda-forge; conda update --quiet conda; - # Get environment spec and also include Iris dependencies. + # Get environment spec. - > export ENV_NAME='iris-grib-dev'; export ENV_FILE='requirements/ci/py${PYTHON_VERSION}.yml'; - IRIS_ENV_FILE='${IRIS_LOCATION}/requirements/ci/py${PYTHON_VERSION}.yml'; - echo '# IRIS DEPENDENCIES.' >> ${ENV_FILE}; - sed -ne '/dependencies:/,$ p' ${IRIS_ENV_FILE} | sed '1d' >> ${ENV_FILE}; + + # Optionally download latest Iris from repo, + # and replace the Iris dependency with Iris' underlying dependencies. + - > + if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then + IRIS_REF='https://github.com/SciTools/iris/archive/master.zip'; + export IRIS_LOCATION='${HOME}/iris'; + mkdir ${IRIS_LOCATION}; + wget -O ${IRIS_LOCATION}/iris.zip ${IRIS_REF}; + unzip -q ${IRIS_LOCATION}/iris.zip -d ${IRIS_LOCATION}; + + IRIS_ENV_FILE='${IRIS_LOCATION}/requirements/ci/py${PYTHON_VERSION}.yml'; + sed -i '/- iris/d' ${ENV_FILE}; + echo '# IRIS DEPENDENCIES.' >> ${ENV_FILE}; + sed -ne '/dependencies:/,$ p' ${IRIS_ENV_FILE} | sed '1d' >> ${ENV_FILE}; + fi; # Create environment. - > @@ -63,14 +69,24 @@ install: - conda install --quiet pip; - pip install coveralls; - # Output environment debug info + # Output environment debug info. - > conda list -n ${ENV_NAME}; conda info -a; - # Configure and install Iris - # ------------------------ - - echo "Configuring and installing Iris."; + # Configure Iris + # -------------- + - echo "Configuring Iris"; + + # Optionally install latest Iris from downloaded source. + - > + if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then + cd {IRIS_LOCATION}; + python setup.py --quiet install; + fi; + + # Locate Iris installation. + - export IRIS_LOCATION=$(python -c "import iris; import os.path; print(os.path.dirname(iris.__file__))") # Set iris config paths. - > @@ -82,11 +98,6 @@ install: echo "[System]" >> ${SITE_CFG}; echo "udunits2_path = ${PREFIX}/lib/libudunits2.so" >> ${SITE_CFG}; - # Install iris. - - > - cd {IRIS_LOCATION}; - python setup.py --quiet install; - # Install iris-grib itself # ------------------------ - > diff --git a/requirements/ci/py36.yml b/requirements/ci/py36.yml index 244223ef..85bfcd5c 100644 --- a/requirements/ci/py36.yml +++ b/requirements/ci/py36.yml @@ -10,7 +10,7 @@ dependencies: - setuptools # Core dependencies. - # Iris should be installed manually in dev mode - enables working with latest code. + - iris>=2.4 - python-eccodes # Optional dependencies. diff --git a/requirements/ci/py37.yml b/requirements/ci/py37.yml index c384b11f..65f0f0b5 100644 --- a/requirements/ci/py37.yml +++ b/requirements/ci/py37.yml @@ -10,7 +10,7 @@ dependencies: - setuptools # Core dependencies. - # Iris should be installed manually in dev mode - enables working with latest code. + - iris>=2.4 - python-eccodes # Optional dependencies. From e3dcbc8291d81056fbd7e06012d995886cee52e2 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:11:37 +0100 Subject: [PATCH 08/27] Requirements readthedocs symlink. --- requirements/ci/readthedocs.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) mode change 100644 => 120000 requirements/ci/readthedocs.yml diff --git a/requirements/ci/readthedocs.yml b/requirements/ci/readthedocs.yml deleted file mode 100644 index 1ffd09d3..00000000 --- a/requirements/ci/readthedocs.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: iris-grib-docs - -channels: - - conda-forge - -dependencies: - - python=3.7 - -# Core dependencies. - - iris>=2.4 - - python-eccodes diff --git a/requirements/ci/readthedocs.yml b/requirements/ci/readthedocs.yml new file mode 120000 index 00000000..2239061d --- /dev/null +++ b/requirements/ci/readthedocs.yml @@ -0,0 +1 @@ +iris-grib.yml \ No newline at end of file From d4cf33dc3aeb33fe8c4fc37c88c3fcc29d0d0b99 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:29:16 +0100 Subject: [PATCH 09/27] Travis consistent double quotes. --- .travis.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0caaaedd..f2aae328 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,23 +38,23 @@ install: # Get environment spec. - > - export ENV_NAME='iris-grib-dev'; - export ENV_FILE='requirements/ci/py${PYTHON_VERSION}.yml'; + export ENV_NAME="iris-grib-dev"; + export ENV_FILE="requirements/ci/py${PYTHON_VERSION}.yml"; # Optionally download latest Iris from repo, # and replace the Iris dependency with Iris' underlying dependencies. - > if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then - IRIS_REF='https://github.com/SciTools/iris/archive/master.zip'; - export IRIS_LOCATION='${HOME}/iris'; + IRIS_REF="https://github.com/SciTools/iris/archive/master.zip"; + export IRIS_LOCATION="${HOME}/iris"; mkdir ${IRIS_LOCATION}; wget -O ${IRIS_LOCATION}/iris.zip ${IRIS_REF}; unzip -q ${IRIS_LOCATION}/iris.zip -d ${IRIS_LOCATION}; - IRIS_ENV_FILE='${IRIS_LOCATION}/requirements/ci/py${PYTHON_VERSION}.yml'; - sed -i '/- iris/d' ${ENV_FILE}; - echo '# IRIS DEPENDENCIES.' >> ${ENV_FILE}; - sed -ne '/dependencies:/,$ p' ${IRIS_ENV_FILE} | sed '1d' >> ${ENV_FILE}; + IRIS_ENV_FILE="${IRIS_LOCATION}/requirements/ci/py${PYTHON_VERSION}.yml"; + sed -i "/- iris/d" ${ENV_FILE}; + echo "# IRIS DEPENDENCIES." >> ${ENV_FILE}; + sed -ne "/dependencies:/,$ p" ${IRIS_ENV_FILE} | sed "1d" >> ${ENV_FILE}; fi; # Create environment. From 64eedb7739849bee4ca2859cdb6f5c73acaad044 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:36:48 +0100 Subject: [PATCH 10/27] Corrected setup README link. --- setup.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 12d5f185..1bb30226 100644 --- a/setup.py +++ b/setup.py @@ -49,7 +49,7 @@ def extract_version(): def long_description(): - fname = os.path.join(PACKAGE_DIR, "README.md") + fname = os.path.join(PACKAGE_DIR, "README.rst") with open(fname, "rb") as fi: result = fi.read().decode("utf-8") return result @@ -76,7 +76,7 @@ def file_walk_relative(top, remove=''): remove='iris_grib/'))}, description = "GRIB loading for Iris", long_description = long_description(), - long_description_content_type = "text/markdown", + long_description_content_type = "text/x-rst", url = 'https://github.com/SciTools/iris-grib', author = 'UK Met Office', author_email = 'scitools-iris@googlegroups.com', From 0a63bb0ffb355c3c449d6519fa4569e713a1de84 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:40:18 +0100 Subject: [PATCH 11/27] Iris location fix. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index f2aae328..bb5a3acd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -86,12 +86,12 @@ install: fi; # Locate Iris installation. - - export IRIS_LOCATION=$(python -c "import iris; import os.path; print(os.path.dirname(iris.__file__))") + - export IRIS_DIR=$(python -c "import iris; import os.path; print(os.path.dirname(iris.__file__))") # Set iris config paths. - > export PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"; - SITE_CFG="{IRIS_LOCATION}/lib/iris/etc/site.cfg"; + SITE_CFG="{IRIS_DIR}/lib/iris/etc/site.cfg"; echo "[Resources]" > ${SITE_CFG}; echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> ${SITE_CFG}; echo "doc_dir = $(pwd)/docs/iris" >> ${SITE_CFG}; From adc972f26400c715a546379b96ccd97536ef4c2f Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:47:37 +0100 Subject: [PATCH 12/27] Iris location fix. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index bb5a3acd..451f9331 100644 --- a/.travis.yml +++ b/.travis.yml @@ -91,7 +91,7 @@ install: # Set iris config paths. - > export PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"; - SITE_CFG="{IRIS_DIR}/lib/iris/etc/site.cfg"; + SITE_CFG="{IRIS_DIR}/etc/site.cfg"; echo "[Resources]" > ${SITE_CFG}; echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> ${SITE_CFG}; echo "doc_dir = $(pwd)/docs/iris" >> ${SITE_CFG}; From 75389f0eadabf36ae51c01dd00628519bda5a87e Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:49:10 +0100 Subject: [PATCH 13/27] Iris location env variable $. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 451f9331..98711369 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,7 +81,7 @@ install: # Optionally install latest Iris from downloaded source. - > if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then - cd {IRIS_LOCATION}; + cd ${IRIS_LOCATION}; python setup.py --quiet install; fi; From 9d695a2c51ef5920ce07571e8e012ab51350aaf0 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 12:49:37 +0100 Subject: [PATCH 14/27] Iris dir env variable $. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 98711369..35f08553 100644 --- a/.travis.yml +++ b/.travis.yml @@ -91,7 +91,7 @@ install: # Set iris config paths. - > export PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"; - SITE_CFG="{IRIS_DIR}/etc/site.cfg"; + SITE_CFG="${IRIS_DIR}/etc/site.cfg"; echo "[Resources]" > ${SITE_CFG}; echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> ${SITE_CFG}; echo "doc_dir = $(pwd)/docs/iris" >> ${SITE_CFG}; From b62624713da6ee1935b4cd9091883706daa9cbe9 Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 13:10:39 +0100 Subject: [PATCH 15/27] Travis Iris location subdirectory. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 35f08553..4880ff99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,7 +51,7 @@ install: wget -O ${IRIS_LOCATION}/iris.zip ${IRIS_REF}; unzip -q ${IRIS_LOCATION}/iris.zip -d ${IRIS_LOCATION}; - IRIS_ENV_FILE="${IRIS_LOCATION}/requirements/ci/py${PYTHON_VERSION}.yml"; + IRIS_ENV_FILE="${IRIS_LOCATION}/iris-master/requirements/ci/py${PYTHON_VERSION}.yml"; sed -i "/- iris/d" ${ENV_FILE}; echo "# IRIS DEPENDENCIES." >> ${ENV_FILE}; sed -ne "/dependencies:/,$ p" ${IRIS_ENV_FILE} | sed "1d" >> ${ENV_FILE}; @@ -81,7 +81,7 @@ install: # Optionally install latest Iris from downloaded source. - > if [[ "${LIMIT_TO_RELEASED_IRIS}" == false ]]; then - cd ${IRIS_LOCATION}; + cd ${IRIS_LOCATION}/iris-master; python setup.py --quiet install; fi; From e52eadfc62bc58f0f85916216eaae2362061429e Mon Sep 17 00:00:00 2001 From: Martin Yeo Date: Wed, 30 Sep 2020 13:17:16 +0100 Subject: [PATCH 16/27] Correct iris-grib directory. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 4880ff99..ea217f8b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -102,7 +102,7 @@ install: # ------------------------ - > echo "Installing Iris-grib."; - cd ${HOME}; + cd ${HOME}/SciTools/iris-grib; pip install . --no-deps; # Summarise the environment From c27c22f15c108a358ed44f4326cd47f3072712c8 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 15:39:10 +0100 Subject: [PATCH 17/27] Add debug to travis. --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index ea217f8b..a704be70 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,14 @@ env: - PYTHON_VERSION=37 LIMIT_TO_RELEASED_IRIS=true install: + - > + echo "==== STARTING TRAVIS.TML ===="; + echo " path \$HOME=$HOME"; + echo " path cwd=${pwd}"; + echo ""; + + - set -x; + # Download iris-test-data # ----------------------------------- - > From 7508a2e6e7938b3ec37f24df18e4adef13b221ca Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 15:48:37 +0100 Subject: [PATCH 18/27] fix --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a704be70..d7426f2f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,7 +12,7 @@ install: - > echo "==== STARTING TRAVIS.TML ===="; echo " path \$HOME=$HOME"; - echo " path cwd=${pwd}"; + echo " path cwd=$(pwd)"; echo ""; - set -x; From df1d0ba63130e6c3aff2d3ac23096ac8f8f99901 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 15:58:02 +0100 Subject: [PATCH 19/27] more paths, less debug --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index d7426f2f..65ea3726 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,9 +13,10 @@ install: echo "==== STARTING TRAVIS.TML ===="; echo " path \$HOME=$HOME"; echo " path cwd=$(pwd)"; + echo " path \$TRAVIS_BUILD_DIR=$TRAVIS_BUILD_DIR"; echo ""; - - set -x; + # - set -x; # Download iris-test-data # ----------------------------------- From f72d903a4628d78a0f5f025e1be0e92266ceb2fb Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 17:29:06 +0100 Subject: [PATCH 20/27] Fix 'setup.py test' operation. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 1bb30226..272e946e 100644 --- a/setup.py +++ b/setup.py @@ -93,7 +93,7 @@ def file_walk_relative(top, remove=''): # PyPI, but the user is required to install eccodes itself manually. See # ECMWF ecCodes installation documentation for more information. install_requires=pip_requirements("setup", "core"), - test_suite = f'{PYPI_NAME}.tests', + test_suite = f'{NAME}.tests', extras_require={ "all": pip_requirements("all"), "test": pip_requirements("test"), From 7765478df531ceba0641095e2b4c2ad152b09570 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 17:30:20 +0100 Subject: [PATCH 21/27] Avoid cd error in iris-grib install section. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 65ea3726..f253fdf5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -111,7 +111,7 @@ install: # ------------------------ - > echo "Installing Iris-grib."; - cd ${HOME}/SciTools/iris-grib; + cd ${TRAVIS_BILD_DIR}; pip install . --no-deps; # Summarise the environment From e9c0c832158d716d5201a50f6c7f4015b95f1a81 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 17:44:45 +0100 Subject: [PATCH 22/27] Debug build dir. --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f253fdf5..0e398e54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,6 +15,9 @@ install: echo " path cwd=$(pwd)"; echo " path \$TRAVIS_BUILD_DIR=$TRAVIS_BUILD_DIR"; echo ""; + echo "ls \$TRAVIS_BUILD_DIR :"; + ls -1ld $TRAVIS_BUILD_DIR; + echo ""; # - set -x; @@ -48,7 +51,7 @@ install: # Get environment spec. - > export ENV_NAME="iris-grib-dev"; - export ENV_FILE="requirements/ci/py${PYTHON_VERSION}.yml"; + export ENV_FILE="${TRAVIS_BUILD_DIR}/requirements/ci/py${PYTHON_VERSION}.yml"; # Optionally download latest Iris from repo, # and replace the Iris dependency with Iris' underlying dependencies. From af99e0697477d238f94849b73c220a37a9e7a227 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 17:54:12 +0100 Subject: [PATCH 23/27] More debug. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0e398e54..ae81cec1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ install: echo " path \$TRAVIS_BUILD_DIR=$TRAVIS_BUILD_DIR"; echo ""; echo "ls \$TRAVIS_BUILD_DIR :"; - ls -1ld $TRAVIS_BUILD_DIR; + ls -1ld $TRAVIS_BUILD_DIR/*; echo ""; # - set -x; @@ -115,6 +115,7 @@ install: - > echo "Installing Iris-grib."; cd ${TRAVIS_BILD_DIR}; + ls -1ld *; pip install . --no-deps; # Summarise the environment From 1c838c648651c758cedc816dfaee677b142b4d70 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 17:54:41 +0100 Subject: [PATCH 24/27] Fix typo in travis.yml. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ae81cec1..dcd1c1b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -114,7 +114,7 @@ install: # ------------------------ - > echo "Installing Iris-grib."; - cd ${TRAVIS_BILD_DIR}; + cd ${TRAVIS_BUILD_DIR}; ls -1ld *; pip install . --no-deps; From d4889e0e7f23bf853acdc46393e01ce004fa0fe1 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 18:06:18 +0100 Subject: [PATCH 25/27] Fix iris test-data path in site.cfg, and remove unused docs path. --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index dcd1c1b0..ed22839e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -105,8 +105,7 @@ install: export PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"; SITE_CFG="${IRIS_DIR}/etc/site.cfg"; echo "[Resources]" > ${SITE_CFG}; - echo "test_data_dir = $(pwd)/iris-test-data/test_data" >> ${SITE_CFG}; - echo "doc_dir = $(pwd)/docs/iris" >> ${SITE_CFG}; + echo "test_data_dir = ${IRIS_TEST_DATA_LOCATION}/test_data" >> ${SITE_CFG}; echo "[System]" >> ${SITE_CFG}; echo "udunits2_path = ${PREFIX}/lib/libudunits2.so" >> ${SITE_CFG}; From 9821c2b6f4c1b29458095da0ec22ddeaab614dde Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 18:19:12 +0100 Subject: [PATCH 26/27] Debug iris-test-data and site.cfg. --- .travis.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.travis.yml b/.travis.yml index ed22839e..cf0c34d6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -108,6 +108,17 @@ install: echo "test_data_dir = ${IRIS_TEST_DATA_LOCATION}/test_data" >> ${SITE_CFG}; echo "[System]" >> ${SITE_CFG}; echo "udunits2_path = ${PREFIX}/lib/libudunits2.so" >> ${SITE_CFG}; + echo ""; + echo "SITE.CFG CONTENT:"; + cat ${SITE_CFG}; + echo ""; + echo "TEST DATA DIR : $\IRIS_TEST_DATA_LOCATION=${IRIS_TEST_DATA_LOCATION}"; + echo "Content : ls -1ld \$IRIS_TEST_DATA_LOCATION/* : "; + ls -1ld ${IRIS_TEST_DATA_LOCATION}/*; + echo ""; + echo "Content : ls -1ld \$IRIS_TEST_DATA_LOCATION/test_data/* : "; + ls -1ld ${IRIS_TEST_DATA_LOCATION}/test_data/*; + echo ""; # Install iris-grib itself # ------------------------ From 76f1529a6f7c5aac3fcb1c955bf9c66352365502 Mon Sep 17 00:00:00 2001 From: Patrick Peglar Date: Wed, 30 Sep 2020 18:34:22 +0100 Subject: [PATCH 27/27] Fix iris-test-data path. --- .travis.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index cf0c34d6..3af3660c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,10 +25,11 @@ install: # ----------------------------------- - > export IRIS_TEST_DATA_REF="https://github.com/SciTools/iris-test-data/archive/master.zip"; - export IRIS_TEST_DATA_LOCATION="${HOME}/iris-test-data"; - mkdir ${IRIS_TEST_DATA_LOCATION}; - wget -O ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip ${IRIS_TEST_DATA_REF}; - unzip -q ${IRIS_TEST_DATA_LOCATION}/iris-test-data.zip -d ${IRIS_TEST_DATA_LOCATION}; + export IRIS_TEST_DATA_DOWNLOAD="${HOME}/iris-test-data"; + mkdir ${IRIS_TEST_DATA_DOWNLOAD}; + wget -O ${IRIS_TEST_DATA_DOWNLOAD}/iris-test-data.zip ${IRIS_TEST_DATA_REF}; + unzip -q ${IRIS_TEST_DATA_DOWNLOAD}/iris-test-data.zip -d ${IRIS_TEST_DATA_DOWNLOAD}; + export IRIS_TEST_DATA_PATH=${IRIS_TEST_DATA_DOWNLOAD}/iris-test-data-master/test_data # Install miniconda # ----------------- @@ -105,19 +106,16 @@ install: export PREFIX="${HOME}/miniconda/envs/${ENV_NAME}"; SITE_CFG="${IRIS_DIR}/etc/site.cfg"; echo "[Resources]" > ${SITE_CFG}; - echo "test_data_dir = ${IRIS_TEST_DATA_LOCATION}/test_data" >> ${SITE_CFG}; + echo "test_data_dir = ${IRIS_TEST_DATA_PATH}" >> ${SITE_CFG}; echo "[System]" >> ${SITE_CFG}; echo "udunits2_path = ${PREFIX}/lib/libudunits2.so" >> ${SITE_CFG}; echo ""; echo "SITE.CFG CONTENT:"; cat ${SITE_CFG}; echo ""; - echo "TEST DATA DIR : $\IRIS_TEST_DATA_LOCATION=${IRIS_TEST_DATA_LOCATION}"; - echo "Content : ls -1ld \$IRIS_TEST_DATA_LOCATION/* : "; - ls -1ld ${IRIS_TEST_DATA_LOCATION}/*; - echo ""; - echo "Content : ls -1ld \$IRIS_TEST_DATA_LOCATION/test_data/* : "; - ls -1ld ${IRIS_TEST_DATA_LOCATION}/test_data/*; + echo "TEST DATA DIR : $\IRIS_TEST_DATA_PATH=${IRIS_TEST_DATA_PATH}"; + echo "Content : ls -1ld \$IRIS_TEST_DATA_PATH/* : "; + ls -1ld ${IRIS_TEST_DATA_PATH}/*; echo ""; # Install iris-grib itself