diff --git a/roles/common/files/pip_check_requirements_upgrades.sh b/roles/common/files/pip_check_requirements_upgrades.sh index 168c5e3256033846dcc0ca17078e067584dff8a5..7a6f321b980d8f6348135a81428eea0ec9ba0b8b 100755 --- a/roles/common/files/pip_check_requirements_upgrades.sh +++ b/roles/common/files/pip_check_requirements_upgrades.sh @@ -237,9 +237,15 @@ for environment in "$config_dir"/*; do # package versioning information. current=$(sed -e 's/[[:blank:]]*#.*//' "$req_txt" | grep -v "^$" | sort -u) - # Calculate up-to-date requirements. - new=$(pip-compile --quiet --allow-unsafe --no-header --no-annotate --no-emit-index-url --output-file - --upgrade "$req_in") - result="$?" + # Calculate up-to-date requirements. Use backtracking resolver if available. + if pip-compile --help | grep -q -- --resolver; then + new=$(pip-compile --quiet --resolver backtracking --allow-unsafe --no-header --no-annotate --no-emit-index-url --output-file - --upgrade "$req_in") + result="$?" + else + new=$(pip-compile --quiet --allow-unsafe --no-header --no-annotate --no-emit-index-url --output-file - --upgrade "$req_in") + result="$?" + fi + if [[ $result != 0 ]]; then error "Failed while running pip-compile command against (see error stack trace above): $req_in" continue