ci: drop parts from Travis
diff --git a/.travis.yml b/.travis.yml
index 91f9c9d..4893056 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -41,143 +41,6 @@
       cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) .
       make pytest -j 2 && make cpptest -j 2
 
-  # The following are regular test configurations, including optional dependencies.
-  # With regard to each other they differ in Python version, C++ standard and compiler.
-  - os: linux
-    dist: trusty
-    name: Python 2.7, c++11, gcc 4.8
-    env: PYTHON=2.7 CPP=11 GCC=4.8
-    addons:
-      apt:
-        packages:
-          - cmake=2.\*
-          - cmake-data=2.\*
-  - os: linux
-    dist: trusty
-    name: Python 3.6, c++11, gcc 4.8
-    env: PYTHON=3.6 CPP=11 GCC=4.8
-    addons:
-      apt:
-        sources:
-          - deadsnakes
-        packages:
-          - python3.6-dev
-          - python3.6-venv
-          - cmake=2.\*
-          - cmake-data=2.\*
-  - os: linux
-    dist: trusty
-    env: PYTHON=2.7 CPP=14 GCC=6 CMAKE=1
-    name: Python 2.7, c++14, gcc 6, CMake test
-    addons:
-      apt:
-        sources:
-          - ubuntu-toolchain-r-test
-        packages:
-          - g++-6
-  - os: linux
-    dist: trusty
-    name: Python 3.5, c++14, gcc 6, Debug build
-    # N.B. `ensurepip` could be installed transitively by `python3.5-venv`, but
-    # seems to have apt conflicts (at least for Trusty). Use Docker instead.
-    services: docker
-    env: DOCKER=debian:stretch PYTHON=3.5 CPP=14 GCC=6 DEBUG=1
-  - os: linux
-    dist: xenial
-    env: PYTHON=3.6 CPP=17 GCC=7
-    name: Python 3.6, c++17, gcc 7
-    addons:
-      apt:
-        sources:
-          - deadsnakes
-          - ubuntu-toolchain-r-test
-        packages:
-          - g++-7
-          - python3.6-dev
-          - python3.6-venv
-  - os: linux
-    dist: xenial
-    env: PYTHON=3.6 CPP=17 CLANG=7
-    name: Python 3.6, c++17, Clang 7
-    addons:
-      apt:
-        sources:
-          - deadsnakes
-          - llvm-toolchain-xenial-7
-        packages:
-          - python3.6-dev
-          - python3.6-venv
-          - clang-7
-          - libclang-7-dev
-          - llvm-7-dev
-          - lld-7
-          - libc++-7-dev
-          - libc++abi-7-dev  # Why is this necessary???
-  - os: linux
-    dist: xenial
-    env: PYTHON=3.8 CPP=17 GCC=7
-    name: Python 3.8, c++17, gcc 7
-    addons:
-      apt:
-        sources:
-          - deadsnakes
-          - ubuntu-toolchain-r-test
-        packages:
-          - g++-7
-          - python3.8-dev
-          - python3.8-venv
-  - os: linux
-    dist: xenial
-    env: PYTHON=3.9 CPP=17 GCC=7
-    name: Python 3.9 beta, c++17, gcc 7 (w/o numpy/scipy) # TODO: update build name when the numpy/scipy wheels become available
-    addons:
-      apt:
-        sources:
-          - deadsnakes
-          - ubuntu-toolchain-r-test
-        packages:
-          - g++-7
-          - python3.9-dev
-          - python3.9-venv
-    # Currently there are no numpy/scipy wheels available for python3.9
-    # TODO: remove next install and script clause when the wheels become available
-    install:
-      - $PY_CMD -m pip install --user --upgrade pytest
-    script:
-      - |
-        # Barebones build
-        cmake -DCMAKE_BUILD_TYPE=Debug -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON -DPYTHON_EXECUTABLE=$(which $PY_CMD) .
-        make pytest -j 2 && make cpptest -j 2
-  - os: osx
-    name: Python 2.7, c++14, AppleClang 7.3, CMake test
-    osx_image: xcode7.3
-    env: PYTHON=2.7 CPP=14 CLANG CMAKE=1
-  - os: osx
-    name: Python 3.8, c++14, AppleClang 9, Debug build
-    osx_image: xcode9.4
-    env: PYTHON=3.8 CPP=14 CLANG DEBUG=1
-  # Test a PyPy 2.7 build
-  - os: linux
-    dist: trusty
-    env: PYPY=7.3.1 PYTHON=2.7 CPP=11 GCC=4.8
-    name: PyPy 7.3, Python 2.7, c++11, gcc 4.8
-    addons:
-      apt:
-        packages:
-          - libblas-dev
-          - liblapack-dev
-          - gfortran
-  - os: linux
-    dist: xenial
-    env: PYPY=7.3.1 PYTHON=3.6 CPP=11 GCC=5
-    name: PyPy 7.3, Python 3.6, c++11, gcc 5
-    addons:
-      apt:
-        packages:
-          - libblas-dev
-          - liblapack-dev
-          - gfortran
-          - g++-5
   # Build in 32-bit mode and tests against the CMake-installed version
   - os: linux
     dist: trusty
@@ -197,32 +60,19 @@
           cmake ../pybind11-tests ${CMAKE_EXTRA_ARGS} -DPYBIND11_WERROR=ON
           make pytest -j 2"
         set +ex
-  allow_failures:
-    - name: Python 3.9 beta, c++17, gcc 7 (w/o numpy/scipy)
-    - name: PyPy 7.3, Python 2.7, c++11, gcc 4.8
 cache:
   directories:
   - $HOME/.local/bin
   - $HOME/.local/lib
   - $HOME/.local/include
-  - $HOME/Library/Python
 before_install:
 - |
   # Configure build variables
   set -ex
-  if [ "$TRAVIS_OS_NAME" = "linux" ]; then
-    if [ -n "$CLANG" ]; then
-      export CXX=clang++-$CLANG CC=clang-$CLANG
-      EXTRA_PACKAGES+=" clang-$CLANG llvm-$CLANG-dev"
-    else
-      if [ -z "$GCC" ]; then GCC=4.8
-      else EXTRA_PACKAGES+=" g++-$GCC"
-      fi
-      export CXX=g++-$GCC CC=gcc-$GCC
-    fi
-  elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
-    export CXX=clang++ CC=clang;
+  if [ -z "$GCC" ]; then GCC=4.8
+  else EXTRA_PACKAGES+=" g++-$GCC"
   fi
+  export CXX=g++-$GCC CC=gcc-$GCC
   if [ -n "$CPP" ]; then CPP=-std=c++$CPP; fi
   if [ "${PYTHON:0:1}" = "3" ]; then PY=3; fi
   if [ -n "$DEBUG" ]; then CMAKE_EXTRA_ARGS+=" -DCMAKE_BUILD_TYPE=Debug"; fi
@@ -241,18 +91,12 @@
     SCRIPT_RUN_PREFIX="docker exec --tty $containerid"
     $SCRIPT_RUN_PREFIX sh -c 'for s in 0 15; do sleep $s; apt-get update && apt-get -qy dist-upgrade && break; done'
   else
-    if [ -n "$PYPY" ]; then
-      curl -fSL https://bitbucket.org/pypy/pypy/downloads/pypy$PYTHON-v$PYPY-linux64.tar.bz2 | tar xj
-      PY_CMD=$(echo `pwd`/pypy$PYTHON-v$PYPY-linux64/bin/pypy$PY)
-      CMAKE_EXTRA_ARGS+=" -DPYTHON_EXECUTABLE:FILEPATH=$PY_CMD"
-    else
-      PY_CMD=python$PYTHON
-      if [ "$TRAVIS_OS_NAME" = "osx" ]; then
-        if [ "$PY" = "3" ]; then
-          brew update && brew unlink python@2 && (brew upgrade python || brew install python)
-        else
-          curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user
-        fi
+    PY_CMD=python$PYTHON
+    if [ "$TRAVIS_OS_NAME" = "osx" ]; then
+      if [ "$PY" = "3" ]; then
+        brew update && brew unlink python@2 && (brew upgrade python || brew install python)
+      else
+        curl -fsSL https://bootstrap.pypa.io/get-pip.py | $PY_CMD - --user
       fi
     fi
     if [ "$PY" = 3 ] || [ -n "$PYPY" ]; then
@@ -278,24 +122,10 @@
         libeigen3-dev libboost-dev cmake make ${EXTRA_PACKAGES} && break; done"
   else
 
-    if [ "$CLANG" = "7" ]; then
-      export CXXFLAGS="-stdlib=libc++"
-    fi
-
     export NPY_NUM_BUILD_JOBS=2
     local PIP_CMD=""
-    if [ -n "$PYPY" ]; then
-      # For expediency, install only versions that are available on the extra index.
-      echo "Not installing numpy, scipy as working wheels are not available"
-      # travis_wait 30 $PY_CMD -m pip install --user --upgrade --extra-index-url https://antocuni.github.io/pypy-wheels/manylinux2010 \
-      #    numpy scipy
-      echo "Installing pytest"
-      travis_wait 30 \
-        $PY_CMD -m pip install --user --upgrade pytest
-    else
-      echo "Installing pytest, numpy, scipy..."
-      $PY_CMD -m pip install --user --upgrade pytest numpy scipy
-    fi
+    echo "Installing pytest, numpy, scipy..."
+    $PY_CMD -m pip install --user --upgrade pytest numpy scipy
     echo "done."
 
     mkdir eigen