Jupyter Enhancement Proposals#

This repository contains enhancement proposals for the Jupyter ecosystem, known as Jupyter Enhancement Proposals or JEPs. Jupyter Enhancement Proposals will be used when presenting changes or additions that affect multiple components of the Jupyter ecosystem OR changes to a single key component.

See the Enhancement Proposal Guidelines for more information.

Nicely rendered version of the JEPs: https://jupyter.org/enhancement-proposals

Index of JEPs#

Below is a list of JEPs that have been Submitted in the past.

If a JEP is in the Submitted state, a pull-request is currently open for conversation and comments. If a JEP is in the Accepted state, the JEP has been merged into this repository, and work is encouraged to commence on the topic.

Number

Status

Title

PR

0004

Withdrawn

New Notebook Format for improved workflow integration

#04

0007

Withdrawn

Jupyter Extension Generator

#07

0008

Implemented

Diffing and Merging Notebooks

#08

0012

Implemented

Kernel Gateway

#12

0014

Submitted

Kernel Nanny

#14

0015

Withdrawn

Layout Namespaces and Discovery

#15

0016

Submitted

Notebook Translation and Localization

#16

0017

Implemented

Dashboards Notebook Extension

#17

0018

Implemented

Declarative Widgets Extension

#18

0022

Implemented

Move Dashboards Deployment Projects from Incubator to Attic

#22

0023

Submitted

Jupyter Template as Metadata

#23

0024

Submitted

Simplifying Error Reporting in Jupyter Protocol

#24

0025

Implemented

Enterprise Gateway

#25

0026

Withdrawn

Add Language Server Support to Jupyter Server and jupyterlab-monaco

#26

0028

Implemented

Standalone Jupyter Server

#28

0029

Implemented

Jupyter Enhancement Proposal updates

#29

0042

Implemented

Voila Incorporation

#43

0044

Implemented

Xeus Incorporation

#44

0047

Implemented

Jupyter Debugger Protocol

#47

0062

Implemented

Cell ID Addition to Notebook Format

#62

0065

Accepted

Replace PUB socket with XPUB socket

#65

0066

Accepted

Kernel Handshaking patternKernel Handshaking pattern

#66

0072

Accepted

Language server protocol (LSP)

#72

0079

Implemented

Build Jupyter Notebook v7 off of JupyterLab components

#79

0108

Accepted

Subdomain and repository for publishing schemas under jupyter.org

#108

0122

Accepted

Incorporate Jupyter Book as a subproject

#123

How do I submit a JEP?#

In order to submit a JEP, first read the Jupyter Enhancement Proposal Submission Guidelines which describes the JEP process.

In addition, read the JEP proposal template for guidance on the questions you should answer before officially submitting the JEP.

Docs hosting#

We use a GitHub action to build the documentation with Sphinx and push it to the gh-pages branch of the repository. This is then hosted at jupyter.org/enhancement-proposals.

We use a ReadTheDocs build to automatically generate previews of the documentation for Pull Requests. However this is not the publicly-hosted version of the documentation, it is just for PRs.

Build the enhancement proposal docs#

The Enhancement Proposal documentation is structured as a Sphinx documentation site that uses a them and configuration inspired by Jupyter Book.

To build the documentation locally, use the nox automation and environment management tool. Follow these steps:

  • Install nox:

    $ pip install nox
    
  • Build the docs from the enhancement-proposals folder:

    $ nox -s docs
    

This will automatically install the environment needed to build the documentation, and then place the output HTML in the _build/html folder.

To build the documentation with a live reload server, run:

$ nox -s docs-live

To manually install and build the documentation with Sphinx, install the requirements in requirements.txt and then run sphinx-build . _build/html.