Hi all,

We've had a lot of flakiness in our Python build recently, related to our
position of being early adopters of the pants python tooling. This has lead
to CI flakiness and has put us in a position of being user support for
Pants just for people to be able to build our project. I'd like to gauge
the community's support for moving to a more standard Python workflow.

Background

Right now we use pants for the several stages of our python build:

   - Resolving dependencies from PyPI (BUILD files instead of
   requirements.txt).
   - Generating Python code from our Thrift IDLs (python_thrift_library in
   BUILD files).
   - ./pants setup_py - Auto-generating sdists (.tar.gz with a setup.py)
   consumable as downstream libraries.
   - ./pants goal test - Running Python unit tests in a virtualenv with
   py.test.
   - ./pants build - Creating deployable artifacts (.pex).

Proposal

I'd like to propose we consider replacing parts of this build with more
standard mechanisms.

Specifically I'd like to replace the use of pants as the test runner with
tox <https://tox.readthedocs.org/en/latest/> and to replace pants as the
tool for deployable artifacts (used in the Vagrant environment for
tutorials and end-to-end tests) with bdist_wheel and pip install.

Users would retain the ability to use PEX at deploy-time if they want, as
we'll still be exporting a standard setup.py packages.

I'm sure there's a fair amount of work to get there, but before we start
down that path I'd like to come to consensus about whether this is a good
idea.

Please discuss.

Reply via email to