Paper over custom command limitations

The custom gRPC bdist command depends on numerous undocumented and
private behaviors of setuptools, wheel, distutils, etc. One such is the
ordering of generated distribution targets. We paper over this under the
assumption that the command will only be useful for gRPC devs, and
document with a command description a contractual obligation of users of
the command.
pull/5207/head
Masood Malekghassemi 9 years ago
parent 6e8a939669
commit b6d3a8238d
  1. 10
      src/python/grpcio/commands.py
  2. 8
      tools/run_tests/build_artifact_python.sh

@ -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)))

@ -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

Loading…
Cancel
Save