-
Couldn't load subscription status.
- Fork 355
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
Description
TLDR
We have two really cool educational courses in our dlthub-education repository: https://github.com/dlt-hub/dlthub-education:
- dlt fundamentals: https://github.com/dlt-hub/dlthub-education/tree/main/courses/dlt_fundamentals_dec_2024
- dlt advanced: https://github.com/dlt-hub/dlthub-education/tree/main/courses/dlt_advanced_2025
It would be cool to store them in our OSS repo, this way
- they should be easier to find for llm crawlers,
- we can lint them and keep them up to date
- we can create marimo versions
- we can launch colabs and possibly molabs (the marimo colab version) directly from the repo links.
- The users will also be able to run them locally if they want to.
Research phase
Let's do a test colab on a branch in our repo with the first one where check if the below steps work and discuss the outcome before we do all of them. For this,
- take the first colab and export it
- put it in our repo on a branch
- try to launch it directly in colab from the repo
- See what happens with the images and other content, we should only have code in the repo and might need to host images some place.
Implementation
Let's implement this in three phases, one PR each:
1. Copy colabs to oss repo
- Copy all colabs of the two courses (we can add more later) to the core repo as IPYNB files. I would propose to add them to
docs/education/dlt-fundamentals-courseanddocs/education/dlt-advanced-course. Give them useful filenames derived from the topics. - Create new docs pages where these are linked. Please talk to @AstrakhantsevaAA about where they go in the docs structure. Maybe
getting started -> education? Those pages should look like the ones in the repo above with a list of links to directly open the colabs, but these links should open the colabs directly from the github version. (Example link: https://colab.research.google.com/github/dagworks-inc/hamilton/blob/main/examples/caching/tutorial.ipynb) - Add instructions on how to run these colabs locally with jupyter
- You may need to exclude iypthon files from our max file size checker
2. Quality assurance and updated links
- Add linting to the colabs by creating a lint-notebooks command to the main makefile which lints and typechecks them. We need quite lenient linter rules, not much should have to be changed. We want to catch breaking changes that happen in the core library so that our notebooks stay up to date. @zilto knows how to lint ipython notebooks.
- Try to update all places where we link to our old colabs to use these new github links. This would be in the education repository and also in our learnworlds platform (talk to @AstrakhantsevaAA about this)
3. Marimo integration / support
Marimo has a converter that let's you convert IPYNB files into marimo notebooks. We can use this to generate marimo versions of each notebook. Test a few to see that they actually work before you fully convert all of them.
- Convert all notebooks that you copied into the repo in step 2 into marimo notebooks. Both versions should live side by side in the same folder.
- Add instructions on how to run those notebooks locally in edit mode to the docs pages you create in part 1
- Add linting and formatting to these marimo notebooks. They are regular python files, so it works the same way as for the rest of the codebase. Typechecking needs to be quite lenient again probably.
- Ideally we have a CI step that makes sure both IPYNB files and marimo notebooks stay in sync. This is optional, we can talk about it if we have time.
- Marimo will probably add a feature to molab (marimo colab) that would also allow us to launch there notebooks directly from github in molab, we'll have to see if this is available once we are at this step.
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
Type
Projects
Status
In Progress