Skip to content

SOW for content fetching from non-git sources for nbgitpuller #6149

@yuvipanda

Description

@yuvipanda

nbgitpuller components

Note

Draft in progress here

It is useful to think about the various abstract functional components nbgitpuller has, so we can separate the various improvements and changes we need to make. It has five functional parts:

  1. Fetch content (currently this is git only)
  2. Resolve conflicts between changes in the upstream content and the user's changes (uses git, currently entangled with (1))
  3. A web UI to show progress of this fetching and conflict resolution
  4. A commandline UI to automatically do fetching and conflict resolution
  5. A web UI to generate links (https://nbgitpuller.readthedocs.io/en/latest/link.html)

This is one of 4 separate but related SOWs we are producing, so they can be discussed, funded and worked on clearly.

The Problem

nbgitpuller's core purpose was to remove the accidental complexity of using git for consuming content from the user side. But it left the possible accidental complexity of having to use git for creating content from the producer side. As we expand to more and more users, this starts becoming a problem.

Currently, git is used for both fetching the content (1) as well as resolving conflicts (2). We want to support multiple different sources for (1) while still supporting using git for (2).

Definition of Done

The SOW should propose implementation plans for:

  1. A mechanism to provide for alternate sources where the content can come from.
  2. two additional implementations for a new content source to make sure we have added an extensible method for future content sources. Pick sources that do not require authentication.
  3. Improvements to the url builder (5) to support additional content sources.
  4. Improvements to the command line UX (4) to make sure that also supports additional content sources

Out of scope

  1. The mechanism design should be left open to possibly support authenticated sources (as part of a different SOW, but the implementations only necessarily need to work with content sources that don't require authentication.
  2. nbgitpuller is focused on distributing content (notebooks, code files, etc) rather than data. So let's focus on content providers that are predominantly used for sharing content rather than data.

Prior Art

Four years ago, I spent time trying to make this happen with jupyterhub/nbgitpuller#194. It failed for a variety of primarily social reasons that I'm happy to provide context for to whoever is working on this project.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions