diff --git a/doc/source/configuration.rst b/doc/source/configuration.rst index 7d06658ee2..79d911c91d 100644 --- a/doc/source/configuration.rst +++ b/doc/source/configuration.rst @@ -247,6 +247,21 @@ A clean install every time RECLONE=yes +Upgrade packages installed by pip +--------------------------------- + + | *Default: ``PIP_UPGRADE=""``* + | By default ``stack.sh`` only installs Python packages if no version + is currently installed or the current version does not match a specified + requirement. If ``PIP_UPGRADE`` is set to ``True`` then existing required + Python packages will be upgraded to the most recent version that + matches requirements. + | + + :: + + PIP_UPGRADE=True + Swift ----- diff --git a/inc/python b/inc/python index 2d76081a52..d00eb0cd1f 100644 --- a/inc/python +++ b/inc/python @@ -54,17 +54,23 @@ function get_python_exec_prefix { # Wrapper for ``pip install`` to set cache and proxy environment variables # Uses globals ``INSTALL_TESTONLY_PACKAGES``, ``OFFLINE``, ``PIP_VIRTUAL_ENV``, -# ``TRACK_DEPENDS``, ``*_proxy`` +# ``PIP_UPGRADE``, ``TRACK_DEPENDS``, ``*_proxy`` # pip_install package [package ...] function pip_install { local xtrace=$(set +o | grep xtrace) set +o xtrace + local upgrade="" local offline=${OFFLINE:-False} if [[ "$offline" == "True" || -z "$@" ]]; then $xtrace return fi + PIP_UPGRADE=$(trueorfalse False PIP_UPGRADE) + if [[ "$PIP_UPGRADE" = "True" ]] ; then + upgrade="--upgrade" + fi + if [[ -z "$os_PACKAGE" ]]; then GetOSVersion fi @@ -98,7 +104,7 @@ function pip_install { https_proxy="${https_proxy:-}" \ no_proxy="${no_proxy:-}" \ PIP_FIND_LINKS=$PIP_FIND_LINKS \ - $cmd_pip install \ + $cmd_pip install $upgrade \ $@ # Also install test requirements @@ -110,7 +116,7 @@ function pip_install { https_proxy=${https_proxy:-} \ no_proxy=${no_proxy:-} \ PIP_FIND_LINKS=$PIP_FIND_LINKS \ - $cmd_pip install \ + $cmd_pip install $upgrade \ -r $test_req fi }