Commit c029e44d authored by Ed Morley's avatar Ed Morley Committed by Kenneth Reitz

Improve UX when clearing cache due to the stack changing (#442)

* Test that the cache is invalidated when the stack changes

* Improve UX when clearing cache due to the stack changing

Now outputs a message informing that the cache was cleared, and
clears the cache first to avoid a redundant message about removing
an old Python version.
parent f74d4db8
...@@ -4,7 +4,11 @@ set +e ...@@ -4,7 +4,11 @@ set +e
runtime-fixer runtime.txt runtime-fixer runtime.txt
PYTHON_VERSION=$(cat runtime.txt) PYTHON_VERSION=$(cat runtime.txt)
# Install Python. if [[ "$STACK" != "$CACHED_PYTHON_STACK" ]]; then
puts-step "Stack has changed from $CACHED_PYTHON_STACK to $STACK, clearing cache"
rm -fr .heroku/python-stack .heroku/python-version .heroku/python .heroku/vendor
fi
if [ -f .heroku/python-version ]; then if [ -f .heroku/python-version ]; then
if [ ! "$(cat .heroku/python-version)" = "$PYTHON_VERSION" ]; then if [ ! "$(cat .heroku/python-version)" = "$PYTHON_VERSION" ]; then
puts-step "Found $(cat .heroku/python-version), removing" puts-step "Found $(cat .heroku/python-version), removing"
...@@ -14,12 +18,6 @@ if [ -f .heroku/python-version ]; then ...@@ -14,12 +18,6 @@ if [ -f .heroku/python-version ]; then
fi fi
fi fi
if [ ! "$STACK" = "$CACHED_PYTHON_STACK" ]; then
rm -fr .heroku/python .heroku/python-stack .heroku/vendor
unset SKIP_INSTALL
fi
if [ ! "$SKIP_INSTALL" ]; then if [ ! "$SKIP_INSTALL" ]; then
puts-step "Installing $PYTHON_VERSION" puts-step "Installing $PYTHON_VERSION"
......
...@@ -76,6 +76,15 @@ testSmartRequirements() { ...@@ -76,6 +76,15 @@ testSmartRequirements() {
assertCapturedSuccess assertCapturedSuccess
} }
testStackChange() {
local cache_dir="$(mktmpdir)"
mkdir -p "${cache_dir}/.heroku"
echo "different-stack" > "${cache_dir}/.heroku/python-stack"
compile "requirements-standard" "$cache_dir"
assertCaptured "clearing cache"
assertFile "$STACK" ".heroku/python-stack"
assertCapturedSuccess
}
pushd $(dirname 0) >/dev/null pushd $(dirname 0) >/dev/null
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment