From 39b65acdaa323f8254e0820acf82655eebcc22b7 Mon Sep 17 00:00:00 2001
From: Joseph Weston <joseph@weston.cloud>
Date: Mon, 9 Sep 2019 10:32:59 +0200
Subject: [PATCH] bump required Python version to 3.6 and update dependencies

It has been > 6 months since the release of Ubuntu 18.04 LTS.
---
 INSTALL.rst                       | 14 +++++++-------
 docker/Dockerfile.ubuntu          |  2 +-
 docker/kwant-stable-no-extras.yml |  6 +++---
 docker/kwant-stable.yml           | 11 ++++++-----
 setup.py                          |  8 ++++----
 5 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/INSTALL.rst b/INSTALL.rst
index a32658eb..460551c9 100644
--- a/INSTALL.rst
+++ b/INSTALL.rst
@@ -29,10 +29,10 @@ Prerequisites
 =============
 
 Building Kwant requires
- * `Python <https://www.python.org/>`_ 3.5 or above (Kwant 1.1 is the last
+ * `Python <https://www.python.org/>`_ 3.6 or above (Kwant 1.1 is the last
    version to support Python 2),
- * `NumPy <http://numpy.org/>`_ 1.11.0 or newer,
- * `SciPy <https://www.scipy.org/>`_ 0.17.0 or newer,
+ * `NumPy <http://numpy.org/>`_ 1.13.3 or newer,
+ * `SciPy <https://www.scipy.org/>`_ 0.19.1 or newer,
  * `LAPACK <http://netlib.org/lapack/>`_ and `BLAS <http://netlib.org/blas/>`_,
    (For best performance we recommend the free `OpenBLAS
    <http://www.openblas.net/>`_ or the nonfree `MKL
@@ -43,19 +43,19 @@ a NumPy-like Python package optimized for very small arrays,
    C++.
 
 The following software is highly recommended though not strictly required:
- * `matplotlib <http://matplotlib.org/>`_ 1.5.1 or newer, for the module `kwant.plotter` and the tutorial,
- * `SymPy <http://sympy.org/>`_ 0.7.6 or newer, for the subpackage `kwant.continuum`.
+ * `matplotlib <http://matplotlib.org/>`_ 2.1.1 or newer, for the module `kwant.plotter` and the tutorial,
+ * `SymPy <http://sympy.org/>`_ 1.1.1 or newer, for the subpackage `kwant.continuum`.
  * `Qsymm <https://pypi.org/project/qsymm/>`_ 1.2.6 or newer, for the subpackage `kwant.qsymm`.
  * `MUMPS <http://graal.ens-lyon.fr/MUMPS/>`_, a sparse linear algebra library
    that will in many cases speed up Kwant several times and reduce the memory
    footprint.  (Kwant uses only the sequential, single core version
    of MUMPS.  The advantages due to MUMPS as used by Kwant are thus independent
    of the number of CPU cores of the machine on which Kwant runs.)
- * The `py.test testing framework <http://pytest.org/>`_ 2.8 or newer for running the
+ * The `py.test testing framework <http://pytest.org/>`_ 3.3.2 or newer for running the
    tests included with Kwant.
 
 In addition, to build a copy of Kwant that has been checked-out directly from
-version control, you will also need `Cython <http://cython.org/>`_ 0.22 or
+version control, you will also need `Cython <http://cython.org/>`_ 0.26.1 or
 newer.  You do not need Cython to build Kwant that has been unpacked from a
 source .tar.gz-file.
 
diff --git a/docker/Dockerfile.ubuntu b/docker/Dockerfile.ubuntu
index bca1da6d..f3c47513 100644
--- a/docker/Dockerfile.ubuntu
+++ b/docker/Dockerfile.ubuntu
@@ -1,4 +1,4 @@
-FROM ubuntu:16.04
+FROM ubuntu:18.04
 
 ENV LANG C.UTF-8
 ENV LC_ALL C.UTF-8
diff --git a/docker/kwant-stable-no-extras.yml b/docker/kwant-stable-no-extras.yml
index 99b2af16..fd208eb5 100644
--- a/docker/kwant-stable-no-extras.yml
+++ b/docker/kwant-stable-no-extras.yml
@@ -2,9 +2,9 @@ name: kwant-stable-no-extras
 channels:
     - conda-forge
 dependencies:
-    - python=3.5
-    - numpy=1.11.0
-    - scipy=0.17  # No minor version because conda-forge has no 0.17.0
+    - python=3.6
+    - numpy=1.13.1
+    - scipy=0.19.1
     - tinyarray=1.2.0
     # Linear algebra libraraies
     - blas #=1.1 openblas
diff --git a/docker/kwant-stable.yml b/docker/kwant-stable.yml
index 5e16a86a..93decc70 100644
--- a/docker/kwant-stable.yml
+++ b/docker/kwant-stable.yml
@@ -2,12 +2,13 @@ name: kwant-stable
 channels:
     - conda-forge
 dependencies:
-    - python=3.5
-    - numpy=1.11.0
-    - scipy=0.17  # No minor version because conda-forge has no 0.17.0
+    - python=3.6
+    - numpy=1.13.3
+    - scipy=0.19.1
     - tinyarray=1.2.0
-    - sympy=0.7.6
-    - matplotlib=1.5.1
+    - sympy=1.1.1
+    - matplotlib=2.1.1
+    - qsymm=1.2.6
     # Linear algebra libraraies
     - mumps
     - blas #=1.1 openblas
diff --git a/setup.py b/setup.py
index cef8c9f5..85cb54eb 100755
--- a/setup.py
+++ b/setup.py
@@ -517,7 +517,7 @@ def maybe_add_numpy_include(exts):
 
 
 def main():
-    check_python_version((3, 5))
+    check_python_version((3, 6))
     check_versions()
 
     exts = collections.OrderedDict([
@@ -581,12 +581,12 @@ def main():
                     'build_ext': build_ext,
                     'test': test},
           ext_modules=exts,
-          install_requires=['numpy >= 1.11.0', 'scipy >= 0.17.0',
+          install_requires=['numpy >= 1.13.3', 'scipy >= 0.19.1',
                             'tinyarray >= 1.2'],
           extras_require={
               # The oldest versions between: Debian stable, Ubuntu LTS
-              'plotting': 'matplotlib >= 1.5.1',
-              'continuum': 'sympy >= 0.7.6',
+              'plotting': 'matplotlib >= 2.1.1',
+              'continuum': 'sympy >= 1.1.1',
               # qsymm is only packaged on PyPI
               'qsymm': 'qsymm >= 1.2.6',
           },
-- 
GitLab