YugabyteDB build infrastructure upgrade

build the latest and greatest 2.19.0.0 in Docker

A couple of weeks ago I had a pleasure talking to Denis Magda and Franck Pachot from Yugabyte about my past Postgres foreign data wrapper contributions to the awesome YugabyteDB RDBMS. We discussed the whys and the hows, and reflected on my experiences as a contributor. Thanks for having me!

Towards the end we touched on the build infrastructure I created to support my work on said contributions. I was chuffed to learn that Franck used it internally!

The guys got a commitment out of me. I’ll publish a write up on how I build YugabyteDB from sources, and share some light on working with the code in the process of explaining the former.

So… after this long and boring introduction. As a prep for the write up I upgraded the build infrastructure to support the latest and greatest YugabyteDB v2.19.0.0.

The code is on GitHub[1].

Lots of changes in there, mainly:

  • AlmaLinux 8.8 for the build infrastructure, because CentOS Red Hat feud …
  • Single Docker image with Clang and GCC.
  • Build infrastructure supports multiple build targets.
  • Comes with preconfigured Ccache.
  • Build infrastructure targets linux/amd64, resulting YugabyteDB also linux/amd64.
  • Tested on Intel and ARM mac, and amd64 Linux, check the compatibility matrix[2].
  • Faced some issues[3].

Watch the recording for more context[4].