14 Apr 2017
So, in the past few days, I was exploring a build system for our Python project.
We eventually choose Pex over Subpar because it supports extracting the archive before executing our Python code. We need this capability because one of our resource file is a bash script that will be executed. A bug is filed for Subpar here.
We wanted to use Bazel because I currently work at Google and want to use our products as much as possible. Plus, its number of forks and stars are much higher than Pants.
However, for a Python project, there are 3 deal breakers:
I hacked together a code that makes Pip and Pex work with Bazel here – The code feels rather hacky, and I don't really want to maintain it on a longer term.
Not supporting test coverage is the last nail in the coffin. I can't even hack my way out of this.
So, I've decided to use Pants instead. Pants supports all of these out-of-the-box.
The good news is that, in the past 2 days, I integrated Pants and Bazel into our project multiple times. Once Bazel supports these 3 deal breakers, it'll take around 1 day to switch over.