diff --git a/CHANGELOG.md b/CHANGELOG.md index 108a0eabbd91650676615e94fed68baf9291c879..1a5e3a0e032e019be3728732e9a62ca9431ed009 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Python Buildpack Changelog +# 141 (2018-10-10) + +Switch to cautious upgrade for Pipenv install to ensure the pinned pip version +is used with Pipenv + # 140 (2018-10-09) Add support for detecting SLUGIFY_USES_TEXT_UNIDECODE, which is required to diff --git a/bin/steps/pip-install b/bin/steps/pip-install index 5de8e3db529ac27516124014ec32daf2bb6dc924..d7ffa82d48a7cd91fe3750649f5653741db68640 100755 --- a/bin/steps/pip-install +++ b/bin/steps/pip-install @@ -13,7 +13,7 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then # and makes them accessible to the pip install process. # # PIP_EXTRA_INDEX_URL allows for an alternate pypi URL to be used. - if [[ -r $ENV_DIR/PIP_EXTRA_INDEX_URL ]]; then + if [[ -r "$ENV_DIR/PIP_EXTRA_INDEX_URL" ]]; then PIP_EXTRA_INDEX_URL="$(cat "$ENV_DIR/PIP_EXTRA_INDEX_URL")" export PIP_EXTRA_INDEX_URL mcount "buildvar.PIP_EXTRA_INDEX_URL" @@ -22,7 +22,7 @@ if [ ! "$SKIP_PIP_INSTALL" ]; then set +e # Set SLUGIFY_USES_TEXT_UNIDECODE, required for Airflow versions >=1.10 - if [[ -r $ENV_DIR/SLUGIFY_USES_TEXT_UNIDECODE ]]; then + if [[ -r "$ENV_DIR/SLUGIFY_USES_TEXT_UNIDECODE" ]]; then SLUGIFY_USES_TEXT_UNIDECODE="$(cat "$ENV_DIR/SLUGIFY_USES_TEXT_UNIDECODE")" export SLUGIFY_USES_TEXT_UNIDECODE mcount "buildvar.SLUGIFY_USES_TEXT_UNIDECODE" diff --git a/bin/steps/pipenv b/bin/steps/pipenv index 31b479ba1490e3f23af2ed1e2571cf9e50ca74d7..1190621217785a9d06fceafcdb967c6dc58a64b0 100755 --- a/bin/steps/pipenv +++ b/bin/steps/pipenv @@ -20,7 +20,6 @@ if [[ -f Pipfile.lock ]]; then export SKIP_PIPENV_INSTALL=1 export SKIP_PIP_INSTALL=1 fi - fi fi fi @@ -40,14 +39,14 @@ if [ ! "$SKIP_PIPENV_INSTALL" ]; then # and makes them accessible to the pip install process. # # PIP_EXTRA_INDEX_URL allows for an alternate pypi URL to be used. - if [[ -r $ENV_DIR/PIP_EXTRA_INDEX_URL ]]; then + if [[ -r "$ENV_DIR/PIP_EXTRA_INDEX_URL" ]]; then PIP_EXTRA_INDEX_URL="$(cat "$ENV_DIR/PIP_EXTRA_INDEX_URL")" export PIP_EXTRA_INDEX_URL mcount "buildvar.PIP_EXTRA_INDEX_URL" fi # Set SLUGIFY_USES_TEXT_UNIDECODE, required for Airflow versions >=1.10 - if [[ -r $ENV_DIR/SLUGIFY_USES_TEXT_UNIDECODE ]]; then + if [[ -r "$ENV_DIR/SLUGIFY_USES_TEXT_UNIDECODE" ]]; then SLUGIFY_USES_TEXT_UNIDECODE="$(cat "$ENV_DIR/SLUGIFY_USES_TEXT_UNIDECODE")" export SLUGIFY_USES_TEXT_UNIDECODE mcount "buildvar.SLUGIFY_USES_TEXT_UNIDECODE" @@ -56,7 +55,10 @@ if [ ! "$SKIP_PIPENV_INSTALL" ]; then export PIPENV_VERSION="2018.5.18" # Install pipenv. - /app/.heroku/python/bin/pip install pipenv==$PIPENV_VERSION --upgrade &> /dev/null + # Due to weird old pip behavior and pipenv behavior, pipenv upgrades pip + # to latest if only --upgrade is specified. Specify upgrade strategy to + # avoid this eager behavior. + /app/.heroku/python/bin/pip install pipenv==$PIPENV_VERSION --upgrade --upgrade-strategy only-if-needed &> /dev/null # Install the dependencies. if [[ ! -f Pipfile.lock ]]; then