Illustration of sysiphos wheeling not a boulder but the Python logo up the hill.

Building the Fastest Python CI

Learn how to build a blazingly fast Python CI pipeline using uv, pex, and Grog. This post shows how to combine uv’s dependency caching with pex’s executable bundling to achieve sub-second build times in Python monorepos. We’ll explore techniques for dependency resolution, cross-platform builds, and efficient Docker packaging - all while keeping the setup lightweight and maintainable.

December 14, 2025 · 11 min · Christoph Pröschel

Grog

Based on my learnings and frustrations with tools like Bazel or Pants I created my own monorepo build tool, Grog. Grog centers pragmatism and simplicity in its design. Learn more about it in “Why Grog?”.

June 1, 2025 · Christoph Pröschel
Illustration of a mountain with four stages of a Python monorepo journey, from 'Valley of poly-repo despair' to 'Build tool nirvana'.

Python monorepo with uv and pex

Read the latest version of this blog post: Building the fastest Python CI With the current hype in AI it has become quite hard to avoid writing python and shipping it at scale. Unfortunately, the python packaging and environment system is so notoriously convoluted that there is even an infamous xkcd comic about it. Enter uv, the rising star of the python community that has succeeded in solving all these problems while also being significantly more performant. But while uv is great at managing your python environment it does not yet have a clear answer for how to bundle and ship them. ...

March 6, 2025 · 5 min · Christoph Pröschel