Posts

Apache Superset from Scratch (2021)

I'm on a quest, to understand and map out as much of the Apache Superset code base as I can. In my day job, I have the opportunity to use Superset on a daily basis but I'm not intimately familiar with the code paths themselves. This series will revolve around the process on a M1 Macbook Air, but should generalize to most *nix systems.

My goal is to make noticeable progress on a daily basis. With the preamble out of the way, let's start!

The Superset codebase is large; where does one even begin? For new code bases, I generally like alternating between:

For breadth, I'll start with the Setup Local Environment for Development section from CONTRIBUTING.MD.

Python 3.7.x or 3.8.x are recommended for running the Superset backend. I'm on a Mac, and prefer to leave the default python that ships with the operating system to 2.7.x. Instead, I'll use Homebrew to install Python 3.8:

Now, both the python3 and pip3 commands work as expected (independent of the python and pip commands)!

Continue reading