diff --git a/api/src/main/thrift/org/apache/aurora/gen/BUILD b/api/src/main/thrift/org/apache/aurora/gen/BUILD index e6aa691..89086cc 100644 --- a/api/src/main/thrift/org/apache/aurora/gen/BUILD +++ b/api/src/main/thrift/org/apache/aurora/gen/BUILD @@ -26,7 +26,7 @@ python_thrift_library( python_thrift_library( name = '_test', - sources = globs('*test.thrift'), + sources = ['*test.thrift'], dependencies = [ '3rdparty/python:thrift', ], diff --git a/pants b/pants index 57b4d05..256d551 100755 --- a/pants +++ b/pants @@ -19,49 +19,160 @@ # that any developer can check out your code and be building it with # pants with no prior setup needed. # -# You can learn more here: https://pantsbuild.github.io/setup +# You can learn more here: https://www.pantsbuild.org/install.html # ==================================================================== -set -e # AURORA-1717: If the PYTHONPATH is tainted, calling `./pants` may fail # with `ImportError: No module named pants.bin.pants_exe` unset PYTHONPATH +set -eou pipefail -PYTHON=${PYTHON:-$(which python2.7)} +PANTS_INI=${PANTS_INI:-pants.ini} +PANTS_TOML=${PANTS_TOML:-pants.toml} +PYTHON_BIN_NAME="${PYTHON:-unspecified}" -PANTS_HOME="${PANTS_HOME:-${HOME}/.cache/pants/setup}" +PANTS_HOME="${PANTS_HOME:-${XDG_CACHE_HOME:-$HOME/.cache}/pants/setup}" PANTS_BOOTSTRAP="${PANTS_HOME}/bootstrap-$(uname -s)-$(uname -m)" -VENV_VERSION=16.6.1 +VENV_VERSION=${VENV_VERSION:-16.4.3} VENV_PACKAGE=virtualenv-${VENV_VERSION} VENV_TARBALL=${VENV_PACKAGE}.tar.gz +COLOR_RED="\x1b[31m" +COLOR_GREEN="\x1b[32m" +COLOR_RESET="\x1b[0m" + +function log() { + echo -e "$@" 1>&2 +} + +function die() { + (($# > 0)) && log "${COLOR_RED}$*${COLOR_RESET}" + exit 1 +} + +function green() { + (($# > 0)) && log "${COLOR_GREEN}$*${COLOR_RESET}" +} + +function tempdir { + mktemp -d "$1"/pants.XXXXXX +} + +function get_exe_path_or_die { + exe="$1" + if ! command -v "${exe}"; then + die "Could not find ${exe}. Please ensure ${exe} is on your PATH." + fi +} + +pants_config_file="" +if [[ -f "${PANTS_INI}" ]]; then + pants_config_file="${PANTS_INI}" +fi +if [[ -f "${PANTS_TOML}" ]]; then + pants_config_file="${PANTS_TOML}" +fi + +function get_pants_config_value { + config_key="$1" + optional_space="[[:space:]]*" + if [[ "${pants_config_file}" == *.ini ]]; then + valid_delimiters="[:=]" + prefix="^${config_key}${optional_space}${valid_delimiters}${optional_space}" + sed -ne "/${prefix}/ s#${prefix}##p" "${PANTS_INI}" && return 0 + fi + if [[ "${pants_config_file}" == *.toml ]]; then + prefix="^${config_key}${optional_space}=${optional_space}" + raw_value="$(sed -ne "/${prefix}/ s#${prefix}##p" "${PANTS_TOML}")" + echo "${raw_value}" | tr -d \"\' && return 0 + fi + return 0 +} + +function get_python_major_minor_version { + python_exe="$1" + "$python_exe" <&1 > /dev/null)" == "pyenv: python${version}"* ]]; then + continue + fi + echo "${interpreter_path}" && return 0 + done +} + +function determine_python_exe { + if [[ "${PYTHON_BIN_NAME}" != 'unspecified' ]]; then + python_bin_name="${PYTHON_BIN_NAME}" + else + python_bin_name="$(determine_default_python_exe)" + if [[ -z "${python_bin_name}" ]]; then + die "No valid Python interpreter found. Pants requires Python 3.6+ to run." + fi + fi + python_exe="$(get_exe_path_or_die "${python_bin_name}")" + major_minor_version="$(get_python_major_minor_version "${python_exe}")" + for valid_version in '36' '37' '38' '39'; do + if [[ "${major_minor_version}" == "${valid_version}" ]]; then + echo "${python_exe}" && return 0 + fi + done + die "Invalid Python interpreter version for ${python_exe}. Pants requires Python 3.6+ to run." } # TODO(John Sirois): GC race loser tmp dirs leftover from bootstrap_XXX # functions. Any tmp dir w/o a symlink pointing to it can go. function bootstrap_venv { - if [[ ! -d "${PANTS_BOOTSTRAP}/${VENV_PACKAGE}" ]] - then + if [[ ! -d "${PANTS_BOOTSTRAP}/${VENV_PACKAGE}" ]]; then ( - mkdir -p "${PANTS_BOOTSTRAP}" && \ - staging_dir=$(tempdir "${PANTS_BOOTSTRAP}") && \ - cd "${staging_dir}" && \ - curl -LO https://pypi.io/packages/source/v/virtualenv/${VENV_TARBALL} && \ - tar -xzf ${VENV_TARBALL} && \ - ln -s "${staging_dir}/${VENV_PACKAGE}" "${staging_dir}/latest" && \ + mkdir -p "${PANTS_BOOTSTRAP}" + staging_dir=$(tempdir "${PANTS_BOOTSTRAP}") + cd "${staging_dir}" + curl -LO "https://pypi.io/packages/source/v/virtualenv/${VENV_TARBALL}" + tar -xzf "${VENV_TARBALL}" + ln -s "${staging_dir}/${VENV_PACKAGE}" "${staging_dir}/latest" mv "${staging_dir}/latest" "${PANTS_BOOTSTRAP}/${VENV_PACKAGE}" ) 1>&2 fi @@ -69,31 +180,39 @@ function bootstrap_venv { } function bootstrap_pants { - pants_requirement="pantsbuild.pants" - pants_version=$( - grep -E "^[[:space:]]*pants_version" pants.ini 2>/dev/null | \ - cut -f2 -d: | tr -d " " - ) - if [[ -n "${pants_version}" ]] - then - pants_requirement="${pants_requirement}==${pants_version}" - else - pants_version="unspecified" - fi + pants_version="$1" + python="$2" + + pants_requirement="pantsbuild.pants==${pants_version}" + python_major_minor_version="$(get_python_major_minor_version "${python}")" + target_folder_name="${pants_version}_py${python_major_minor_version}" - if [[ ! -d "${PANTS_BOOTSTRAP}/${pants_version}" ]] - then + if [[ ! -d "${PANTS_BOOTSTRAP}/${target_folder_name}" ]]; then ( - venv_path="$(bootstrap_venv)" && \ - staging_dir=$(tempdir "${PANTS_BOOTSTRAP}") && \ - "${PYTHON}" "${venv_path}/virtualenv.py" --no-download "${staging_dir}/install" && \ - "${staging_dir}/install/bin/python" "${staging_dir}/install/bin/pip" install "${pants_requirement}" && \ - ln -s "${staging_dir}/install" "${staging_dir}/${pants_version}" && \ - mv "${staging_dir}/${pants_version}" "${PANTS_BOOTSTRAP}/${pants_version}" + venv_path="$(bootstrap_venv)" + staging_dir=$(tempdir "${PANTS_BOOTSTRAP}") + "${python}" "${venv_path}/virtualenv.py" --no-download "${staging_dir}/install" + "${staging_dir}/install/bin/pip" install -U pip + "${staging_dir}/install/bin/pip" install "${pants_requirement}" + ln -s "${staging_dir}/install" "${staging_dir}/${target_folder_name}" + mv "${staging_dir}/${target_folder_name}" "${PANTS_BOOTSTRAP}/${target_folder_name}" + green "New virtual environment successfully created at ${PANTS_BOOTSTRAP}/${target_folder_name}." ) 1>&2 fi - echo "${PANTS_BOOTSTRAP}/${pants_version}" + echo "${PANTS_BOOTSTRAP}/${target_folder_name}" } -pants_dir=$(bootstrap_pants) && \ +# Ensure we operate from the context of the ./pants buildroot. +cd "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" +pants_version="$(determine_pants_version)" +python="$(determine_python_exe)" +pants_dir="$(bootstrap_pants "${pants_version}" "${python}")" + + +# We set the env var no_proxy to '*', to work around an issue with urllib using non +# async-signal-safe syscalls after we fork a process that has already spawned threads. +# +# See https://blog.phusion.nl/2017/10/13/why-ruby-app-servers-break-on-macos-high-sierra-and-what-can-be-done-about-it/ +export no_proxy='*' + exec "${pants_dir}/bin/python" "${pants_dir}/bin/pants" "$@" diff --git a/pants.ini b/pants.ini deleted file mode 100644 index 6bd56d7..0000000 --- a/pants.ini +++ /dev/null @@ -1,96 +0,0 @@ -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -[GLOBAL] -pants_version: 1.15.0 - -plugins: [ - 'pantsbuild.pants.contrib.python.checks==%(pants_version)s', - ] - -backend_packages: [ - # Pants built-ins: - 'pants.backend.codegen.thrift.python', - 'pants.backend.graph_info', - 'pants.backend.project_info', - 'pants.backend.python', - ] - -# allow imports in BUILD files to read .auroraversion -build_file_imports: allow - - -[thrift] -version: 0.10.0 - - -[python-setup] -interpreter_constraints: CPython>=2.7,<3 - - -[test.pytest] -# AURORA-1972: As a workaround for spuriously failing tests, test different -# targets in isolation -fast: False - -[pytest] -# FIXME: Workaround for https://github.com/pytest-dev/pytest/issues/4770 -# Can be dropped once we upgrade to pants 1.14.0 -requirements: pytest==3.0.7 - -# We have some modules that have side-effects upon import, including starting a repl, so we can't -# use python-eval to validate our BUILD deps currently. -[lint.python-eval] -skip: True - - -# We use isort for this. -[pycheck-import-order] -skip: True - - -[pycheck-pycodestyle] -# Code reference is here: http://pep8.readthedocs.org/en/latest/intro.html#error-codes -ignore: [ - # Aurora custom ignores: - 'E114', # indentation is not a multiple of four (comment) - 'E116', # unexpected indentation (comment) - 'E122', # continuation line missing indentation or outdented - 'E126', # continuation line over-indented for hanging indent - 'E129', # visually indented line with same indent as next logical line - 'E131', # continuation line unaligned for hanging indent - 'E306', # blank line before a nested definition - 'E731', # do not assign a lambda expression, use a def - 'W503', # line break before binary operator - 'W504', # line break after binary operator - - # These are a subset of the standard ignores pre-packaged for pycheck-pep8/pep8, but we need to - # repeat here since we add our own above: - 'E111', # indentation is not a multiple of four - 'E121', # continuation line under-indented for hanging indent - 'E125', # continuation line with same indent as next logical line - 'E127', # continuation line over-indented for visual indent - 'E128', # continuation line under-indented for visual indent - 'E301', # expected 1 blank line, found 0 # We allow consecutive exception declarations. - 'E401', # multiple imports on one line - 'E701', # multiple statements on one line (colon) # We allow: `class Exc(Exception): pass`. - ] - - -# We disable the class factoring check since it flags calls to superclass constructors from nested -# classes. We do this commonly enough in nested exception classes. -# The error looks like so: -# T800 Instead of Context.CommandError use self.CommandError or cls.CommandError with -# instancemethods and classmethods respectively. -[pycheck-class-factoring] -skip: True diff --git a/pants.toml b/pants.toml new file mode 100644 index 0000000..910836b --- /dev/null +++ b/pants.toml @@ -0,0 +1,114 @@ +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +[GLOBAL] +pants_version = "1.26.0" + +plugins = [ + 'pantsbuild.pants.contrib.python.checks==%(pants_version)s', +] + +# allow imports in BUILD files to read .auroraversion +build_file_imports = "warn" + + +[thrift] +version = "0.10.0" + + +[python-setup] +interpreter_constraints = ["CPython>=2.7,<3"] +platforms = [ + "current", +] +interpreter_search_paths = [ + "", + "", + "", + "", +] + + +[test.pytest] +# AURORA-1972: As a workaround for spuriously failing tests, test different +# targets in isolation +fast = false + +# newest version we can use before upgrading to python3 +[pytest] +version = "pytest>=4.6.6,<4.7" +pytest_plugins = [ +  "setuptools<45; python_version<'3'", +  "configparser==4.0.2; python_version<'3'", +  "zipp<2; python_version<'3'", +  "importlib-metadata<1.6; python_version<'3'", +  "pytest-timeout>=1.3.3,<1.4; python_version<'3'", +  "pytest-cov>=2.8.1,<3; python_version<'3'", +  "unittest2>=1.1.0; python_version<'3'", +  "more-itertools<6.0.0; python_version<'3'", +  "setuptools; python_version>='3.6'", +  "configparser==4.0.2; python_version>='3.6'", +  "zipp<2; python_version>='3'", +  "importlib-metadata<1.6; python_version>='3.6'", +  "pytest-timeout>=1.3.3,<1.4; python_version>='3.6'", +  "pytest-cov>=2.8.1,<3; python_version>='3.6'", +  "unittest2>=1.1.0; python_version>='3.6'", +  "more-itertools<6.0.0; python_version>='3.6'", +] + +# We have some modules that have side-effects upon import, including starting a repl, so we can't +# use python-eval to validate our BUILD deps currently. +[python-eval] +skip = true + + +# We use isort for this. +[pycheck-import-order] +skip = true + + +[pycheck-pycodestyle] +# Code reference is here: http://pep8.readthedocs.org/en/latest/intro.html#error-codes +ignore = [ + # Aurora custom ignores: + 'E114', # indentation is not a multiple of four (comment) + 'E116', # unexpected indentation (comment) + 'E122', # continuation line missing indentation or outdented + 'E126', # continuation line over-indented for hanging indent + 'E129', # visually indented line with same indent as next logical line + 'E131', # continuation line unaligned for hanging indent + 'E306', # blank line before a nested definition + 'E731', # do not assign a lambda expression, use a def + 'W503', # line break before binary operator + 'W504', # line break after binary operator + + # These are a subset of the standard ignores pre-packaged for pycheck-pep8/pep8, but we need to + # repeat here since we add our own above: + 'E111', # indentation is not a multiple of four + 'E121', # continuation line under-indented for hanging indent + 'E125', # continuation line with same indent as next logical line + 'E127', # continuation line over-indented for visual indent + 'E128', # continuation line under-indented for visual indent + 'E301', # expected 1 blank line, found 0 # We allow consecutive exception declarations. + 'E401', # multiple imports on one line + 'E701', # multiple statements on one line (colon) # We allow: `class Exc(Exception): pass`. +] + + +# We disable the class factoring check since it flags calls to superclass constructors from nested +# classes. We do this commonly enough in nested exception classes. +# The error looks like so: +# T800 Instead of Context.CommandError use self.CommandError or cls.CommandError with +# instancemethods and classmethods respectively. +[pycheck-class-factoring] +skip = true diff --git a/src/main/python/apache/aurora/admin/BUILD b/src/main/python/apache/aurora/admin/BUILD index b5d37f7..5d0cad9 100644 --- a/src/main/python/apache/aurora/admin/BUILD +++ b/src/main/python/apache/aurora/admin/BUILD @@ -15,7 +15,7 @@ import os python_library( name = '_admin', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:twitter.common.app', '3rdparty/python:twitter.common.log', diff --git a/src/main/python/apache/aurora/client/BUILD b/src/main/python/apache/aurora/client/BUILD index 9bd2554..eddc1d0 100644 --- a/src/main/python/apache/aurora/client/BUILD +++ b/src/main/python/apache/aurora/client/BUILD @@ -16,7 +16,7 @@ import os python_library( name = '_client', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:certifi', '3rdparty/python:chardet', diff --git a/src/main/python/apache/aurora/common/BUILD b/src/main/python/apache/aurora/common/BUILD index 2e6c5b3..bd1c883 100644 --- a/src/main/python/apache/aurora/common/BUILD +++ b/src/main/python/apache/aurora/common/BUILD @@ -16,7 +16,7 @@ import os python_library( name = 'common', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:certifi', '3rdparty/python:chardet', diff --git a/src/main/python/apache/aurora/config/BUILD b/src/main/python/apache/aurora/config/BUILD index 2f2d9ee..de06b1b 100644 --- a/src/main/python/apache/aurora/config/BUILD +++ b/src/main/python/apache/aurora/config/BUILD @@ -16,7 +16,7 @@ import os python_library( name = 'config', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:enum34', '3rdparty/python:pystachio', diff --git a/src/main/python/apache/aurora/executor/BUILD b/src/main/python/apache/aurora/executor/BUILD index f4e188f..f07ab7e 100644 --- a/src/main/python/apache/aurora/executor/BUILD +++ b/src/main/python/apache/aurora/executor/BUILD @@ -17,7 +17,7 @@ import os python_library( name = '_executor', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:mesos.interface', '3rdparty/python:pex', diff --git a/src/main/python/apache/aurora/kerberos/BUILD b/src/main/python/apache/aurora/kerberos/BUILD index 847852f..ffe924e 100644 --- a/src/main/python/apache/aurora/kerberos/BUILD +++ b/src/main/python/apache/aurora/kerberos/BUILD @@ -15,7 +15,7 @@ import os python_library( name = 'kerberos_auth', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:requests-kerberos', 'src/main/python/apache/aurora/common', @@ -24,7 +24,7 @@ python_library( python_library( name = '_kerberos', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ ':kerberos_auth', 'src/main/python/apache/aurora/admin', diff --git a/src/main/python/apache/aurora/tools/BUILD b/src/main/python/apache/aurora/tools/BUILD index 6717f92..60cbc1a 100644 --- a/src/main/python/apache/aurora/tools/BUILD +++ b/src/main/python/apache/aurora/tools/BUILD @@ -19,7 +19,7 @@ OBSERVER_SOURCE = 'thermos_observer.py' python_library( name = '_tools', - sources = rglobs('*.py', exclude=[[THERMOS_SOURCE], [OBSERVER_SOURCE]]), + sources = ['**/*.py', '!thermos.py', '!thermos_observer.py'], dependencies = [ '3rdparty/python:CherryPy', '3rdparty/python:twitter.common.app', diff --git a/src/main/python/apache/thermos/cli/BUILD b/src/main/python/apache/thermos/cli/BUILD index a4932b2..678b1eb 100644 --- a/src/main/python/apache/thermos/cli/BUILD +++ b/src/main/python/apache/thermos/cli/BUILD @@ -16,7 +16,7 @@ import os python_library( name = 'cli', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:pystachio', '3rdparty/python:twitter.common.app', diff --git a/src/main/python/apache/thermos/common/BUILD b/src/main/python/apache/thermos/common/BUILD index 0adabbf..d39836a 100644 --- a/src/main/python/apache/thermos/common/BUILD +++ b/src/main/python/apache/thermos/common/BUILD @@ -17,7 +17,7 @@ import os python_library( name = 'common', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:pystachio', '3rdparty/python:twitter.common.log', diff --git a/src/main/python/apache/thermos/config/BUILD b/src/main/python/apache/thermos/config/BUILD index 6e52c4b..5b4b638 100644 --- a/src/main/python/apache/thermos/config/BUILD +++ b/src/main/python/apache/thermos/config/BUILD @@ -17,7 +17,7 @@ import os python_library( name = 'config', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:pystachio', '3rdparty/python:twitter.common.lang', diff --git a/src/main/python/apache/thermos/core/BUILD b/src/main/python/apache/thermos/core/BUILD index 82448ce..402b377 100644 --- a/src/main/python/apache/thermos/core/BUILD +++ b/src/main/python/apache/thermos/core/BUILD @@ -17,7 +17,7 @@ import os python_library( name = 'core', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:psutil', '3rdparty/python:twitter.common.dirutil', diff --git a/src/main/python/apache/thermos/monitoring/BUILD b/src/main/python/apache/thermos/monitoring/BUILD index b3422cd..72c20c6 100644 --- a/src/main/python/apache/thermos/monitoring/BUILD +++ b/src/main/python/apache/thermos/monitoring/BUILD @@ -17,7 +17,7 @@ import os python_library( name = 'monitoring', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:jmespath', '3rdparty/python:psutil', diff --git a/src/main/python/apache/thermos/observer/BUILD b/src/main/python/apache/thermos/observer/BUILD index 03db308..03ac101 100644 --- a/src/main/python/apache/thermos/observer/BUILD +++ b/src/main/python/apache/thermos/observer/BUILD @@ -17,12 +17,12 @@ import os resources( name = 'ui', - sources = zglobs('**/assets/*', '**/*.tpl'), + sources = ['**/assets/*', '**/*.tpl'], ) python_library( name = 'observer', - sources = rglobs('*.py'), + sources = ['**/*.py'], dependencies = [ '3rdparty/python:bottle', '3rdparty/python:mako', diff --git a/src/test/python/apache/aurora/admin/BUILD b/src/test/python/apache/aurora/admin/BUILD index 093537e..c6a6182 100644 --- a/src/test/python/apache/aurora/admin/BUILD +++ b/src/test/python/apache/aurora/admin/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'admin', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:twitter.common.contextutil', diff --git a/src/test/python/apache/aurora/client/BUILD b/src/test/python/apache/aurora/client/BUILD index 0dc7b8e..156150d 100644 --- a/src/test/python/apache/aurora/client/BUILD +++ b/src/test/python/apache/aurora/client/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'client', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:mox', diff --git a/src/test/python/apache/aurora/client/api/BUILD b/src/test/python/apache/aurora/client/api/BUILD index e974224..fcf635d 100644 --- a/src/test/python/apache/aurora/client/api/BUILD +++ b/src/test/python/apache/aurora/client/api/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'api', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:mox', diff --git a/src/test/python/apache/aurora/client/cli/BUILD b/src/test/python/apache/aurora/client/cli/BUILD index 16c4eb5..92781f3 100644 --- a/src/test/python/apache/aurora/client/cli/BUILD +++ b/src/test/python/apache/aurora/client/cli/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'cli', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:twitter.common.contextutil', diff --git a/src/test/python/apache/aurora/client/docker/BUILD b/src/test/python/apache/aurora/client/docker/BUILD index 5ea2cf7..8db8b40 100644 --- a/src/test/python/apache/aurora/client/docker/BUILD +++ b/src/test/python/apache/aurora/client/docker/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'docker', - sources = globs('*py'), + sources = ['*py'], dependencies = [ '3rdparty/python:requests', '3rdparty/python:requests-mock', diff --git a/src/test/python/apache/aurora/client/hooks/BUILD b/src/test/python/apache/aurora/client/hooks/BUILD index 47c86d9..c0c315e 100644 --- a/src/test/python/apache/aurora/client/hooks/BUILD +++ b/src/test/python/apache/aurora/client/hooks/BUILD @@ -13,7 +13,7 @@ # python_tests(name = 'hooks', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', 'src/main/python/apache/aurora/common', diff --git a/src/test/python/apache/aurora/common/BUILD b/src/test/python/apache/aurora/common/BUILD index b3991ee..4d9602e 100644 --- a/src/test/python/apache/aurora/common/BUILD +++ b/src/test/python/apache/aurora/common/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'common', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:twitter.common.contextutil', diff --git a/src/test/python/apache/aurora/common/health_check/BUILD b/src/test/python/apache/aurora/common/health_check/BUILD index e73f0c0..e622f38 100644 --- a/src/test/python/apache/aurora/common/health_check/BUILD +++ b/src/test/python/apache/aurora/common/health_check/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'health_check', - sources = globs('*py'), + sources = ['*py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:mox', diff --git a/src/test/python/apache/aurora/config/BUILD b/src/test/python/apache/aurora/config/BUILD index 0930476..258ea97 100644 --- a/src/test/python/apache/aurora/config/BUILD +++ b/src/test/python/apache/aurora/config/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'config', - sources = globs('*py'), + sources = ['*py'], dependencies = [ '3rdparty/python:mock', '3rdparty/python:requests-mock', diff --git a/src/test/python/apache/aurora/tools/BUILD b/src/test/python/apache/aurora/tools/BUILD index bf3bbf9..924a936 100644 --- a/src/test/python/apache/aurora/tools/BUILD +++ b/src/test/python/apache/aurora/tools/BUILD @@ -14,7 +14,7 @@ python_tests( name = 'tools', - sources = globs('*.py'), + sources = ['*.py'], dependencies = [ '3rdparty/python:mock', 'src/main/python/apache/aurora/tools:thermos_observer',