diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py index 1561bbf05ed..eb5cbb34f08 100644 --- a/src/python/grpcio/commands.py +++ b/src/python/grpcio/commands.py @@ -187,7 +187,17 @@ class Install(install.install, WheelNameMixin): class BdistWheelCustomName(bdist_wheel.bdist_wheel, WheelNameMixin): """Thin wrapper around the bdist command to build with our custom name.""" + description = ("Create a gRPC custom-named wheel distribution. " + "Cannot be run with any other distribution-related command.") + def run(self): + # TODO(atash): if the hack we use to support Linux binaries becomes + # 'supported' (i.e. + # https://bitbucket.org/pypa/pypi/issues/120/binary-wheels-for-linux-are-not-supported + # is not solved and we see users beginning to use this command, ill-advised + # as that may be) consider making the following capable of running with + # other distribution-related commands. Currently it depends on the (AFAIK + # undocumented, private) ordering of the distribution files. bdist_wheel.bdist_wheel.run(self) output = self.distribution.dist_files[-1][2] target = os.path.join(self.dist_dir, '{}.whl'.format(self.wheel_name(True))) diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh index f22ddd9185f..f2c10aba7b1 100755 --- a/tools/run_tests/build_artifact_python.sh +++ b/tools/run_tests/build_artifact_python.sh @@ -43,7 +43,13 @@ GRPC_PYTHON_USE_CUSTOM_BDIST=0 \ GRPC_PYTHON_BUILD_WITH_CYTHON=1 \ ${SETARCH_CMD} python setup.py \ bdist_wheel \ - sdist \ + sdist + +# The bdist_wheel_grpc_custom command is finicky about command output ordering +# and thus ought to be run in a shell command separate of others. +GRPC_PYTHON_USE_CUSTOM_BDIST=0 \ +GRPC_PYTHON_BUILD_WITH_CYTHON=1 \ +${SETARCH_CMD} python setup.py \ bdist_wheel_grpc_custom mkdir -p artifacts