Mercurial > kallithea
view scripts/validate-commits @ 8986:0a9ddb8cd8c1 stable
setup: avoid setuptools 67 - it can't handle celery's broken pytz dependency
With setuptools 67 or later, launching Kallithea fails as:
$ gearbox serve -c my.ini --reload
15:56:54,111 ERROR [gearbox] Expected closing RIGHT_PARENTHESIS
pytz (>dev)
~^
The `packaging` vendored in setuptools cannot handle the broken syntax
`Requires-Dist: pytz (>dev)` in
venv/lib/python3.11/site-packages/celery-5.0.5.dist-info/METADATA .
The old celery version currently used by Kallithea is wrong, and setuptools has
moved on after a reasonable grace period. We thus have to work around and avoid
latest setuptools.
See https://github.com/pypa/setuptools/issues/3889 .
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Thu, 13 Apr 2023 13:54:24 +0200 |
parents | 68861940ee1e |
children |
line wrap: on
line source
#!/bin/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 revset=$1 if [ -z "$revset" ]; then echo "Warning: no revisions specified, checking draft changes up to the current one." revset='draft() and ancestors(.)' 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 "$revset" -T '{node}\n'); do hg log -r "$rev" hg update "$rev" cleanup python3 -m venv "$venv" source "$venv/bin/activate" pip install --upgrade pip "setuptools<67" pip install -e . -r dev_requirements.txt python-ldap python-pam # run-all-cleanup if ! scripts/run-all-cleanup ; then echo "run-all-cleanup encountered errors!" result="NOK" else 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 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