From 675f0a177ed43c0aa54265c39a5c68692857f9f3 Mon Sep 17 00:00:00 2001 From: Guido Imperiale Date: Wed, 25 Sep 2019 17:29:57 +0100 Subject: [PATCH 1/3] CI test suites with pinned minimum dependencies --- azure-pipelines.yml | 8 +++- .../{py35-min.yml => py35-bare-minimum.yml} | 0 ci/requirements/py36-min-nep18.yml | 17 ++++++++ ci/requirements/py36-min.yml | 43 +++++++++++++++++++ ci/requirements/py36.yml | 3 +- ci/requirements/py37-windows.yml | 3 +- ci/requirements/py37.yml | 3 +- xarray/tests/test_plot.py | 2 +- 8 files changed, 73 insertions(+), 6 deletions(-) rename ci/requirements/{py35-min.yml => py35-bare-minimum.yml} (100%) create mode 100644 ci/requirements/py36-min-nep18.yml create mode 100644 ci/requirements/py36-min.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1c325d7734f..1e6abc1ca8a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,8 +8,12 @@ jobs: - job: Linux strategy: matrix: - py35-min: - conda_env: py35-min + py35-bare-minimum: + conda_env: py35-bare-minimum + py36-min: + conda_env: py36-min + py36-min-nep18: + conda_env: py36-min-nep18 py36: conda_env: py36 py37: diff --git a/ci/requirements/py35-min.yml b/ci/requirements/py35-bare-minimum.yml similarity index 100% rename from ci/requirements/py35-min.yml rename to ci/requirements/py35-bare-minimum.yml diff --git a/ci/requirements/py36-min-nep18.yml b/ci/requirements/py36-min-nep18.yml new file mode 100644 index 00000000000..8680e412a99 --- /dev/null +++ b/ci/requirements/py36-min-nep18.yml @@ -0,0 +1,17 @@ +name: xarray-tests +channels: + - conda-forge +dependencies: + # Optional dependencies that require NEP18, such as sparse, + # require drastically newer packages than everything else + - python=3.6.7 + - coveralls + - dask=2.4.0 + - distributed=2.4.0 + - numpy=1.17 + - pandas=0.25 + - pytest + - pytest-cov + - pytest-env + - scipy=1.3 + - sparse=0.8.0 diff --git a/ci/requirements/py36-min.yml b/ci/requirements/py36-min.yml new file mode 100644 index 00000000000..686abe1efc2 --- /dev/null +++ b/ci/requirements/py36-min.yml @@ -0,0 +1,43 @@ +name: xarray-tests +channels: + - conda-forge +dependencies: + - python=3.6.7 + - black + - boto3=1.9.235 + - bottleneck=1.2.1 + - cdms2=3.1.3 + - cfgrib=0.9.7.2 + - cftime=1.0.3.4 + - coveralls + - dask=2.4.0 + - distributed=2.4.0 + - flake8 + - h5netcdf=0.7.4 + - h5py=2.10.0 + - hdf5=1.10.5 + - hypothesis + - iris=2.2.0 + - lxml=4.4.1 # FIXME what's the purpose? (added in #1776) + - matplotlib=3.1.1 + - mypy==0.720 # Must match .pre-commit-config.yaml + - nc-time-axis=1.2.0 + - netcdf4=1.5.1.2 + - numba=0.45.1 + - numpy=1.17.2 + - pandas=0.25.1 + - pip + - pseudonetcdf=3.0.2 + - pydap=3.2.2 + - pynio=1.5.5 + - pytest + - pytest-cov + - pytest-env + - rasterio=1.0.28 + - scipy=1.3.1 + - seaborn=0.9.0 + # - sparse # See py36-min-nep18.yml + - toolz=0.10.0 + - zarr=2.3.2 + - pip: + - numbagg==0.1 diff --git a/ci/requirements/py36.yml b/ci/requirements/py36.yml index 7e852b5c260..c264c2d0b79 100644 --- a/ci/requirements/py36.yml +++ b/ci/requirements/py36.yml @@ -15,9 +15,10 @@ dependencies: - flake8 - h5netcdf - h5py + - hdf5 - hypothesis - iris>=1.10 - - lxml + - lxml # FIXME what's the purpose? (added in #1776) - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/ci/requirements/py37-windows.yml b/ci/requirements/py37-windows.yml index 31af80357ad..4d862c54cab 100644 --- a/ci/requirements/py37-windows.yml +++ b/ci/requirements/py37-windows.yml @@ -15,9 +15,10 @@ dependencies: - flake8 - h5netcdf - h5py + - hdf5 - hypothesis - iris>=1.10 - - lxml + - lxml # FIXME what's the purpose? (added in #1776) - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/ci/requirements/py37.yml b/ci/requirements/py37.yml index 72b6c76ea37..f963c64e788 100644 --- a/ci/requirements/py37.yml +++ b/ci/requirements/py37.yml @@ -15,9 +15,10 @@ dependencies: - flake8 - h5netcdf - h5py + - hdf5 - hypothesis - iris>=1.10 - - lxml + - lxml # FIXME what's the purpose? (added in #1776) - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/xarray/tests/test_plot.py b/xarray/tests/test_plot.py index 020a49b0114..6120ca628a5 100644 --- a/xarray/tests/test_plot.py +++ b/xarray/tests/test_plot.py @@ -1945,7 +1945,7 @@ def test_datetime_hue(self, hue_style): ds2.plot.scatter(x="A", y="B", hue="hue", hue_style=hue_style) def test_facetgrid_hue_style(self): - # Can't move this to pytest.mark.parametrize because py35-min + # Can't move this to pytest.mark.parametrize because py35-bare-minimum # doesn't have mpl. for hue_style, map_type in zip( ["discrete", "continuous"], [list, mpl.collections.PathCollection] From 43e527cce632784b3aab0a638e3ea041ed632244 Mon Sep 17 00:00:00 2001 From: Guido Imperiale Date: Thu, 26 Sep 2019 09:53:35 +0100 Subject: [PATCH 2/3] code review --- azure-pipelines.yml | 4 ++-- ci/requirements/{py36-min.yml => py36-min-all-deps.yml} | 2 +- ci/requirements/py36.yml | 2 +- ci/requirements/py37-windows.yml | 2 +- ci/requirements/py37.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename ci/requirements/{py36-min.yml => py36-min-all-deps.yml} (91%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1e6abc1ca8a..d023aa317c7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,8 +10,8 @@ jobs: matrix: py35-bare-minimum: conda_env: py35-bare-minimum - py36-min: - conda_env: py36-min + py36-min-all-deps: + conda_env: py36-min-all-deps py36-min-nep18: conda_env: py36-min-nep18 py36: diff --git a/ci/requirements/py36-min.yml b/ci/requirements/py36-min-all-deps.yml similarity index 91% rename from ci/requirements/py36-min.yml rename to ci/requirements/py36-min-all-deps.yml index 686abe1efc2..0ad87a99786 100644 --- a/ci/requirements/py36-min.yml +++ b/ci/requirements/py36-min-all-deps.yml @@ -18,7 +18,7 @@ dependencies: - hdf5=1.10.5 - hypothesis - iris=2.2.0 - - lxml=4.4.1 # FIXME what's the purpose? (added in #1776) + - lxml=4.4.1 # FIXME undeclared dep of pydap? (added in #1776) - matplotlib=3.1.1 - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis=1.2.0 diff --git a/ci/requirements/py36.yml b/ci/requirements/py36.yml index c264c2d0b79..d13bc435c90 100644 --- a/ci/requirements/py36.yml +++ b/ci/requirements/py36.yml @@ -18,7 +18,7 @@ dependencies: - hdf5 - hypothesis - iris>=1.10 - - lxml # FIXME what's the purpose? (added in #1776) + - lxml # FIXME undeclared dep of pydap? (added in #1776) - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/ci/requirements/py37-windows.yml b/ci/requirements/py37-windows.yml index 4d862c54cab..42656c254c0 100644 --- a/ci/requirements/py37-windows.yml +++ b/ci/requirements/py37-windows.yml @@ -18,7 +18,7 @@ dependencies: - hdf5 - hypothesis - iris>=1.10 - - lxml # FIXME what's the purpose? (added in #1776) + - lxml # FIXME undeclared dep of pydap? (added in #1776) - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/ci/requirements/py37.yml b/ci/requirements/py37.yml index f963c64e788..920fed1fecd 100644 --- a/ci/requirements/py37.yml +++ b/ci/requirements/py37.yml @@ -18,7 +18,7 @@ dependencies: - hdf5 - hypothesis - iris>=1.10 - - lxml # FIXME what's the purpose? (added in #1776) + - lxml # FIXME undeclared dep of pydap? (added in #1776) - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis From 551f96d1fafc6325fdf41176f97b5324445e4684 Mon Sep 17 00:00:00 2001 From: Guido Imperiale Date: Thu, 26 Sep 2019 09:56:13 +0100 Subject: [PATCH 3/3] Clarity re lxml --- ci/requirements/py36-min-all-deps.yml | 2 +- ci/requirements/py36.yml | 2 +- ci/requirements/py37-windows.yml | 2 +- ci/requirements/py37.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ci/requirements/py36-min-all-deps.yml b/ci/requirements/py36-min-all-deps.yml index 0ad87a99786..1829f2a11e3 100644 --- a/ci/requirements/py36-min-all-deps.yml +++ b/ci/requirements/py36-min-all-deps.yml @@ -18,7 +18,7 @@ dependencies: - hdf5=1.10.5 - hypothesis - iris=2.2.0 - - lxml=4.4.1 # FIXME undeclared dep of pydap? (added in #1776) + - lxml=4.4.1 # optional dep of pydap - matplotlib=3.1.1 - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis=1.2.0 diff --git a/ci/requirements/py36.yml b/ci/requirements/py36.yml index d13bc435c90..187a9c79fbf 100644 --- a/ci/requirements/py36.yml +++ b/ci/requirements/py36.yml @@ -18,7 +18,7 @@ dependencies: - hdf5 - hypothesis - iris>=1.10 - - lxml # FIXME undeclared dep of pydap? (added in #1776) + - lxml # optional dep of pydap - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/ci/requirements/py37-windows.yml b/ci/requirements/py37-windows.yml index 42656c254c0..24297327393 100644 --- a/ci/requirements/py37-windows.yml +++ b/ci/requirements/py37-windows.yml @@ -18,7 +18,7 @@ dependencies: - hdf5 - hypothesis - iris>=1.10 - - lxml # FIXME undeclared dep of pydap? (added in #1776) + - lxml # optional dep of pydap - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis diff --git a/ci/requirements/py37.yml b/ci/requirements/py37.yml index 920fed1fecd..5a328c64cf9 100644 --- a/ci/requirements/py37.yml +++ b/ci/requirements/py37.yml @@ -18,7 +18,7 @@ dependencies: - hdf5 - hypothesis - iris>=1.10 - - lxml # FIXME undeclared dep of pydap? (added in #1776) + - lxml # optional dep of pydap - matplotlib - mypy==0.720 # Must match .pre-commit-config.yaml - nc-time-axis