diff --git a/.circleci/config.yml b/.circleci/config.yml index 9fecc150ba297..5480831fd962e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,17 +9,17 @@ jobs: - MKL_NUM_THREADS: 2 - MINICONDA_PATH: ~/miniconda - CONDA_ENV_NAME: testenv - - PYTHON_VERSION: 3.5 - - NUMPY_VERSION: 1.11.0 - - SCIPY_VERSION: 0.17.0 - - MATPLOTLIB_VERSION: 1.5.1 + - PYTHON_VERSION: 3.6 + - NUMPY_VERSION: 1.13.3 + - SCIPY_VERSION: 0.19.1 + - MATPLOTLIB_VERSION: 2.1.1 # on conda, this is the latest for python 3.5 # The following places need to be in sync with regard to Cython version: # - .circleci config file # - sklearn/_build_utils/__init__.py # - advanced installation guide - CYTHON_VERSION: 0.28.5 - - SCIKIT_IMAGE_VERSION: 0.12.3 + - SCIKIT_IMAGE_VERSION: 0.13 steps: - checkout - run: ./build_tools/circle/checkout_merge_commit.sh diff --git a/README.rst b/README.rst index 41197e178904a..96bc81fa3822d 100644 --- a/README.rst +++ b/README.rst @@ -47,18 +47,18 @@ Dependencies scikit-learn requires: -- Python (>= 3.5) -- NumPy (>= 1.11.0) -- SciPy (>= 0.17.0) +- Python (>= 3.6) +- NumPy (>= 1.13.3) +- SciPy (>= 0.19.1) - joblib (>= 0.11) **Scikit-learn 0.20 was the last version to support Python 2.7 and Python 3.4.** -scikit-learn 0.21 and later require Python 3.5 or newer. +scikit-learn 0.23 and later require Python 3.6 or newer. Scikit-learn plotting capabilities (i.e., functions start with ``plot_`` -and classes end with "Display") require Matplotlib (>= 1.5.1). For running the -examples Matplotlib >= 1.5.1 is required. A few examples require -scikit-image >= 0.12.3, a few examples require pandas >= 0.18.0. +and classes end with "Display") require Matplotlib (>= 2.1.1). For running the +examples Matplotlib >= 2.1.1 is required. A few examples require +scikit-image >= 0.13, a few examples require pandas >= 0.18.0. User installation ~~~~~~~~~~~~~~~~~ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b029a2fd18574..6a5126d3a9ba0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,7 +3,7 @@ jobs: - job: linting displayName: Linting pool: - vmImage: ubuntu-16.04 + vmImage: ubuntu-18.04 steps: - bash: echo "##vso[task.prependpath]$CONDA/bin" displayName: Add conda to PATH @@ -27,7 +27,7 @@ jobs: - template: build_tools/azure/posix.yml parameters: name: Linux_Runs - vmImage: ubuntu-16.04 + vmImage: ubuntu-18.04 matrix: pylatest_conda_mkl: DISTRIB: 'conda' @@ -44,31 +44,31 @@ jobs: - template: build_tools/azure/posix.yml parameters: name: Linux - vmImage: ubuntu-16.04 + vmImage: ubuntu-18.04 dependsOn: [linting] matrix: # Linux environment to test that scikit-learn can be built against - # versions of numpy, scipy with ATLAS that comes with Ubuntu Xenial 16.04 - # i.e. numpy 1.11 and scipy 0.17 - py35_ubuntu_atlas: + # versions of numpy, scipy with ATLAS that comes with Ubuntu Bionic 18.04 + # i.e. numpy 1.13.3 and scipy 0.19 + py36_ubuntu_atlas: DISTRIB: 'ubuntu' - PYTHON_VERSION: '3.5' + PYTHON_VERSION: '3.6' JOBLIB_VERSION: '0.11' - # Linux + Python 3.5 build with OpenBLAS and without SITE_JOBLIB - py35_conda_openblas: + # Linux + Python 3.6 build with OpenBLAS and without SITE_JOBLIB + py36_conda_openblas: DISTRIB: 'conda' - PYTHON_VERSION: '3.5' + PYTHON_VERSION: '3.6' BLAS: 'openblas' - NUMPY_VERSION: '1.11.0' - SCIPY_VERSION: '0.17.0' + NUMPY_VERSION: '1.13.3' + SCIPY_VERSION: '0.19.1' PANDAS_VERSION: '*' CYTHON_VERSION: '*' # temporary pin pytest due to unknown failure with pytest 5.3 PYTEST_VERSION: '5.2' - PILLOW_VERSION: '4.0.0' - MATPLOTLIB_VERSION: '1.5.1' - # later version of joblib are not packaged in conda for Python 3.5 - JOBLIB_VERSION: '0.12.3' + PILLOW_VERSION: '4.2.1' + MATPLOTLIB_VERSION: '2.1.1' + # latest version of joblib available in conda for Python 3.6 + JOBLIB_VERSION: '0.13.2' COVERAGE: 'true' # Linux environment to test the latest available dependencies and MKL. # It runs tests requiring lightgbm, pandas and PyAMG. @@ -84,13 +84,13 @@ jobs: - template: build_tools/azure/posix-32.yml parameters: name: Linux32 - vmImage: ubuntu-16.04 + vmImage: ubuntu-18.04 dependsOn: [linting] matrix: - py35_ubuntu_atlas_32bit: + py36_ubuntu_atlas_32bit: DISTRIB: 'ubuntu-32' - PYTHON_VERSION: '3.5' - JOBLIB_VERSION: '0.11' + PYTHON_VERSION: '3.6' + JOBLIB_VERSION: '0.13' - template: build_tools/azure/posix.yml parameters: @@ -135,6 +135,6 @@ jobs: PYTHON_ARCH: '64' PYTEST_VERSION: '*' COVERAGE: 'true' - py35_pip_openblas_32bit: - PYTHON_VERSION: '3.5' + py36_pip_openblas_32bit: + PYTHON_VERSION: '3.6' PYTHON_ARCH: '32' diff --git a/build_tools/azure/install.sh b/build_tools/azure/install.sh index f119b280041d7..7a89e29445e78 100755 --- a/build_tools/azure/install.sh +++ b/build_tools/azure/install.sh @@ -1,6 +1,7 @@ #!/bin/bash set -e +set -x UNAMESTR=`uname` @@ -73,13 +74,13 @@ if [[ "$DISTRIB" == "conda" ]]; then elif [[ "$DISTRIB" == "ubuntu" ]]; then sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test sudo apt-get update - sudo apt-get install python3-scipy python3-matplotlib libatlas3-base libatlas-base-dev libatlas-dev python3-virtualenv + sudo apt-get install python3-scipy python3-matplotlib libatlas3-base libatlas-base-dev python3-virtualenv python3 -m virtualenv --system-site-packages --python=python3 $VIRTUALENV source $VIRTUALENV/bin/activate python -m pip install pytest==$PYTEST_VERSION pytest-cov cython joblib==$JOBLIB_VERSION elif [[ "$DISTRIB" == "ubuntu-32" ]]; then apt-get update - apt-get install -y python3-dev python3-scipy python3-matplotlib libatlas3-base libatlas-base-dev libatlas-dev python3-virtualenv + apt-get install -y python3-dev python3-scipy python3-matplotlib libatlas3-base libatlas-base-dev python3-virtualenv python3 -m virtualenv --system-site-packages --python=python3 $VIRTUALENV source $VIRTUALENV/bin/activate python -m pip install pytest==$PYTEST_VERSION pytest-cov cython joblib==$JOBLIB_VERSION diff --git a/build_tools/azure/posix-32.yml b/build_tools/azure/posix-32.yml index 68e05e347f307..b4c9e4ebb287e 100644 --- a/build_tools/azure/posix-32.yml +++ b/build_tools/azure/posix-32.yml @@ -40,7 +40,7 @@ jobs: -e OMP_NUM_THREADS=$OMP_NUM_THREADS -e OPENBLAS_NUM_THREADS=$OPENBLAS_NUM_THREADS -e SKLEARN_SKIP_NETWORK_TESTS=$SKLEARN_SKIP_NETWORK_TESTS - i386/ubuntu:16.04 + i386/ubuntu:18.04 sleep 1000000 displayName: 'Start container' - script: > diff --git a/build_tools/circle/build_test_pypy.sh b/build_tools/circle/build_test_pypy.sh index 22e4790e7e4ab..0b53aae2984f2 100755 --- a/build_tools/circle/build_test_pypy.sh +++ b/build_tools/circle/build_test_pypy.sh @@ -3,7 +3,7 @@ set -x set -e apt-get -yq update -apt-get -yq install libatlas-dev libatlas-base-dev liblapack-dev gfortran ccache libopenblas-dev +apt-get -yq install libatlas-base-dev liblapack-dev gfortran ccache libopenblas-dev pip install virtualenv diff --git a/doc/developers/advanced_installation.rst b/doc/developers/advanced_installation.rst index d86e59de0e746..d719dfd4ff907 100644 --- a/doc/developers/advanced_installation.rst +++ b/doc/developers/advanced_installation.rst @@ -83,9 +83,9 @@ Runtime dependencies Scikit-learn requires the following dependencies both at build time and at runtime: -- Python (>= 3.5), -- NumPy (>= 1.11), -- SciPy (>= 0.17), +- Python (>= 3.6), +- NumPy (>= 1.13.3), +- SciPy (>= 0.19), - Joblib (>= 0.11). Those dependencies are **automatically installed by pip** if they were missing diff --git a/doc/install.rst b/doc/install.rst index 886ed272a65ba..6a2b83605c1a6 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -132,14 +132,16 @@ If you must install scikit-learn and its dependencies with pip, you can install it as ``scikit-learn[alldeps]``. Scikit-learn plotting capabilities (i.e., functions start with "plot\_" -and classes end with "Display") require Matplotlib (>= 1.5.1). For running the -examples Matplotlib >= 1.5.1 is required. A few examples require -scikit-image >= 0.12.3, a few examples require pandas >= 0.18.0. +and classes end with "Display") require Matplotlib (>= 2.1.1). For running the +examples Matplotlib >= 2.1.1 is required. A few examples require +scikit-image >= 0.13, a few examples require pandas >= 0.18.0. .. warning:: Scikit-learn 0.20 was the last version to support Python 2.7 and Python 3.4. - Scikit-learn now requires Python 3.5 or newer. + Scikit-learn 0.21 supported Python 3.5-3.7. + Scikit-learn 0.22 supported Python 3.5-3.8. + Scikit-learn now requires Python 3.6 or newer. .. note:: diff --git a/doc/templates/index.html b/doc/templates/index.html index f897ae5f7031c..b2e02f94ba903 100644 --- a/doc/templates/index.html +++ b/doc/templates/index.html @@ -156,6 +156,8 @@