Files @ 46e78e583ed3
Branch filter:

Location: kallithea/scripts/validate-minimum-dependency-versions - annotation

Thomas De Schampheleire
scripts/i18n: add command 'normalized-merge' for use with Mercurial's 'merge-tool' option

Add a 'normalized-merge' command to scripts/i18n that will first normalize
the i18n files contributing to the merge, then perform a standard merge. If
that merge fails (e.g. due to real conflicts) the normalized files are left
behind, and the user needs to run another merge tool manually and resolve the
merge of these.

Use by putting following snippets in your .hgrc file:

[merge-tools]
i18n.executable = /path/to/scripts/i18n
i18n.args = normalized-merge $local $base $other $output

or

[merge-tools]
i18n.executable = python3
i18n.args = /path/to/scripts/i18n normalized-merge $local $base $other $output

and when i18n files conflict, get all 3 sides of the merge normalized before
merge by running:

hg resolve 'kallithea/i18n/*/LC_MESSAGES/kallithea.po' --tool i18n
#!/bin/bash
# Test that installation of all dependencies works fine if versions are set to
# the minimum ones.

set -e

if [ -n "$VIRTUAL_ENV" ]; then
    echo "This script will create its own virtualenv - please don't run it inside an existing one." >&2
    exit 1
fi

cd "$(hg root)"

venv=build/minimum-dependency-versions-venv
log=build/minimum-dependency-versions.log
min_requirements=build/minimum-dependency-versions-requirements.txt
echo "virtualenv: $venv"
echo "log: $log"
echo "minimum requirements file: $min_requirements"

# clean up previous runs
rm -rf "$venv" "$log"
mkdir -p "$venv"

# Make a light weight parsing of setup.py and dev_requirements.txt,
# finding all >= requirements and dumping into a custom requirements.txt
# while fixating the requirement at the lower bound.
sed -n 's/.*"\(.*\)>=\(.*\)".*/\1==\2/p' setup.py > "$min_requirements"
sed 's/>=/==/p' dev_requirements.txt >> "$min_requirements"

python3 -m venv "$venv"
source "$venv/bin/activate"
pip install --upgrade pip setuptools
pip install -e . -r "$min_requirements" python-ldap python-pam 2> >(tee "$log" >&2)

# Treat any message on stderr as a problem, for the caller to interpret.
if [ -s "$log" ]; then
    echo
    echo "Error: pip detected following problems:"
    cat "$log"
    echo
    exit 1
fi

freeze_txt=build/minimum-dependency-versions.txt
pip freeze > $freeze_txt
echo "Installation of minimum packages was successful, providing a set of packages as in $freeze_txt . Now running test suite..."

pytest

echo "Test suite execution was successful."
echo "You can now do additional validation using virtual env '$venv'."