Skip to content
This repository has been archived by the owner on Dec 3, 2021. It is now read-only.

Lesson-specific Jupyter environment #146

Open
Mierdin opened this issue Dec 17, 2019 · 0 comments
Open

Lesson-specific Jupyter environment #146

Mierdin opened this issue Dec 17, 2019 · 0 comments

Comments

@Mierdin
Copy link
Member

Mierdin commented Dec 17, 2019

One of the biggest existing blockers to being able to use Jupyter notebooks en masse for lessons is that the dependencies for all lessons are baked into the Jupyter image. This image is used for all lessons that use a jupyter notebook.

This is extremely non-ideal for a few reasons:

  • It's impossible to support multiple lessons with conflicting requirement versions
  • Anyone that wants to use a jupyter notebook must first get their notebook's dependencies added to the jupyter environment. Not only is this non-obvious, but it crosses the boundary between curriculum and platform, which means that a new platform release would need to occur before the author could make use of the new image.

We need to come up with a solution to this that allows notebook dependencies to be totally contained within the curriculum and serviceable by the author. The jupyter image that we distribute as part of the platform should be able to ingest this and provide the right environment.

Just spitballing, but maybe stages can state their dependencies in a requirements.txt file alongside the notebook. That much seems obvious enough and should be easy to enforce in Antidote on lesson ingest. The problem will be figuring out how to safely build these environments without introducing a bunch of runtime uncertainty. I am not a fan of just-in-time environment construction, where we do an install of a requirements.txt file at startup. The system is already pretty reliant on 3rd-party systems to be online, this would just introduce pypi to the mix. Unfortunately I can't think of any alternatives at the moment, so maybe this is the right solution for now.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant