mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-29 17:42:12 +08:00
Reduce command duplications
This commit is contained in:
@@ -8,22 +8,26 @@ set -e
|
||||
|
||||
THIS_DIRECTORY="$(cd "$(dirname "$0")" > /dev/null && pwd)"
|
||||
|
||||
if command -v uv >/dev/null; then
|
||||
VENV_CMD="$(command -v uv) venv --python python3.9"
|
||||
PIP_CMD="$(command -v uv) pip"
|
||||
FREEZE_OPTIONS=''
|
||||
else
|
||||
VENV_CMD='python3.9 -m venv'
|
||||
PIP_CMD='python -m pip'
|
||||
FREEZE_OPTIONS='-l'
|
||||
fi
|
||||
|
||||
update_pinned_reqs() {
|
||||
VENV=$(mktemp -d "${TMPDIR:-/tmp}/$1_venv.XXXXXXXXXX")
|
||||
if command -v uv >/dev/null; then
|
||||
uv self update
|
||||
uv venv "${VENV}" --python python3.9
|
||||
. "${VENV}/bin/activate"
|
||||
uv pip install -r "${THIS_DIRECTORY}/$1-requirements.txt"
|
||||
uv pip freeze | grep -v 'pkg_resources==0.0.0' > "${THIS_DIRECTORY}/pinned-$1-requirements.txt"
|
||||
else
|
||||
python3.9 -m venv "${VENV}"
|
||||
. "${VENV}/bin/activate"
|
||||
pip install --upgrade pip setuptools
|
||||
pip install -r "${THIS_DIRECTORY}/$1-requirements.txt"
|
||||
# The grep below is needed to workaround https://github.com/pypa/pip/issues/8331
|
||||
pip freeze -l | grep -v 'pkg_resources==0.0.0' > "${THIS_DIRECTORY}/pinned-$1-requirements.txt"
|
||||
${VENV_CMD} "${VENV}"
|
||||
. "${VENV}/bin/activate"
|
||||
if [ "${PIP_CMD}" = 'python -m pip' ]; then
|
||||
${PIP_CMD} install --upgrade pip setuptools
|
||||
fi
|
||||
${PIP_CMD} install -r "${THIS_DIRECTORY}/$1-requirements.txt"
|
||||
# The grep below is needed to workaround https://github.com/pypa/pip/issues/8331
|
||||
${PIP_CMD} freeze ${FREEZE_OPTIONS} | grep -v 'pkg_resources==0.0.0' > "${THIS_DIRECTORY}/pinned-$1-requirements.txt"
|
||||
rm -rf "${VENV}"
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,14 @@ EDITABLE=false
|
||||
META=false
|
||||
WHEELHOUSE=
|
||||
|
||||
if command -v uv >/dev/null; then
|
||||
VENV_CMD="$(command -v uv) venv"
|
||||
PIP_CMD="$(command -v uv) pip"
|
||||
else
|
||||
VENV_CMD='python3 -m venv'
|
||||
PIP_CMD='pip'
|
||||
fi
|
||||
|
||||
# Prevent making a venv for build deps for each package, Used inside the package dir, so refers to
|
||||
# <source_root>/packages/.venv
|
||||
: ${VENV=../.venv}
|
||||
@@ -65,28 +73,15 @@ while read package; do
|
||||
printf "\n========= PACKAGE %s =========\n\n" "$package"
|
||||
pushd $package
|
||||
if $EDITABLE; then
|
||||
if command -v uv >/dev/null; then
|
||||
uv pip install -e .
|
||||
else
|
||||
pip install -e .
|
||||
fi
|
||||
${PIP_CMD} install -e .
|
||||
else
|
||||
if [ ! -d "$VENV" ]; then
|
||||
if command -v uv >/dev/null; then
|
||||
uv venv "$VENV"
|
||||
VIRTUAL_ENV="${VENV}" uv pip install -r dev-requirements.txt
|
||||
else
|
||||
python3 -m venv "$VENV"
|
||||
"${VENV}/bin/pip" install -r dev-requirements.txt
|
||||
fi
|
||||
${VENV_CMD} "$VENV"
|
||||
VIRTUAL_ENV="${VENV}" ${PIP_CMD} install -r dev-requirements.txt
|
||||
fi
|
||||
make dist
|
||||
if $INSTALL && ! $META; then
|
||||
if command -v uv >/dev/null; then
|
||||
uv pip install dist/*.whl
|
||||
else
|
||||
pip install dist/*.whl
|
||||
fi
|
||||
${PIP_CMD} install dist/*.whl
|
||||
fi
|
||||
fi
|
||||
popd
|
||||
@@ -96,9 +91,5 @@ done < "$PACKAGE_LIST_FILE"
|
||||
if $INSTALL && $META && ! $EDITABLE; then
|
||||
WHEELHOUSE=$(mktemp -d -t gxpkgwheelhouseXXXXXX)
|
||||
cp */dist/*.whl "$WHEELHOUSE"
|
||||
if command -v uv >/dev/null; then
|
||||
uv pip install $PIP_EXTRA_ARGS --find-links "$WHEELHOUSE" meta/dist/*.whl
|
||||
else
|
||||
pip install $PIP_EXTRA_ARGS --find-links "$WHEELHOUSE" meta/dist/*.whl
|
||||
fi
|
||||
${PIP_CMD} install $PIP_EXTRA_ARGS --find-links "$WHEELHOUSE" meta/dist/*.whl
|
||||
fi
|
||||
|
||||
+10
-10
@@ -37,20 +37,20 @@ TEST_PYTHON=${TEST_PYTHON:-"python3"}
|
||||
TEST_ENV_DIR=${TEST_ENV_DIR:-$(mktemp -d -t gxpkgtestenvXXXXXX)}
|
||||
|
||||
if command -v uv >/dev/null; then
|
||||
uv venv "$TEST_ENV_DIR" --python "$TEST_PYTHON"
|
||||
PIP="$(command -v uv) pip"
|
||||
uv venv --python "$TEST_PYTHON" "$TEST_ENV_DIR"
|
||||
PIP_CMD="$(command -v uv) pip"
|
||||
else
|
||||
"$TEST_PYTHON" -m venv "$TEST_ENV_DIR"
|
||||
PIP="pip"
|
||||
PIP_CMD='python -m pip'
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. "${TEST_ENV_DIR}/bin/activate"
|
||||
if ! command -v uv >/dev/null; then
|
||||
pip install --upgrade pip setuptools wheel
|
||||
if [ "${PIP_CMD}" = 'python -m pip' ]; then
|
||||
${PIP_CMD} install --upgrade pip setuptools wheel
|
||||
fi
|
||||
if [ $FOR_PULSAR -eq 0 ]; then
|
||||
${PIP} install -r ../lib/galaxy/dependencies/pinned-typecheck-requirements.txt
|
||||
${PIP_CMD} install -r ../lib/galaxy/dependencies/pinned-typecheck-requirements.txt
|
||||
fi
|
||||
|
||||
# Ensure ordered by dependency DAG
|
||||
@@ -74,13 +74,13 @@ while read -r package_dir || [ -n "$package_dir" ]; do # https://stackoverflow.
|
||||
|
||||
# Install extras (if needed)
|
||||
if [ "$package_dir" = "util" ]; then
|
||||
${PIP} install '.[image-util,template,jstree,config-template,test]'
|
||||
${PIP_CMD} install '.[image-util,template,jstree,config-template,test]'
|
||||
elif [ "$package_dir" = "tool_util" ]; then
|
||||
${PIP} install '.[cwl,mulled,edam,extended-assertions,test]'
|
||||
${PIP_CMD} install '.[cwl,mulled,edam,extended-assertions,test]'
|
||||
elif grep -q 'test =' setup.cfg 2>/dev/null; then
|
||||
${PIP} install '.[test]'
|
||||
${PIP_CMD} install '.[test]'
|
||||
else
|
||||
${PIP} install .
|
||||
${PIP_CMD} install .
|
||||
fi
|
||||
|
||||
if [ $FOR_PULSAR -eq 0 ]; then
|
||||
|
||||
+21
-26
@@ -133,7 +133,7 @@ if [ $SET_VENV -eq 1 ] && [ $CREATE_VENV -eq 1 ]; then
|
||||
echo "To avoid this, use the --no-create-venv flag or set \$GALAXY_VIRTUAL_ENV to an"
|
||||
echo "existing environment before starting Galaxy."
|
||||
if command -v uv >/dev/null; then
|
||||
uv venv "$GALAXY_VIRTUAL_ENV" --python "$GALAXY_PYTHON"
|
||||
uv venv --python "$GALAXY_PYTHON" "$GALAXY_VIRTUAL_ENV"
|
||||
else
|
||||
# First try to use the venv standard library module, although it is
|
||||
# not always installed by default on Linux distributions.
|
||||
@@ -168,6 +168,14 @@ if [ $SET_VENV -eq 1 ] && [ $CREATE_VENV -eq 1 ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if command -v uv >/dev/null; then
|
||||
PIP_CMD="$(command -v uv) pip"
|
||||
UNINSTALL_OPTIONS=''
|
||||
else
|
||||
PIP_CMD='python -m pip'
|
||||
UNINSTALL_OPTIONS='--yes'
|
||||
fi
|
||||
|
||||
# activate virtualenv or conda env, sets $GALAXY_VIRTUAL_ENV and $GALAXY_CONDA_ENV
|
||||
setup_python
|
||||
|
||||
@@ -188,32 +196,19 @@ fi
|
||||
[ "$CI" = 'true' ] && export PIP_PROGRESS_BAR=off
|
||||
|
||||
if [ $FETCH_WHEELS -eq 1 ]; then
|
||||
if command -v uv >/dev/null; then
|
||||
uv pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
|
||||
|
||||
set_galaxy_config_file_var
|
||||
GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))")
|
||||
if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then
|
||||
if uv pip list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then
|
||||
echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2."
|
||||
uv pip uninstall psycopg2 psycopg2-binary
|
||||
fi
|
||||
echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | uv pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
|
||||
fi
|
||||
else
|
||||
python -m pip install "pip>=$MIN_PIP_VERSION" wheel
|
||||
# shellcheck disable=SC2086
|
||||
pip install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
|
||||
|
||||
set_galaxy_config_file_var
|
||||
GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))")
|
||||
if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then
|
||||
if pip list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then
|
||||
echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2."
|
||||
pip uninstall -y psycopg2 psycopg2-binary
|
||||
fi
|
||||
echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | pip install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
|
||||
if [ "${PIP_CMD}" = 'python -m pip' ]; then
|
||||
${PIP_CMD} install "pip>=${MIN_PIP_VERSION}" wheel
|
||||
fi
|
||||
# shellcheck disable=SC2086
|
||||
${PIP_CMD} install $requirement_args --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
|
||||
set_galaxy_config_file_var
|
||||
GALAXY_CONDITIONAL_DEPENDENCIES=$(PYTHONPATH=lib python -c "from __future__ import print_function; import galaxy.dependencies; print('\n'.join(galaxy.dependencies.optional('$GALAXY_CONFIG_FILE')))")
|
||||
if [ -n "$GALAXY_CONDITIONAL_DEPENDENCIES" ]; then
|
||||
if ${PIP_CMD} list --format=columns | grep "psycopg2[\(\ ]*2.7.3" > /dev/null; then
|
||||
echo "An older version of psycopg2 (non-binary, version 2.7.3) has been detected. Galaxy now uses psycopg2-binary, which will be installed after removing psycopg2."
|
||||
${PIP_CMD} uninstall ${UNINSTALL_OPTIONS} psycopg2 psycopg2-binary
|
||||
fi
|
||||
echo "$GALAXY_CONDITIONAL_DEPENDENCIES" | ${PIP_CMD} install -r /dev/stdin --index-url "${GALAXY_WHEELS_INDEX_URL}" --extra-index-url "${PYPI_INDEX_URL}"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user