Files @ 953047e8c88a
Branch filter:

Location: kallithea/scripts/validate-commits

Thomas De Schampheleire
setup: restrict TurboGears2 version to 2.3.x

In TurboGears2 2.3.12, the latest version in the 2.3.x range, the WebOb
dependency requirement is [1]
WebOb >= 1.2, < 1.8.0

In TurboGears2 2.4.0 (which is in pre-release state at the time of this
commit), this becomes [2]:
WebOb >= 1.8.0, < 1.10.0

In the Kallithea dependency list, we have matched our WebOb version
requirements to that of TurboGears2 and use:
WebOb >= 1.7, < 1.8

while our TurboGears2 requirement was liberal and accepted anything in the
2.x range:
TurboGears2 >= 2.3.10, < 3

To avoid new Kallithea installations failing with conflicting WebOb version
requirements after TurboGears2 2.4.0 is released, restrict the version of
TurboGears2 to 2.3.x on the stable branch.

For the default branch, the update to TurboGears2 2.4.0 can be considered
once it's released.

[1] https://github.com/TurboGears/tg2/blob/tg2.3.12/setup.py#L54
[2] https://github.com/TurboGears/tg2/blob/ed89788c3f5dab5a182a938543c9ee4ec14dd7ef/setup.py#L41
#!/usr/bin/env bash
# Validate the specified commits against test suite and other checks.

if [ -n "$VIRTUAL_ENV" ]; then
    echo "Please run this script from outside a virtualenv."
    exit 1
fi

if ! hg update --check -q .; then
    echo "Working dir is not clean, please commit/revert changes first."
    exit 1
fi

venv=$(mktemp -d kallithea-validatecommits-env-XXXXXX)
resultfile=$(mktemp kallithea-validatecommits-result-XXXXXX)
echo > "$resultfile"

cleanup()
{
    rm -rf /tmp/kallithea-test*
    rm -rf "$venv"
}
finish()
{
    cleanup
    # print (possibly intermediate) results
    cat "$resultfile"
    rm "$resultfile"
}
trap finish EXIT

for rev in $(hg log -r "$1" -T '{node}\n'); do
    hg log -r "$rev"
    hg update "$rev"

    cleanup
    virtualenv -p "$(command -v python2)" "$venv"
    source "$venv/bin/activate"
    pip install --upgrade pip setuptools
    pip install -e .
    pip install -r dev_requirements.txt
    pip install python-ldap python-pam

    # run-all-cleanup
    scripts/run-all-cleanup
    if ! hg update --check -q .; then
        echo "run-all-cleanup did not give clean results!"
        result="NOK"
        hg diff
        hg revert -a
    else
        result=" OK"
    fi
    echo "$result: $rev (run-all-cleanup)" >> "$resultfile"

    # pytest
    if py.test; then
        result=" OK"
    else
        result="NOK"
    fi
    echo "$result: $rev (pytest)" >> "$resultfile"

    deactivate
    echo
done