Google Summer of Code 2026 · Kubeflow
Selected contributor · “Composable Kale Notebooks with a Visual Pipeline Editor” ↗
Kale is a JupyterLab extension that compiles Jupyter notebooks into Kubeflow Pipelines. I designed and shipped the feature that lets several notebooks compose into a single pipeline, from the compiler internals to the JupyterLab UI.

Multi-notebook composition KEP-0812
A notebook: cell type that lets one notebook reference another, so several notebooks compile into a single Kubeflow pipeline. Merged after review by Kale's original author and maintainers.
notebook: references compileKalenotebook: reference compiles to a nested sub-pipeline, so each cell of the referenced notebook stays its own step. A root notebook can mix its own steps with references, and variables cross every kind of boundary, step to notebook, notebook to notebook, and notebook to step, each routed to the exact inner step that produces or consumes it. That routing is inferred from shared variable names with zero annotations; edges inside a notebook still come from prev:.Design proposal · KEP-0812 ↗Implementation · PR #867 ↗SubPipeline as a peer node
Each reference is modelled as a SubPipeline node sharing Step's interface, so it joins the pipeline DAG as a peer. Kale's graph and dependency layers needed no changes.
Recursive compilation
NotebookProcessor emits every notebook as a separately compilable DSL module plus a nested KFP v2 GraphComponent, so each cell stays independently cacheable and schedulable.
Zero-annotation data flow
AST analysis and PyFlakes infer execution order and artifact passing across notebook boundaries from shared variable names alone.
One renderer, byte-identical output
Consolidated three divergent Jinja2 emission templates into one renderer that preserves per-step Kubernetes configuration, proven byte-identical on compiled KFP IR across five pipelines. Added 28 tests.
Notebook cells in JupyterLab
Extended the extension with a Notebook cell type, path input, inline reference chips and a settings-gated rollout, replacing hand-edited notebook JSON.


