Hi Fridolín, Currently, there is no real way to encode information about "build variants" in wheel metadata, except via ad hoc mechanisms like mangling the wheel package name (e.g. "pip install tensorflow-hdfs-xla", where "tensorflow-hdfs-xla" is treated as a separate project on PyPI that's unrelated to "tensorflow", can't fulfill dependencies that other packages declare on "tensorflow", etc.), or mangling the version number. Neither is very satisfactory.
I think that long term, the solution is something like the "reified extras" proposal that I first floated back in 2015: https://mail.python.org/pipermail/distutils-sig/2015-October/027364.html Unfortunately, python packaging is incredibly underresourced, so it doesn't move very quickly -- the reason nothing has happened since 2015 is that there are limited number of people with a limited number of volunteer hours working on these things, and so far it's all been going into fighting bigger fires. If this is something you need for commercial purposes, though, then I think there are several folks around who might be able push this forward on a contracting basis - let me know if you want me to make introductions. -n On Mon, Jul 2, 2018 at 2:02 AM, Fridolín Pokorný <[email protected]> wrote: > Hi all, > > we are trying to provide built wheels of TensorFlow. TensorFlow can be built > with various configuration options that include/exclude certain > functionality for the resulting wheel artifact - we would like to provide > multiple wheels based on desired configuration. An example can be support > for kafka, s3, xla, hdfs. The main issue we are struggling with is a lack of > specifying such features in python packages for users. Considering the > current wheel binary package format (PEP 491) there is no way to specify > such options in package names in the wheel naming convention. > > Even if there would be such ability, there are issues on how to specify > different configurations from the available ones. Considering different > wheels (e.g. tensorflow-1.8.0-py3-cp36m-linux_x86_64+hdfs+s3+kafka+xla.whl) > there is no straightforward way to specify desired features that an > installed wheel should provide. As a user, I don’t want to consume packages > that are named “tensorflow+hdfs+s3+kafka+xla” so I think this deserves > broader discussion in community and design decisions for providing > configuration and platform specific features for wheels. > > Are there any plans from community to incorporate such configuration options > for wheels? Also, how these compile time options should be included in the > resulting wheel as metadata? > > Thanks, > Fridolin > > _______________________________________________ > Wheel-builders mailing list > [email protected] > https://mail.python.org/mailman/listinfo/wheel-builders > -- Nathaniel J. Smith -- https://vorpus.org _______________________________________________ Wheel-builders mailing list [email protected] https://mail.python.org/mailman/listinfo/wheel-builders
