Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation on migrating to Jupyter server #1

Open
Zsailer opened this issue Feb 20, 2019 · 1 comment
Open

Conversation on migrating to Jupyter server #1

Zsailer opened this issue Feb 20, 2019 · 1 comment

Comments

@Zsailer
Copy link
Owner

Zsailer commented Feb 20, 2019

The Jupyter Server JEP will affect Jupyter's configuration system. I'm opening this thread to discuss those changes here.

This repository provides a transparent comparison between the old (Notebook 5.x) configuration system and the new Jupyter Server configuration system. You can navigate this repository to explore how the architecture of the configuration system changes.

A summary of the changes proposed by Jupyter server:

  • Move server-specific configuration from jupyter_notebook_config.py|json into jupyter_server_config.py|json.
  • Server extensions configurations move from jupyter_notebok_config.d to jupyter_server_config.d.
  • The tornado server and web application move to jupyter_server. They become ServerApp and ServerWebApp
  • The NotebookApp becomes a server extension. It would only load notebook specific configuration/traitlets, from jupyter_notebook_config.py|json.
  • Server extensions are found using the jpserver_extensions trait instead of the nbserver_extensions trait in the ServerApp.
  • Extension configuration files in jupyter_server_config.d must be enabled using the jpserver_extensions trait. They are enabled by JSON config files in jupyter_server_config.d.
  • Extensions can create their own configuration files in {sys-prefix}/etc/jupyter/ or ~/.jupyter, i.e. jupyter_<my-extension>_config.py|json.

Here are some steps we can take to reduce the friction for transitioning:

  • Copy (not move) jupyter_notebook_config.py|json to jupyter_server_config.py|json
  • Copy (not move) jupyter_notebook_config.d/ to jupyter_server_config.d.
  • NotebookApp becomes ServerApp in all copied files.
  • Leftover server traits in jupyter_notebook_config.py|json get ignored when the notebook extension is initialized. Server traits are only read from jupyter_server_config.py|json.
@Zsailer
Copy link
Owner Author

Zsailer commented Feb 20, 2019

One of @mpacer's big concern is breaking the current configuration system. That would be bad news for users. I absolutely agree! How do we make this transition painless?

Also, using a "migration" application to reorder configuration is prone to errors and headache. Is there a better solution? Let's explore that here.

No matter what, I think we're going to be renaming configuration files and replacing NotebookApp with ServerApp. That's going to require some "migration". What do others think?

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

No branches or pull requests

1 participant