diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2cbf55f52ca..f9bfa032a98 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,14 +8,12 @@ jobs: - job: Linux strategy: matrix: - py36-bare-minimum: - conda_env: py36-bare-minimum - py36-min-all-deps: - conda_env: py36-min-all-deps - py36-min-nep18: - conda_env: py36-min-nep18 - py36: - conda_env: py36 + py37-bare-minimum: + conda_env: py37-bare-minimum + py37-min-all-deps: + conda_env: py37-min-all-deps + py37-min-nep18: + conda_env: py37-min-nep18 py37: conda_env: py37 py38: @@ -121,6 +119,6 @@ jobs: - template: ci/azure/add-conda-to-path.yml - bash: | conda install -y pyyaml - python ci/min_deps_check.py ci/requirements/py36-bare-minimum.yml - python ci/min_deps_check.py ci/requirements/py36-min-all-deps.yml + python ci/min_deps_check.py ci/requirements/py37-bare-minimum.yml + python ci/min_deps_check.py ci/requirements/py37-min-all-deps.yml displayName: minimum versions policy diff --git a/ci/min_deps_check.py b/ci/min_deps_check.py index 95c6ff22aa2..5f94c81ef8a 100755 --- a/ci/min_deps_check.py +++ b/ci/min_deps_check.py @@ -35,9 +35,11 @@ # setuptools-scm doesn't work with setuptools < 36.7 (Nov 2017). # The conda metadata is malformed for setuptools < 38.4 (Jan 2018) # (it's missing a timestamp which prevents this tool from working). + # setuptools < 40.4 (Sep 2018) from conda-forge cannot be installed into a py37 + # environment # TODO remove this special case and the matching note in installing.rst - # after July 2021. - "setuptools": (38, 4), + # after March 2022. + "setuptools": (40, 4), } has_errors = False diff --git a/ci/requirements/py36.yml b/ci/requirements/py36.yml deleted file mode 100644 index 97fe92e2271..00000000000 --- a/ci/requirements/py36.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: xarray-tests -channels: - - conda-forge - - nodefaults -dependencies: - - python=3.6 - - black - - boto3 - - bottleneck - - cartopy - - cdms2 - - cfgrib - - cftime - - coveralls - - dask - - distributed - - flake8 - - h5netcdf - - h5py=2 - - hdf5 - - hypothesis - - iris - - isort - - lxml # Optional dep of pydap - - matplotlib-base - - mypy=0.790 # Must match .pre-commit-config.yaml - - nc-time-axis - - netcdf4 - - numba - - numpy - - pandas - - pint - - pip - - pseudonetcdf - - pydap - # - pynio: not compatible with netCDF4>1.5.3; only tested in py36-bare-minimum - - pytest - - pytest-cov - - pytest-env - - pytest-xdist - - rasterio - - scipy - - seaborn - - setuptools - - sparse - - toolz - - zarr - - pip: - - numbagg diff --git a/ci/requirements/py36-bare-minimum.yml b/ci/requirements/py37-bare-minimum.yml similarity index 84% rename from ci/requirements/py36-bare-minimum.yml rename to ci/requirements/py37-bare-minimum.yml index f9255d719de..fbeb87032b7 100644 --- a/ci/requirements/py36-bare-minimum.yml +++ b/ci/requirements/py37-bare-minimum.yml @@ -3,7 +3,7 @@ channels: - conda-forge - nodefaults dependencies: - - python=3.6 + - python=3.7 - coveralls - pip - pytest @@ -12,4 +12,4 @@ dependencies: - pytest-xdist - numpy=1.15 - pandas=0.25 - - setuptools=38.4 + - setuptools=40.4 diff --git a/ci/requirements/py36-min-all-deps.yml b/ci/requirements/py37-min-all-deps.yml similarity index 90% rename from ci/requirements/py36-min-all-deps.yml rename to ci/requirements/py37-min-all-deps.yml index bb25ffcdc76..feef86ddf5c 100644 --- a/ci/requirements/py36-min-all-deps.yml +++ b/ci/requirements/py37-min-all-deps.yml @@ -7,7 +7,7 @@ dependencies: # Run ci/min_deps_check.py to verify that this file respects the policy. # When upgrading python, numpy, or pandas, must also change # doc/installing.rst and setup.py. - - python=3.6 + - python=3.7 - black - boto3=1.9 - bottleneck=1.2 @@ -33,7 +33,7 @@ dependencies: - numba=0.46 - numpy=1.15 - pandas=0.25 - # - pint # See py36-min-nep18.yml + # - pint # See py37-min-nep18.yml - pip - pseudonetcdf=3.0 - pydap=3.2 @@ -45,8 +45,8 @@ dependencies: - rasterio=1.0 - scipy=1.3 - seaborn=0.9 - - setuptools=38.4 - # - sparse # See py36-min-nep18.yml + - setuptools=40.4 + # - sparse # See py37-min-nep18.yml - toolz=0.10 - zarr=2.3 - pip: diff --git a/ci/requirements/py36-min-nep18.yml b/ci/requirements/py37-min-nep18.yml similarity index 91% rename from ci/requirements/py36-min-nep18.yml rename to ci/requirements/py37-min-nep18.yml index 3171c90992d..aea86261a0e 100644 --- a/ci/requirements/py36-min-nep18.yml +++ b/ci/requirements/py37-min-nep18.yml @@ -5,7 +5,7 @@ channels: dependencies: # Optional dependencies that require NEP18, such as sparse and pint, # require drastically newer packages than everything else - - python=3.6 + - python=3.7 - coveralls - dask=2.9 - distributed=2.9 @@ -18,5 +18,5 @@ dependencies: - pytest-env - pytest-xdist - scipy=1.3 - - setuptools=38.4 + - setuptools=40.4 - sparse=0.8 diff --git a/doc/installing.rst b/doc/installing.rst index 45999b254ad..d5783e557e1 100644 --- a/doc/installing.rst +++ b/doc/installing.rst @@ -6,8 +6,8 @@ Installation Required dependencies --------------------- -- Python (3.6 or later) -- setuptools (38.4 or later) +- Python (3.7 or later) +- setuptools (40.4 or later) - `numpy `__ (1.15 or later) - `pandas `__ (0.25 or later) @@ -100,7 +100,7 @@ dependencies: - **Python:** 42 months (`NEP-29 `_) -- **setuptools:** 42 months (but no older than 38.4) +- **setuptools:** 42 months (but no older than 40.4) - **numpy:** 24 months (`NEP-29 `_) - **dask and dask.distributed:** 12 months (but no older than 2.9) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 0d839bc678b..70b3c407b36 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -22,6 +22,18 @@ v0.16.3 (unreleased) Breaking changes ~~~~~~~~~~~~~~~~ +- xarray no longer supports python 3.6 + + The minimum versions of some other dependencies were changed: + ============ ====== ==== + Package Old New + ============ ====== ==== + Python 3.6 3.7 + setuptools 38.4 40.4 + ============ ====== ==== + + (:issue:`4688`, :pull:`4720`) + By `Justus Magin `_. - As a result of :pull:`4684` the default units encoding for datetime-like values (``np.datetime64[ns]`` or ``cftime.datetime``) will now always be set such that ``int64`` values can be used. In the past, no units diff --git a/requirements.txt b/requirements.txt index 3cbeb368c09..23eff8f07cb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,4 +4,4 @@ numpy >= 1.15 pandas >= 0.25 -setuptools >= 38.4 +setuptools >= 40.4 diff --git a/setup.cfg b/setup.cfg index b92db683779..a695191bf02 100644 --- a/setup.cfg +++ b/setup.cfg @@ -64,21 +64,21 @@ classifiers = Intended Audience :: Science/Research Programming Language :: Python Programming Language :: Python :: 3 - Programming Language :: Python :: 3.6 Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 Topic :: Scientific/Engineering [options] packages = find: zip_safe = False # https://mypy.readthedocs.io/en/latest/installed_packages.html include_package_data = True -python_requires = >=3.6 +python_requires = >=3.7 install_requires = numpy >= 1.15 pandas >= 0.25 - setuptools >= 38.4 # For pkg_resources + setuptools >= 40.4 # For pkg_resources setup_requires = - setuptools >= 38.4 + setuptools >= 40.4 setuptools_scm