On 12/30/18 8:52 PM, Thomas De Schampheleire wrote:
# HG changeset patch # User Thomas De Schampheleire <[email protected]> # Date 1546198086 -3600 # Sun Dec 30 20:28:06 2018 +0100 # Node ID 08ccc957e6bc3b170ce2c5db4a63574b51528a79 # Parent 42d4c56ad79c4a492b8bc607aa070de32d9c6073 scripts: add developer script validate-commitsvalidate-commits can be used to verify a series of commits before submitting/pushing it. It will create a virtualenv and run run-all-cleanup and pytest. Invocation: validate-commits <revset> Output: OK: 99c28d4459286261f7e798ab3fe60be3b0be2e7e (run-all-cleanup) OK: 99c28d4459286261f7e798ab3fe60be3b0be2e7e (pytest) OK: 8a79857fb430eea80556af8d7e7c88810eee7f25 (run-all-cleanup) NOK: 8a79857fb430eea80556af8d7e7c88810eee7f25 (pytest) OK: 42d4c56ad79c4a492b8bc607aa070de32d9c6073 (run-all-cleanup) NOK: 42d4c56ad79c4a492b8bc607aa070de32d9c6073 (pytest) diff --git a/scripts/validate-commits b/scripts/validate-commits new file mode 100755 --- /dev/null +++ b/scripts/validate-commits @@ -0,0 +1,66 @@ +#!/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 . >/dev/null; 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 "$@" -T '{node}\n'); do
Quoted $@ is special, and this will give confusing result if the script is invoked with less or more than 1 one parameter. I assume we should use $1 instead.
+ 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
I have found that in case of "different but compatible constraints", it is more stable to install both the app and dev requirements at once: pip install --upgrade -e . -r dev_requirements.txt
We should perhaps change to recommend that everywhere?
+ pip install python-ldap python-pam
Should we just include these in dev_requirements.txt ? /Mads _______________________________________________ kallithea-general mailing list [email protected] https://lists.sfconservancy.org/mailman/listinfo/kallithea-general
