From 64991bd83ab2c42fcace49d327a09b6671898fb0 Mon Sep 17 00:00:00 2001 From: RRosio Date: Wed, 20 Jul 2022 10:53:29 -0700 Subject: [PATCH 01/25] updated contributing doc --- CONTRIBUTING.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index fa0390fbc..002e43cde 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -43,7 +43,7 @@ You can also use the installer from the `Node.js website `_. Installing the Jupyter NbClassic -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Once you have installed the dependencies mentioned above, use the following steps:: @@ -71,7 +71,7 @@ If you are working in development mode, you will see that your version of Jupyte Troubleshooting the Installation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you do not see that your Jupyter NbClassic is not running on dev mode, it's possible that you are +If you do not see that your Jupyter NbClassic is running on dev mode, it's possible that you are running other instances of Jupyter NbClassic. You can try the following steps: 1. Uninstall all instances of the NbClassic package. These include any installations you made using From bc748b8808623ebadcb766406f4f889f815f1d91 Mon Sep 17 00:00:00 2001 From: RRosio Date: Fri, 22 Jul 2022 16:03:00 -0700 Subject: [PATCH 02/25] Set up for nbclassic docs --- docs/source/conf.py | 2 +- docs/source/index.rst | 7 ++++--- docs/source/nbclassic.rst | 5 +++++ 3 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 docs/source/nbclassic.rst diff --git a/docs/source/conf.py b/docs/source/conf.py index 03574d7e5..8fc3f3157 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -93,7 +93,7 @@ master_doc = 'index' # General information about the project. -project = 'Jupyter Notebook' +project = 'NbClassic' copyright = '2015, Jupyter Team, https://jupyter.org' author = 'The Jupyter Team' diff --git a/docs/source/index.rst b/docs/source/index.rst index 71e2ca132..dda0fd680 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,6 +1,6 @@ -==================== -The Jupyter Notebook -==================== +=================================== +The Jupyter Notebook with NbClassic +=================================== * `Installation `_ * `Starting the Notebook `_ @@ -10,6 +10,7 @@ The Jupyter Notebook :caption: User Documentation notebook + nbclassic ui_components examples/Notebook/examples_index.rst troubleshooting diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst new file mode 100644 index 000000000..bb31271fe --- /dev/null +++ b/docs/source/nbclassic.rst @@ -0,0 +1,5 @@ +.. _htmlnotebook: + +Jupyter NbClassic +==================== + From 67dd443a60f15da913972cf3b8c45a1c4bd76d5f Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 25 Jul 2022 10:48:53 -0700 Subject: [PATCH 03/25] nbclassic rst should be displayed at homepage --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index dda0fd680..308824c3a 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -9,8 +9,8 @@ The Jupyter Notebook with NbClassic :maxdepth: 1 :caption: User Documentation - notebook nbclassic + notebook ui_components examples/Notebook/examples_index.rst troubleshooting From 591ab960e3fc5e768f2d7f4fc315881151e1be33 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 25 Jul 2022 10:51:08 -0700 Subject: [PATCH 04/25] outine structure for nbclassic docs --- docs/source/nbclassic.rst | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index bb31271fe..dd2cd5c25 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -3,3 +3,53 @@ Jupyter NbClassic ==================== +Introduction +------------ + +The nbclassic package is the implementation of the classic Jupyter +Notebook-v6 as a Jupyter Server extension. As proposed in the accepted +`Jupyter Enhancement Proposal #79`_ the development of this package +is due to plans being carried out to create a Notebook-v7, that is based on +the modern JupyterLab code-base. + +While Notebook-v7 provides a user experience equivalent to that of the +classic Notebook-v6, the technology stack used is incompatible with +that which many Jupyter Notebook users have developed their Jupyter +Notebook extensions with. Users may find themselves in need of a +way to continue using the Jupyter Notebook-v6 tech-stack as they +transition to using the Jupyter Notebook-v7. The NbClassic package +intends to address that need. + +.. _Jupyter Enhancement Proposal #79: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html + + +NbClassic Usage +--------------- + +Using nbclassic, notebook-v7 and jupyterlab + +Usign nbclassic and notebook-v6 + + +NbClassic Development +--------------------- + +Nbclassic is the package that holds the UI components of +the classic Jupyter Notebook-v6 and serves this UI through the server +endpoints provided by Jupyter Server. + +**The jupyter/notebook Repository**: The original jupyter/notebook GitHub +repository now holds the codebase for the new Jupyter Notebook (version 7). + + +NbClassic Timeline +------------------ +As proposed in the `JEP #79`_, the nbclassic +package will continue to be supported with critical security fixes +in the transition period as users move to using the more modern +Jupyter Notebook-v7. + +**Porting Notebook-v6 Extensions**: Work being done in parallel. + + +.. _JEP #79: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html \ No newline at end of file From 68129ea55b76743d0a9d28d0491cf066edf5721a Mon Sep 17 00:00:00 2001 From: RRosio Date: Wed, 27 Jul 2022 10:25:39 -0700 Subject: [PATCH 05/25] Updates to nbclassic usage and installation documentation --- docs/source/nbclassic.rst | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index dd2cd5c25..fa566fc9e 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -26,9 +26,36 @@ intends to address that need. NbClassic Usage --------------- -Using nbclassic, notebook-v7 and jupyterlab +Installation +~~~~~~~~~~~~ -Usign nbclassic and notebook-v6 +Installing from PyPI: +``> pip install nbclassic`` +This will automatically enable the extension in Jupyter Server. + +Launch directly: +``> jupyter nbclassic`` + +Alternatively, you can run Jupyter Server and visit the `/tree` endpoint: +``> jupyter server`` + + +NbClassic in the Jupyter Ecosystem +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +You can install the nbclassic, notebook-v7 and jupyterlab, all three of +which will be providing different user interfaces that will be available +on the same server. + +As nbclassic provides the static assets for notebook-v6.5.x, while +having both installed should cause no issues, the user interface provided +by these two packages will be the same. These UIs would be available in +different servers. + +When using nbclassic and notebook <= v6.4.x you can expect that these UIs +will not be only presented at different servers but may also differ as +potential changes to the nblcassic UI will not be reflected in Notebook +versions <= 6.4.x. NbClassic Development @@ -38,9 +65,11 @@ Nbclassic is the package that holds the UI components of the classic Jupyter Notebook-v6 and serves this UI through the server endpoints provided by Jupyter Server. -**The jupyter/notebook Repository**: The original jupyter/notebook GitHub +**The jupyter/notebook Repository**: The original `jupyter/notebook`_` GitHub repository now holds the codebase for the new Jupyter Notebook (version 7). +.. _jupyter/notebook: https://github.com/jupyter/notebook + NbClassic Timeline ------------------ From bcad40c91e0d3345895f0fd677f85a8a59e79ab2 Mon Sep 17 00:00:00 2001 From: RRosio Date: Wed, 27 Jul 2022 10:37:54 -0700 Subject: [PATCH 06/25] Adding nbclassic development faq --- docs/source/index.rst | 1 + docs/source/nbclassic_dev_faq.rst | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 docs/source/nbclassic_dev_faq.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index 308824c3a..877996439 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -34,6 +34,7 @@ The Jupyter Notebook with NbClassic :caption: Contributor Documentation contributing + nbclassic_dev_faq development_faq .. toctree:: diff --git a/docs/source/nbclassic_dev_faq.rst b/docs/source/nbclassic_dev_faq.rst new file mode 100644 index 000000000..06e54e469 --- /dev/null +++ b/docs/source/nbclassic_dev_faq.rst @@ -0,0 +1,6 @@ +.. _nbclassic_dev_faq: + +Developer FAQ +============= + +1. Where should I submit my issue? From 48d2cf838f24f1f097db34d6d2a6d5a18cb6f106 Mon Sep 17 00:00:00 2001 From: Rosio Date: Mon, 1 Aug 2022 12:42:26 -0700 Subject: [PATCH 07/25] Apply suggestions from code review update project naming Co-authored-by: Eric Charles --- docs/source/conf.py | 2 +- docs/source/index.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8fc3f3157..e5031726d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -93,7 +93,7 @@ master_doc = 'index' # General information about the project. -project = 'NbClassic' +project = 'Jupyter NbClassic' copyright = '2015, Jupyter Team, https://jupyter.org' author = 'The Jupyter Team' diff --git a/docs/source/index.rst b/docs/source/index.rst index 877996439..631e083da 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,5 +1,5 @@ =================================== -The Jupyter Notebook with NbClassic +The Jupyter NbClassic =================================== * `Installation `_ From ee1a812f1664fe2399de83806b514ecab88d8df6 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 1 Aug 2022 14:09:14 -0700 Subject: [PATCH 08/25] Add reference to team-compass issue detailing plans for nbclassic and notebook --- docs/source/nbclassic.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index fa566fc9e..776c7da5e 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -42,6 +42,8 @@ Alternatively, you can run Jupyter Server and visit the `/tree` endpoint: NbClassic in the Jupyter Ecosystem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Read more details about the changes currently taking place in the +Jupyter Ecosystem in this `team-compass issue`_. You can install the nbclassic, notebook-v7 and jupyterlab, all three of which will be providing different user interfaces that will be available @@ -57,6 +59,7 @@ will not be only presented at different servers but may also differ as potential changes to the nblcassic UI will not be reflected in Notebook versions <= 6.4.x. +.. _team-compass issue: https://github.com/jupyter/notebook-team-compass/issues/5#issuecomment-1085254000 NbClassic Development --------------------- From de9f73975d9049db60704c797800a7518890ce73 Mon Sep 17 00:00:00 2001 From: RRosio Date: Wed, 3 Aug 2022 15:43:13 -0700 Subject: [PATCH 09/25] FAQ answer with information on where to submit issues --- docs/source/nbclassic_dev_faq.rst | 34 +++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/docs/source/nbclassic_dev_faq.rst b/docs/source/nbclassic_dev_faq.rst index 06e54e469..478f292df 100644 --- a/docs/source/nbclassic_dev_faq.rst +++ b/docs/source/nbclassic_dev_faq.rst @@ -4,3 +4,37 @@ Developer FAQ ============= 1. Where should I submit my issue? + +The Jupyter Notebook v6.4.x will only be taking security fixes, you can follow +these guidelines to `report a vulnerability`_. + +For Notebook v6.5.x, as it is intended to be end of life and will receive only +bug and security fixes, issues of this type in the frontend should be reported in +the `jupyter/nbclassic`_ repository, bug and security issues for the server can be +submitted in the `jupyter/notebook`_ repository. + +Generally, user interface issues dealing with the nbclassic package can be +submitted to the `jupyter/nbclassic`_ repository, while server issues can be +reported to the `jupyter_server/jupyter_server`_ repository. + +Notebook v7.x issues would require closer consideration as they could be +reported in the `jupyter/notebook`_, `jupyterlab/jupyterlab`_, or +`jupyter_server/jupyter_server`_ repositories depending on the issue. + +.. _`report a vulnerability`: https://github.com/jupyter/security/blob/main/docs/vulnerability-handling.md#reporting-vulnerabilities +.. _`jupyter/nbclassic`: https://github.com/jupyter/nbclassic +.. _`jupyter/notebook`: https://github.com/jupyter/notebook +.. _`jupyter_server/jupyter_server`: https://github.com/jupyter-server/jupyter_server +.. _`jupyterlab/jupyterlab`: https://github.com/jupyterlab/jupyterlab + +The Jupyter Community appreciates your efforts in making sure your issue is submitted to the correct project. +There are many projects within the Jupyter ecosystem which can mean some issues are best suited for repositories +different than those in which they may have been opened. In the case that the issue belongs in a different +repository, we can use the `MeeseeksDev bot`_ to move the issue to the appropriate repository so long as the +target repository is included in the `allowed organization list`_ in the MeeseeksDev codebase. You can see a +list of the Github links to Jupyter organizations, and the different Jupyter projects under each, in the +`Jupyter Community`_ page. + +.. _`MeeseeksDev bot`: https://github.com/MeeseeksBox/MeeseeksDev#meeseeksdev-migrate-to-target-orgrepo +.. _`allowed organization list`: https://github.com/MeeseeksBox/MeeseeksDev/blob/master/meeseeksdev/__init__.py#L26 +.. _`Jupyter Community`: https://jupyter.org/community \ No newline at end of file From 83769ac18fa48cc94637a38438dcdec32bfbe026 Mon Sep 17 00:00:00 2001 From: Rosio Date: Wed, 17 Aug 2022 10:06:00 -0700 Subject: [PATCH 10/25] Update docs/source/nbclassic.rst Co-authored-by: Zachary Sailer --- docs/source/nbclassic.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index 776c7da5e..d2a9ddaa7 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -56,7 +56,7 @@ different servers. When using nbclassic and notebook <= v6.4.x you can expect that these UIs will not be only presented at different servers but may also differ as -potential changes to the nblcassic UI will not be reflected in Notebook +potential changes to the nbclassic UI will not be reflected in Notebook versions <= 6.4.x. .. _team-compass issue: https://github.com/jupyter/notebook-team-compass/issues/5#issuecomment-1085254000 From 445d4c76eea5d0c10cff99d01b2100eaf2eae685 Mon Sep 17 00:00:00 2001 From: RRosio Date: Fri, 9 Sep 2022 08:18:51 -0700 Subject: [PATCH 11/25] update docs with nbclassic development section --- docs/source/nbclassic_dev_faq.rst | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/source/nbclassic_dev_faq.rst b/docs/source/nbclassic_dev_faq.rst index 478f292df..21dc53854 100644 --- a/docs/source/nbclassic_dev_faq.rst +++ b/docs/source/nbclassic_dev_faq.rst @@ -37,4 +37,27 @@ list of the Github links to Jupyter organizations, and the different Jupyter pro .. _`MeeseeksDev bot`: https://github.com/MeeseeksBox/MeeseeksDev#meeseeksdev-migrate-to-target-orgrepo .. _`allowed organization list`: https://github.com/MeeseeksBox/MeeseeksDev/blob/master/meeseeksdev/__init__.py#L26 -.. _`Jupyter Community`: https://jupyter.org/community \ No newline at end of file +.. _`Jupyter Community`: https://jupyter.org/community + +The Development of NbClassic +============================ + +- Entrypoints in NbClassic + - In NbClassic entrypoints have been renamed (`Rename duplicate entrypoints #138`_) to: + + - ``jupyter-nbclassic-extension`` + - ``jupyter nbclassic-serverextension`` + - ``jupyter-nbclassic-bundlerextension`` + + - The decision to rename these entrypoints came about after some deliberation and consideration for user experience. When considering the confusion that having a more implicit handling of the entrypoints might pose, the concensus was that renaming the entrypoints would allow for more observability and it would help highlight some of the changes that are happening in the Jupyter ecosystem. + +.. _`Rename duplicate entrypoints #138`: https://github.com/jupyter/nbclassic/pull/138 + + +- Providing backwards compatibility with the `jupyter_notebook_config.py` file + - With the goal of allowing NbClassic to be installed along with Notebook 7, the release of NbClassic v0.4 included changing the project name from `notebook` to `nbclassic`. In changing the 'name' attribute to be `nbclassic`, the traitlet behavior changed and resulted in the configuration file which was previously named `jupyter_notebook_config`, to be named `jupyter_nbclassic_config`. However, this was updated to manually set the file name to `jupyter_notebook_config`. With this, the configuration file is picked up whether Notebook or NbClassic are installed. + +- Endpoints in NbClassic + - NbClassic handlers have been updated to account for Notebook 7 being installed (`Handlers under nbclassic if notebook 7 is found`_). If so, the resources from nbclassic will be served under the ``/nbclassic/`` URL subpath, so as to not interfere with those resources being served by Jupyter Notebook. + +.. _`Handlers under nbclassic if notebook 7 is found`: https://github.com/jupyter/nbclassic/pull/141 \ No newline at end of file From ca50c81e08282e5084677634ad5aea9e21f97c09 Mon Sep 17 00:00:00 2001 From: RRosio Date: Sun, 11 Sep 2022 21:12:31 -0700 Subject: [PATCH 12/25] reorder sections and add a section for known issues --- docs/source/nbclassic_dev_faq.rst | 106 ++++++++++++++++++------------ 1 file changed, 65 insertions(+), 41 deletions(-) diff --git a/docs/source/nbclassic_dev_faq.rst b/docs/source/nbclassic_dev_faq.rst index 21dc53854..08b695df9 100644 --- a/docs/source/nbclassic_dev_faq.rst +++ b/docs/source/nbclassic_dev_faq.rst @@ -1,46 +1,12 @@ -.. _nbclassic_dev_faq: - -Developer FAQ -============= - -1. Where should I submit my issue? - -The Jupyter Notebook v6.4.x will only be taking security fixes, you can follow -these guidelines to `report a vulnerability`_. - -For Notebook v6.5.x, as it is intended to be end of life and will receive only -bug and security fixes, issues of this type in the frontend should be reported in -the `jupyter/nbclassic`_ repository, bug and security issues for the server can be -submitted in the `jupyter/notebook`_ repository. - -Generally, user interface issues dealing with the nbclassic package can be -submitted to the `jupyter/nbclassic`_ repository, while server issues can be -reported to the `jupyter_server/jupyter_server`_ repository. - -Notebook v7.x issues would require closer consideration as they could be -reported in the `jupyter/notebook`_, `jupyterlab/jupyterlab`_, or -`jupyter_server/jupyter_server`_ repositories depending on the issue. +The Development of NbClassic +============================ -.. _`report a vulnerability`: https://github.com/jupyter/security/blob/main/docs/vulnerability-handling.md#reporting-vulnerabilities -.. _`jupyter/nbclassic`: https://github.com/jupyter/nbclassic -.. _`jupyter/notebook`: https://github.com/jupyter/notebook -.. _`jupyter_server/jupyter_server`: https://github.com/jupyter-server/jupyter_server -.. _`jupyterlab/jupyterlab`: https://github.com/jupyterlab/jupyterlab +Here you will find information about some especially noteworthy updates made in NbClassic, issues that have been reported +and common questions. -The Jupyter Community appreciates your efforts in making sure your issue is submitted to the correct project. -There are many projects within the Jupyter ecosystem which can mean some issues are best suited for repositories -different than those in which they may have been opened. In the case that the issue belongs in a different -repository, we can use the `MeeseeksDev bot`_ to move the issue to the appropriate repository so long as the -target repository is included in the `allowed organization list`_ in the MeeseeksDev codebase. You can see a -list of the Github links to Jupyter organizations, and the different Jupyter projects under each, in the -`Jupyter Community`_ page. -.. _`MeeseeksDev bot`: https://github.com/MeeseeksBox/MeeseeksDev#meeseeksdev-migrate-to-target-orgrepo -.. _`allowed organization list`: https://github.com/MeeseeksBox/MeeseeksDev/blob/master/meeseeksdev/__init__.py#L26 -.. _`Jupyter Community`: https://jupyter.org/community - -The Development of NbClassic -============================ +Noteworthy Updates in NbClassic +-------------------------------- - Entrypoints in NbClassic - In NbClassic entrypoints have been renamed (`Rename duplicate entrypoints #138`_) to: @@ -60,4 +26,62 @@ The Development of NbClassic - Endpoints in NbClassic - NbClassic handlers have been updated to account for Notebook 7 being installed (`Handlers under nbclassic if notebook 7 is found`_). If so, the resources from nbclassic will be served under the ``/nbclassic/`` URL subpath, so as to not interfere with those resources being served by Jupyter Notebook. -.. _`Handlers under nbclassic if notebook 7 is found`: https://github.com/jupyter/nbclassic/pull/141 \ No newline at end of file +.. _`Handlers under nbclassic if notebook 7 is found`: https://github.com/jupyter/nbclassic/pull/141 + +NbClassic Developer FAQ +----------------------- + +1. Where should I submit my issue? + + The Jupyter Notebook v6.4.x will only be taking security fixes, you can follow + these guidelines to `report a vulnerability`_. + + For Notebook v6.5.x, as it is intended to be end of life and will receive only + bug and security fixes, issues of this type in the frontend should be reported in + the `jupyter/nbclassic`_ repository, bug and security issues for the server can be + submitted in the `jupyter/notebook`_ repository. + + Generally, user interface issues dealing with the nbclassic package can be + submitted to the `jupyter/nbclassic`_ repository, while server issues can be + reported to the `jupyter_server/jupyter_server`_ repository. + + Notebook v7.x issues would require closer consideration as they could be + reported in the `jupyter/notebook`_, `jupyterlab/jupyterlab`_, or + `jupyter_server/jupyter_server`_ repositories depending on the issue. + + .. _`report a vulnerability`: https://github.com/jupyter/security/blob/main/docs/vulnerability-handling.md#reporting-vulnerabilities + .. _`jupyter/nbclassic`: https://github.com/jupyter/nbclassic + .. _`jupyter/notebook`: https://github.com/jupyter/notebook + .. _`jupyter_server/jupyter_server`: https://github.com/jupyter-server/jupyter_server + .. _`jupyterlab/jupyterlab`: https://github.com/jupyterlab/jupyterlab + + The Jupyter Community appreciates your efforts in making sure your issue is submitted to the correct project. + There are many projects within the Jupyter ecosystem which can mean some issues are best suited for repositories + different than those in which they may have been opened. In the case that the issue belongs in a different + repository, we can use the `MeeseeksDev bot`_ to move the issue to the appropriate repository so long as the + target repository is included in the `allowed organization list`_ in the MeeseeksDev codebase. You can see a + list of the Github links to Jupyter organizations, and the different Jupyter projects under each, in the + `Jupyter Community`_ page. + + .. _`MeeseeksDev bot`: https://github.com/MeeseeksBox/MeeseeksDev#meeseeksdev-migrate-to-target-orgrepo + .. _`allowed organization list`: https://github.com/MeeseeksBox/MeeseeksDev/blob/master/meeseeksdev/__init__.py#L26 + .. _`Jupyter Community`: https://jupyter.org/community + + +Known issues +------------ + +Bellow are some known bugs and issues with the NbClassic project. These are items that may be of particular interest to users +migrating from notebook to nbclassic. + +1. `#140 Error using jupyter_nbextensions_configurator with nbclassic `_ is a +known issue with partial fix `Support nbclassic while updating the static path `_ +pending to be merged into the `Jupyter-contrib/jupyter_nbextensions_configurator `_ repository. + + Once a release with this fix is available, users will be able to activate the extension with the following commands:: + + $ pip install jupyter_nbextensions_configurator + $ jupyter nbextension install --sys-prefix --py jupyter_nbextensions_configurator --overwrite + $ jupyter nbextension enable --sys-prefix --py jupyter_nbextensions_configurator + $ jupyter serverextension install --sys-prefix --py jupyter_nbextensions_configurator --overwrite + $ jupyter serverextension enable --sys-prefix --py jupyter_nbextensions_configurator \ No newline at end of file From 3367d2e612925b00475931b924e1e6fdba50d354 Mon Sep 17 00:00:00 2001 From: RRosio Date: Sun, 11 Sep 2022 23:50:14 -0700 Subject: [PATCH 13/25] update naming convention from notebook v6 or v7 to notebook 6 or 7 --- docs/source/nbclassic.rst | 26 ++++++++++++++------------ docs/source/nbclassic_dev_faq.rst | 8 ++++---- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index d2a9ddaa7..189902b52 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -7,17 +7,17 @@ Introduction ------------ The nbclassic package is the implementation of the classic Jupyter -Notebook-v6 as a Jupyter Server extension. As proposed in the accepted +Notebook 6 as a Jupyter Server extension. As proposed in the accepted `Jupyter Enhancement Proposal #79`_ the development of this package -is due to plans being carried out to create a Notebook-v7, that is based on +is due to plans being carried out to create a Notebook 7, that is based on the modern JupyterLab code-base. -While Notebook-v7 provides a user experience equivalent to that of the -classic Notebook-v6, the technology stack used is incompatible with +While Notebook 7 provides a user experience equivalent to that of the +classic Notebook 6, the technology stack used is incompatible with that which many Jupyter Notebook users have developed their Jupyter Notebook extensions with. Users may find themselves in need of a -way to continue using the Jupyter Notebook-v6 tech-stack as they -transition to using the Jupyter Notebook-v7. The NbClassic package +way to continue using the Jupyter Notebook 6 tech-stack as they +transition to using the Jupyter Notebook 7. The NbClassic package intends to address that need. .. _Jupyter Enhancement Proposal #79: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html @@ -45,16 +45,16 @@ NbClassic in the Jupyter Ecosystem Read more details about the changes currently taking place in the Jupyter Ecosystem in this `team-compass issue`_. -You can install the nbclassic, notebook-v7 and jupyterlab, all three of +You can install the nbclassic, notebook 7 and jupyterlab, all three of which will be providing different user interfaces that will be available on the same server. -As nbclassic provides the static assets for notebook-v6.5.x, while +As nbclassic provides the static assets for notebook 6.5.x, while having both installed should cause no issues, the user interface provided by these two packages will be the same. These UIs would be available in different servers. -When using nbclassic and notebook <= v6.4.x you can expect that these UIs +When using nbclassic and notebook <= 6.4.x you can expect that these UIs will not be only presented at different servers but may also differ as potential changes to the nbclassic UI will not be reflected in Notebook versions <= 6.4.x. @@ -65,7 +65,7 @@ NbClassic Development --------------------- Nbclassic is the package that holds the UI components of -the classic Jupyter Notebook-v6 and serves this UI through the server +the classic Jupyter Notebook 6 and serves this UI through the server endpoints provided by Jupyter Server. **The jupyter/notebook Repository**: The original `jupyter/notebook`_` GitHub @@ -79,9 +79,11 @@ NbClassic Timeline As proposed in the `JEP #79`_, the nbclassic package will continue to be supported with critical security fixes in the transition period as users move to using the more modern -Jupyter Notebook-v7. +Jupyter Notebook 7. -**Porting Notebook-v6 Extensions**: Work being done in parallel. +**Porting Notebook 6 Extensions**: Work being done in parallel. +ou can find a helpful list of classical Notebook extensions and corresponding Jupyterlab extensions +if available at the `Jupyterlab-contrib website `_. .. _JEP #79: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html \ No newline at end of file diff --git a/docs/source/nbclassic_dev_faq.rst b/docs/source/nbclassic_dev_faq.rst index 08b695df9..1cf8f3e02 100644 --- a/docs/source/nbclassic_dev_faq.rst +++ b/docs/source/nbclassic_dev_faq.rst @@ -21,7 +21,7 @@ Noteworthy Updates in NbClassic - Providing backwards compatibility with the `jupyter_notebook_config.py` file - - With the goal of allowing NbClassic to be installed along with Notebook 7, the release of NbClassic v0.4 included changing the project name from `notebook` to `nbclassic`. In changing the 'name' attribute to be `nbclassic`, the traitlet behavior changed and resulted in the configuration file which was previously named `jupyter_notebook_config`, to be named `jupyter_nbclassic_config`. However, this was updated to manually set the file name to `jupyter_notebook_config`. With this, the configuration file is picked up whether Notebook or NbClassic are installed. + - With the goal of allowing NbClassic to be installed along with Notebook 7, the release of NbClassic 0.4 included changing the project name from `notebook` to `nbclassic`. In changing the 'name' attribute to be `nbclassic`, the traitlet behavior changed and resulted in the configuration file which was previously named `jupyter_notebook_config`, to be named `jupyter_nbclassic_config`. However, this was updated to manually set the file name to `jupyter_notebook_config`. With this, the configuration file is picked up whether Notebook or NbClassic are installed. - Endpoints in NbClassic - NbClassic handlers have been updated to account for Notebook 7 being installed (`Handlers under nbclassic if notebook 7 is found`_). If so, the resources from nbclassic will be served under the ``/nbclassic/`` URL subpath, so as to not interfere with those resources being served by Jupyter Notebook. @@ -33,10 +33,10 @@ NbClassic Developer FAQ 1. Where should I submit my issue? - The Jupyter Notebook v6.4.x will only be taking security fixes, you can follow + The Jupyter Notebook 6.4.x will only be taking security fixes, you can follow these guidelines to `report a vulnerability`_. - For Notebook v6.5.x, as it is intended to be end of life and will receive only + For Notebook 6.5.x, as it is intended to be end of life and will receive only bug and security fixes, issues of this type in the frontend should be reported in the `jupyter/nbclassic`_ repository, bug and security issues for the server can be submitted in the `jupyter/notebook`_ repository. @@ -45,7 +45,7 @@ NbClassic Developer FAQ submitted to the `jupyter/nbclassic`_ repository, while server issues can be reported to the `jupyter_server/jupyter_server`_ repository. - Notebook v7.x issues would require closer consideration as they could be + Notebook 7.x issues would require closer consideration as they could be reported in the `jupyter/notebook`_, `jupyterlab/jupyterlab`_, or `jupyter_server/jupyter_server`_ repositories depending on the issue. From 7cef969f895ce71d19e5328f41b429a21d99e154 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 02:21:03 -0700 Subject: [PATCH 14/25] update home page with nbclassic internal link and move notebook external links to notebook section --- docs/source/index.rst | 9 ++++----- docs/source/nbclassic.rst | 1 + docs/source/notebook.rst | 3 +++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 631e083da..15fa7879c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,9 +1,8 @@ -=================================== -The Jupyter NbClassic -=================================== +================== +Jupyter NbClassic +================== -* `Installation `_ -* `Starting the Notebook `_ +:ref:`Getting Started ` .. toctree:: :maxdepth: 1 diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index 189902b52..4550e10f4 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -22,6 +22,7 @@ intends to address that need. .. _Jupyter Enhancement Proposal #79: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html +.. _InstallationTag: NbClassic Usage --------------- diff --git a/docs/source/notebook.rst b/docs/source/notebook.rst index 460fbadaa..2b42984e7 100644 --- a/docs/source/notebook.rst +++ b/docs/source/notebook.rst @@ -3,6 +3,9 @@ The Jupyter Notebook ==================== +* `Installation `_ +* `Starting the Notebook `_ + Introduction ------------ From 3d31208cdf74eccfb2dae7d96c77925c15d8365e Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 02:50:47 -0700 Subject: [PATCH 15/25] fix link indentation --- docs/source/config_overview.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index 96356d07a..f4a358b4c 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -43,8 +43,7 @@ front-end Notebook client (i.e. the familiar notebook interface). $ jupyter notebook --generate-config - :ref:`Command line arguments for configuration ` settings are - documented in the configuration file and the user documentation. + :ref:`Command line arguments for configuration ` settings are documented in the configuration file and the user documentation. - :ref:`Running a Notebook server ` - Related: `Configuring a language kernel `_ From ece7b2391e300829debcf896ada70ceebfafbbd8 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 03:08:22 -0700 Subject: [PATCH 16/25] add some additional config sections to nbclassic docs --- docs/source/nbclassic.rst | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index 4550e10f4..6bb52275a 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -40,6 +40,20 @@ Launch directly: Alternatively, you can run Jupyter Server and visit the `/tree` endpoint: ``> jupyter server`` +Configuration +~~~~~~~~~~~~~ + +To create a ``jupyter_nbclassic_config.py`` file in the ``.jupyter`` directory you can use the following command:: + + $ jupyter nbclassic --generate-config + +Options +~~~~~~~ + +You can view a list of the available options by typing:: + + $ jupyter nbclassic --help + NbClassic in the Jupyter Ecosystem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -65,10 +79,13 @@ versions <= 6.4.x. NbClassic Development --------------------- -Nbclassic is the package that holds the UI components of +`Nbclassic `_ is the package that holds the UI components of the classic Jupyter Notebook 6 and serves this UI through the server endpoints provided by Jupyter Server. +*Jupyter Server Extensions* +- `Authoring a basic server extension `_ + **The jupyter/notebook Repository**: The original `jupyter/notebook`_` GitHub repository now holds the codebase for the new Jupyter Notebook (version 7). From d1db94c46149ebac9cb2c989d4698bd099422911 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 09:34:38 -0700 Subject: [PATCH 17/25] removing local reference to nbclassic usage --- docs/source/index.rst | 2 -- docs/source/nbclassic.rst | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 15fa7879c..c4f8535a3 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,8 +2,6 @@ Jupyter NbClassic ================== -:ref:`Getting Started ` - .. toctree:: :maxdepth: 1 :caption: User Documentation diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index 6bb52275a..9e8af8d2f 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -22,7 +22,7 @@ intends to address that need. .. _Jupyter Enhancement Proposal #79: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html -.. _InstallationTag: +.. _NbClassicUsage: NbClassic Usage --------------- From c80a6405ecd051df8209152a70bc18350b2119b2 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 09:59:59 -0700 Subject: [PATCH 18/25] add getting started link to usage documentation and restore previous reference indentation --- docs/source/config_overview.rst | 4 +++- docs/source/index.rst | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index f4a358b4c..a16780ad1 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -43,7 +43,9 @@ front-end Notebook client (i.e. the familiar notebook interface). $ jupyter notebook --generate-config - :ref:`Command line arguments for configuration ` settings are documented in the configuration file and the user documentation. + :ref:`Command line arguments for configuration ` settings are + documented in the configuration file and the user documentation. + .. :ref:`Command line arguments for configuration ` settings are documented in the configuration file and the user documentation. - :ref:`Running a Notebook server ` - Related: `Configuring a language kernel `_ diff --git a/docs/source/index.rst b/docs/source/index.rst index c4f8535a3..db1273d5f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,6 +2,8 @@ Jupyter NbClassic ================== +:ref:`Getting Started ` + .. toctree:: :maxdepth: 1 :caption: User Documentation From 4946e6ffad97f1479e2fd74d7d0c7f118aa9c861 Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 15:18:19 -0700 Subject: [PATCH 19/25] revert change that coincided with downstream test fail --- docs/source/config_overview.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index a16780ad1..e3d1817a4 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -44,9 +44,8 @@ front-end Notebook client (i.e. the familiar notebook interface). $ jupyter notebook --generate-config :ref:`Command line arguments for configuration ` settings are - documented in the configuration file and the user documentation. - .. :ref:`Command line arguments for configuration ` settings are documented in the configuration file and the user documentation. - + documented in the configuration file and the user documentation. + - :ref:`Running a Notebook server ` - Related: `Configuring a language kernel `_ to run in the Notebook server enables your server to run other languages, like R or Julia. From ee201ac66ba7d1db904f51dc148147bd48ed295b Mon Sep 17 00:00:00 2001 From: RRosio Date: Mon, 12 Sep 2022 15:54:07 -0700 Subject: [PATCH 20/25] fix broken link and reformat referrence --- docs/source/config_overview.rst | 3 +-- docs/source/security.rst | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index e3d1817a4..793776cc8 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -43,8 +43,7 @@ front-end Notebook client (i.e. the familiar notebook interface). $ jupyter notebook --generate-config - :ref:`Command line arguments for configuration ` settings are - documented in the configuration file and the user documentation. + :ref:`Command line arguments for configuration ` settings are documented in the configuration file and the user documentation. - :ref:`Running a Notebook server ` - Related: `Configuring a language kernel `_ diff --git a/docs/source/security.rst b/docs/source/security.rst index 2d3cfb227..981fb0b74 100644 --- a/docs/source/security.rst +++ b/docs/source/security.rst @@ -224,4 +224,4 @@ To share a signatures database among users, you can configure: to specify a non-default path to the SQLite database (of notebook hashes, essentially). We are aware that SQLite doesn't work well on NFS and we are -`working out better ways to do this `_. +`working out better ways to do this `_. From 01a8e86fb3ec0b2363423a602de647559e03cf8e Mon Sep 17 00:00:00 2001 From: RRosio Date: Tue, 13 Sep 2022 09:28:50 -0700 Subject: [PATCH 21/25] updating notebook referrences to nbclassic --- docs/source/config_overview.rst | 10 +++++----- docs/source/development_faq.rst | 2 +- docs/source/frontend_config.rst | 6 +++--- docs/source/notebook.rst | 34 ++++++++++++++++----------------- docs/source/security.rst | 2 +- docs/source/troubleshooting.rst | 8 ++++---- docs/source/ui_components.rst | 2 +- 7 files changed, 32 insertions(+), 32 deletions(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index 793776cc8..4bf60863b 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -30,18 +30,18 @@ and editing settings is similar for all the Jupyter applications. .. _configure_nbserver: -Notebook server +NbClassic server --------------- -The Notebook server runs the language kernel and communicates with the -front-end Notebook client (i.e. the familiar notebook interface). +The NbClassic server runs the language kernel and communicates with the +front-end NbClassic client (i.e. the familiar notebook interface). - - Configuring the Notebook server + - Configuring the NbClassic server To create a ``jupyter_notebook_config.py`` file in the ``.jupyter`` directory, with all the defaults commented out, use the following command:: - $ jupyter notebook --generate-config + $ jupyter nbclassic --generate-config :ref:`Command line arguments for configuration ` settings are documented in the configuration file and the user documentation. diff --git a/docs/source/development_faq.rst b/docs/source/development_faq.rst index 562d7fde8..6331be846 100644 --- a/docs/source/development_faq.rst +++ b/docs/source/development_faq.rst @@ -7,4 +7,4 @@ Developer FAQ .. code-block:: bash - python -m pip install notebook --pre --upgrade + python -m pip install nbclassic --pre --upgrade diff --git a/docs/source/frontend_config.rst b/docs/source/frontend_config.rst index 0ce675b6b..afcef9ab5 100644 --- a/docs/source/frontend_config.rst +++ b/docs/source/frontend_config.rst @@ -1,15 +1,15 @@ .. _frontend_config: -Configuring the notebook frontend +Configuring the NbClassic frontend ================================= .. note:: - The ability to configure the notebook frontend UI and preferences is + The ability to configure the nbclassic frontend UI and preferences is still a work in progress. This document is a rough explanation on how you can persist some configuration -options for the notebook JavaScript. +options for the nbclassic JavaScript. There is no exhaustive list of all the configuration options as most options are passed down to other libraries, which means that non valid diff --git a/docs/source/notebook.rst b/docs/source/notebook.rst index 2b42984e7..7ad274c59 100644 --- a/docs/source/notebook.rst +++ b/docs/source/notebook.rst @@ -3,7 +3,7 @@ The Jupyter Notebook ==================== -* `Installation `_ +* `NbClassic Installation `_ * `Starting the Notebook `_ Introduction @@ -12,7 +12,7 @@ Introduction The notebook extends the console-based approach to interactive computing in a qualitatively new direction, providing a web-based application suitable for capturing the whole computation process: developing, documenting, and -executing code, as well as communicating the results. The Jupyter notebook +executing code, as well as communicating the results. Jupyter NbClassic combines two components: **A web application**: a browser-based tool for interactive authoring of @@ -25,8 +25,8 @@ text, mathematics, images, and rich media representations of objects. .. seealso:: - See the :ref:`installation guide ` on how to install the - notebook and its dependencies. + See the :ref:`installation guide ` on how to install + nbclassic and its dependencies. Main features of the web application @@ -109,29 +109,29 @@ computer can't access your notebook server. See :ref:`server_security` for more about this. -Starting the notebook server +Starting the NbClassic server ---------------------------- -You can start running a notebook server from the command line using the +You can start running a nbclassic server from the command line using the following command:: - jupyter notebook + jupyter nbclassic -This will print some information about the notebook server in your console, +This will print some information about the nbclassic server in your console, and open a web browser to the URL of the web application (by default, ``http://127.0.0.1:8888``). -The landing page of the Jupyter notebook web application, the **dashboard**, +The landing page of the Jupyter nbclassic web application, the **dashboard**, shows the notebooks currently available in the notebook directory (by default, -the directory from which the notebook server was started). +the directory from which the nbclassic server was started). You can create new notebooks from the dashboard with the ``New Notebook`` button, or open existing ones by clicking on their name. You can also drag and drop ``.ipynb`` notebooks and standard ``.py`` Python source code files into the notebook list area. -When starting a notebook server from the command line, you can also open a -particular notebook directly, bypassing the dashboard, with ``jupyter notebook +When starting a nbclassic server from the command line, you can also open a +particular notebook directly, bypassing the dashboard, with ``jupyter nbclassic my_notebook.ipynb``. The ``.ipynb`` extension is assumed if no extension is given. @@ -142,9 +142,9 @@ from the notebook directory or to create a new notebook. .. note:: - You can start more than one notebook server at the same time, if you want + You can start more than one nbclassic server at the same time, if you want to work on notebooks in different directories. By default the first - notebook server starts on port 8888, and later notebook servers search for + nbclassic server starts on port 8888, and later nbclassic servers search for ports near that one. You can also manually specify the port with the ``--port`` option. @@ -171,7 +171,7 @@ with an active kernel have a ``Shutdown`` button next to them, whereas notebooks without an active kernel have a ``Delete`` button in its place. Other clients may connect to the same kernel. -When each kernel is started, the notebook server prints to the terminal a +When each kernel is started, the nbclassic server prints to the terminal a message like this:: [NotebookApp] Kernel started: 87f7d2c0-13e3-43df-8bb8-1bd37aaf3373 @@ -385,7 +385,7 @@ Trusting Notebooks To prevent untrusted code from executing on users' behalf when notebooks open, we store a signature of each trusted notebook. -The notebook server verifies this signature when a notebook is opened. +The nbclassic server verifies this signature when a notebook is opened. If no matching signature is found, Javascript and HTML output will not be displayed until they are regenerated by re-executing the cells. @@ -405,7 +405,7 @@ See :ref:`notebook_security` for more details about the trust mechanism. Browser Compatibility --------------------- -The Jupyter Notebook aims to support the latest versions of these browsers: +Jupyter NbClassic aims to support the latest versions of these browsers: * Chrome * Safari diff --git a/docs/source/security.rst b/docs/source/security.rst index 981fb0b74..2d3cfb227 100644 --- a/docs/source/security.rst +++ b/docs/source/security.rst @@ -224,4 +224,4 @@ To share a signatures database among users, you can configure: to specify a non-default path to the SQLite database (of notebook hashes, essentially). We are aware that SQLite doesn't work well on NFS and we are -`working out better ways to do this `_. +`working out better ways to do this `_. diff --git a/docs/source/troubleshooting.rst b/docs/source/troubleshooting.rst index d1f63bf4f..c5b2eb466 100644 --- a/docs/source/troubleshooting.rst +++ b/docs/source/troubleshooting.rst @@ -14,16 +14,16 @@ Jupyter fails to start * Have you `installed it `__? ;-) * If you're using a menu shortcut or Anaconda launcher to start it, try - opening a terminal or command prompt and running the command ``jupyter notebook``. + opening a terminal or command prompt and running the command ``jupyter nbclassic``. * If it can't find ``jupyter``, you may need to configure your ``PATH`` environment variable. If you don't know what that means, and don't want to find out, just (re)install Anaconda with the default settings, and it should set up PATH correctly. -* If Jupyter gives an error that it can't find ``notebook``, +* If Jupyter gives an error that it can't find ``nbclassic``, check with pip or conda that the ``notebook`` package is installed. -* Try running ``jupyter-notebook`` (with a hyphen). This should normally be the - same as ``jupyter notebook`` (with a space), but if there's any difference, +* Try running ``jupyter-nbclassic`` (with a hyphen). This should normally be the + same as ``jupyter nbclassic`` (with a space), but if there's any difference, the version with the hyphen is the 'real' launcher, and the other one wraps that. diff --git a/docs/source/ui_components.rst b/docs/source/ui_components.rst index b5fc506df..5354eeb78 100644 --- a/docs/source/ui_components.rst +++ b/docs/source/ui_components.rst @@ -10,7 +10,7 @@ different Notebook modes. Notebook Dashboard ------------------- -When you launch ``jupyter notebook`` the first page that you encounter is the +When you launch ``jupyter nbclassic`` the first page that you encounter is the Notebook Dashboard. .. image:: ./_static/images/jupyter-notebook-dashboard.png From 50f968c79cefe8ac4b939b28bf335fd146dd462d Mon Sep 17 00:00:00 2001 From: RRosio Date: Tue, 13 Sep 2022 10:34:55 -0700 Subject: [PATCH 22/25] update reference of NotebookApp to ServerApp --- docs/source/notebook.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/notebook.rst b/docs/source/notebook.rst index 7ad274c59..3ae3613e7 100644 --- a/docs/source/notebook.rst +++ b/docs/source/notebook.rst @@ -174,7 +174,7 @@ Other clients may connect to the same kernel. When each kernel is started, the nbclassic server prints to the terminal a message like this:: - [NotebookApp] Kernel started: 87f7d2c0-13e3-43df-8bb8-1bd37aaf3373 + [ServerApp] Kernel started: 87f7d2c0-13e3-43df-8bb8-1bd37aaf3373 This long string is the kernel's ID which is sufficient for getting the information necessary to connect to the kernel. If the notebook uses the IPython From f025f1baf3300bba7ba58955afe8f800e2a21e92 Mon Sep 17 00:00:00 2001 From: RRosio Date: Tue, 13 Sep 2022 11:45:23 -0700 Subject: [PATCH 23/25] updating references from notebook to nbclassic --- docs/source/notebook.rst | 2 +- docs/source/public_server.rst | 82 +++++++++++++++++++---------------- docs/source/security.rst | 38 ++++++++-------- 3 files changed, 63 insertions(+), 59 deletions(-) diff --git a/docs/source/notebook.rst b/docs/source/notebook.rst index 3ae3613e7..ccc09c827 100644 --- a/docs/source/notebook.rst +++ b/docs/source/notebook.rst @@ -110,7 +110,7 @@ more about this. Starting the NbClassic server ----------------------------- +----------------------------- You can start running a nbclassic server from the command line using the following command:: diff --git a/docs/source/public_server.rst b/docs/source/public_server.rst index edadbe3ff..0cd272f0c 100644 --- a/docs/source/public_server.rst +++ b/docs/source/public_server.rst @@ -1,22 +1,28 @@ .. _working_remotely: -Running a notebook server -========================= +Running a Jupyter Server with NbClassic +======================================= -The :doc:`Jupyter notebook ` web application is based on a -server-client structure. The notebook server uses a :ref:`two-process kernel +The :doc:`Jupyter NbClassic ` web application is based on a +server-client structure. Jupyter server uses a :ref:`two-process kernel architecture ` based on ZeroMQ_, as well as Tornado_ for serving HTTP requests. .. note:: - By default, a notebook server runs locally at 127.0.0.1:8888 + By default, running nbclassic will start a jupyter server which runs locally at 127.0.0.1:8888 and is accessible only from `localhost`. You may access the - notebook server from the browser using `http://127.0.0.1:8888`. + server from the browser using `http://127.0.0.1:8888`. This document describes how you can -:ref:`secure a notebook server ` and how to -:ref:`run it on a public interface `. +:ref:`secure a jupyter server ` and how to +:ref:`run it on a public interface `. As NbClassic is +Jupyter Server Extension that is intended as an intermediary project while users +migrate from Notebook 6 to Notebook 7, this document makes references to configuration +files carried over from the classic Jupyter Notebook which will be executed when running +nbclassic. For more general documentation regarding the Jupyter Server that NbClassic +uses please visit the `Jupyter Server documentation `_, +specifically the section on `Running a public Jupyter Server `_. .. important:: @@ -25,7 +31,7 @@ This document describes how you can only be done by someone who wants remote access to their personal machine. Even so, doing this requires a thorough understanding of the set-ups limitations and security implications. If you allow multiple users to - access a notebook server as it is described in this document, their + access a jupyter server as it is described in this document, their commands may collide, clobber and overwrite each other. If you want a multi-user server, the official solution is JupyterHub_. @@ -44,11 +50,11 @@ This document describes how you can .. _notebook_server_security: -Securing a notebook server --------------------------- +Securing a Jupyter server Running with NbClassic +------------------------------------------------ -You can protect your notebook server with a simple single password. As of notebook -5.0 this can be done automatically. To set up a password manually you can configure the +You can protect your jupyter server with a simple single password. As of notebook +5.0 this could be done automatically. To set up a password manually you can configure the :attr:`NotebookApp.password` setting in :file:`jupyter_notebook_config.py`. @@ -66,7 +72,7 @@ is your Jupyter folder located in your home directory: If you don't already have a Jupyter folder, or if your Jupyter folder doesn't contain a notebook configuration file, run the following command:: - $ jupyter notebook --generate-config + $ jupyter nbclassic --generate-config This command will create the Jupyter folder if necessary, and create notebook configuration file, :file:`jupyter_notebook_config.py`, in this folder. @@ -89,17 +95,17 @@ The ability to change the password at first login time may be disabled by integrations by setting the ``--NotebookApp.allow_password_change=False`` -Starting at notebook version 5.0, you can enter and store a password for your -notebook server with a single command. :command:`jupyter notebook password` will +Starting at notebook version 5.0, you could enter and store a password for your +notebook server with a single command. This applies to NbClassic, :command:`jupyter nbclassic password` will prompt you for your password and record the hashed password in your -:file:`jupyter_notebook_config.json`. +:file:`jupyter_server_config.json`. .. code-block:: bash - $ jupyter notebook password + $ jupyter nbclassic password Enter password: **** Verify password: **** - [NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json + [JupyterPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_server_config.json This can be used to reset a lost password; or if you believe your credentials have been leaked and desire to change your password. Changing your password will @@ -139,7 +145,7 @@ directory, ``~/.jupyter``, e.g.:: c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed' -Automatic password setup will store the hash in ``jupyter_notebook_config.json`` +Automatic password setup will store the hash in ``jupyter_server_config.json`` while this method stores the hash in ``jupyter_notebook_config.py``. The ``.json`` configuration options take precedence over the ``.py`` one, thus the manual password may not take effect if the Json file has a password set. @@ -158,11 +164,11 @@ browser. The Open Web Application Security Project (`OWASP`_) website is a good resource on general security issues and web practices. -You can start the notebook to communicate via a secure protocol mode by setting +You can start nbclassic to communicate via a secure protocol mode by setting the ``certfile`` option to your self-signed certificate, i.e. ``mycert.pem``, with the command:: - $ jupyter notebook --certfile=mycert.pem --keyfile mykey.key + $ jupyter nbclassic --certfile=mycert.pem --keyfile mykey.key .. tip:: @@ -185,12 +191,12 @@ public server. .. _notebook_public_server: -Running a public notebook server --------------------------------- +Running a public Jupyter server with NbClassic +---------------------------------------------- If you want to access your notebook server remotely via a web browser, you can do so by running a public notebook server. For optimal security -when running a public notebook server, you should first secure the +when running a public jupyter server, you should first secure the server with a password and SSL/HTTPS as described in :ref:`notebook_server_security`. @@ -200,7 +206,7 @@ Start by creating a certificate file and a hashed password, as explained in If you don't already have one, create a config file for the notebook using the following command line:: - $ jupyter notebook --generate-config + $ jupyter nbclassic --generate-config In the ``~/.jupyter`` directory, edit the notebook config file, ``jupyter_notebook_config.py``. By default, the notebook config file has @@ -220,7 +226,7 @@ following:: # It is a good idea to set a known, fixed port for server access c.NotebookApp.port = 9999 -You can then start the notebook using the ``jupyter notebook`` command. +You can then start the notebook using the ``jupyter nbclassic`` command. .. _using-lets-encrypt: @@ -239,7 +245,7 @@ certificate with a few configuration changes. Here are the steps: .. code-block:: bash - $ jupyter notebook --generate-config + $ jupyter nbclassic --generate-config 4. In the ``~/.jupyter`` directory, edit the notebook config file, ``jupyter_notebook_config.py``. By default, the notebook config file has @@ -259,7 +265,7 @@ following:: # It is a good idea to set a known, fixed port for server access c.NotebookApp.port = 9999 -You can then start the notebook using the ``jupyter notebook`` command. +You can then start NbClassic using the ``jupyter nbclassic`` command. .. important:: @@ -282,13 +288,13 @@ domain. Firewall Setup ~~~~~~~~~~~~~~ -To function correctly, the firewall on the computer running the jupyter -notebook server must be configured to allow connections from client +To function correctly, the firewall on the computer running NbClassic's +jupyter server must be configured to allow connections from client machines on the access port ``c.NotebookApp.port`` set in -:file:`jupyter_notebook_config.py` to allow connections to the +:file:`jupyter_Notebook_config.py` to allow connections to the web interface. The firewall must also allow connections from 127.0.0.1 (localhost) on ports from 49152 to 65535. -These ports are used by the server to communicate with the notebook kernels. +These ports are used by the server to communicate with the nbclassic kernels. The kernel communication ports are chosen randomly by ZeroMQ, and may require multiple connections per kernel, so a large range of ports must be accessible. @@ -353,7 +359,7 @@ simply by specifying a Gateway url via the following command-line option: .. code-block:: bash - $ jupyter notebook --gateway-url=http://my-gateway-server:8888 + $ jupyter nbclassic --gateway-url=http://my-gateway-server:8888 the environment: @@ -369,7 +375,7 @@ or in :file:`jupyter_notebook_config.py`: When provided, all kernel specifications will be retrieved from the specified Gateway server and all kernels will be managed by that server. This option enables the ability to target kernel processes -against managed clusters while allowing for the notebook's management to remain local to the Notebook +against managed clusters while allowing for the notebook's management to remain local to the NbClassic server. Known issues @@ -379,7 +385,7 @@ Proxies ~~~~~~~ When behind a proxy, especially if your system or browser is set to autodetect -the proxy, the notebook web application might fail to connect to the server's +the proxy, the nbclassic web application might fail to connect to the server's websockets, and present you with a warning at startup. In this case, you need to configure your system not to use the proxy for the server's address. @@ -426,7 +432,7 @@ actually modify your CSP header to look more like this: Docker CMD ~~~~~~~~~~ -Using ``jupyter notebook`` as a +Using ``jupyter nbclassic`` as a `Docker CMD `_ results in kernels repeatedly crashing, likely due to a lack of `PID reaping `_. @@ -441,4 +447,4 @@ Dockerfile `ENTRYPOINT`:: ENTRYPOINT ["/usr/bin/tini", "--"] EXPOSE 8888 - CMD ["jupyter", "notebook", "--port=8888", "--no-browser", "--ip=0.0.0.0"] + CMD ["jupyter", "nbclassic", "--port=8888", "--no-browser", "--ip=0.0.0.0"] diff --git a/docs/source/security.rst b/docs/source/security.rst index 2d3cfb227..647ea9f52 100644 --- a/docs/source/security.rst +++ b/docs/source/security.rst @@ -1,21 +1,21 @@ .. _server_security: -Security in the Jupyter notebook server -======================================= +Security in the Jupyter NbClassic server +======================================== -Since access to the Jupyter notebook server means access to running arbitrary code, -it is important to restrict access to the notebook server. -For this reason, notebook 4.3 introduces token-based authentication that is **on by default**. +Since access to the Jupyter NbClassic server means access to running arbitrary code, +it is important to restrict access to the NbClassic server. +For this reason, notebook 4.3 introduced token-based authentication that is **on by default**. .. note:: - If you enable a password for your notebook server, + If you enable a password for your NbClassic server, token authentication is not enabled by default, - and the behavior of the notebook server is unchanged from versions earlier than 4.3. + and the behavior of the NbClassic server is unchanged from versions earlier than 4.3. When token authentication is enabled, the notebook uses a token to authenticate requests. -This token can be provided to login to the notebook server in three ways: +This token can be provided to login to the NbClassic server in three ways: - in the ``Authorization`` header, e.g.:: @@ -27,15 +27,15 @@ This token can be provided to login to the notebook server in three ways: - In the password field of the login form that will be shown to you if you are not logged in. -When you start a notebook server with token authentication enabled (default), +When you start an NbClassic server with token authentication enabled (default), a token is generated to use for authentication. This token is logged to the terminal, so that you can copy/paste the URL into your browser:: - [I 11:59:16.597 NotebookApp] The Jupyter Notebook is running at: - http://localhost:8888/?token=c8de56fa4deed24899803e93c227592aef6538f93025fe01 + [I 2022-09-13 09:33:16.916 ServerApp] Jupyter Server 1.18.1 is running at: + [I 2022-09-13 09:33:16.916 ServerApp] http://localhost:8888/tree?token=c8de56fa4deed24899803e93c227592aef6538f93025fe01 -If the notebook server is going to open your browser automatically +If the NbClassic server is going to open your browser automatically (the default, unless ``--no-browser`` has been passed), an *additional* token is generated for launching the browser. This additional token can be used only once, @@ -45,7 +45,7 @@ the token is discarded and a cookie is set in your browser. At any later time, you can see the tokens and URLs for all of your running servers with :command:`jupyter notebook list`:: - $ jupyter notebook list + $ jupyter nbclassic list Currently running servers: http://localhost:8888/?token=abc... :: /home/you/notebooks https://0.0.0.0:9999/?token=123... :: /tmp/public @@ -64,12 +64,10 @@ Alternatives to token authentication If a generated token doesn't work well for you, you can set a password for your notebook. -:command:`jupyter notebook password` will prompt you for a password, -and store the hashed password in your :file:`jupyter_notebook_config.json`. +:command:`jupyter nbclassic password` will prompt you for a password, +and store the hashed password in your :file:`jupyter_server_config.json`. -.. versionadded:: 5.0 - - :command:`jupyter notebook password` command is added. +The :command:`jupyter nbclassic password` command is available. It is possible to disable authentication altogether by setting the token and password to empty strings, @@ -77,8 +75,8 @@ but this is **NOT RECOMMENDED**, unless authentication or access restrictions ar .. sourcecode:: python - c.NotebookApp.token = '' - c.NotebookApp.password = '' + c.ServerApp.token = '' + c.ServerApp.password = '' .. _notebook_security: From 6418b92851abd29c48629bccebb84be8ada4f1b2 Mon Sep 17 00:00:00 2001 From: RRosio Date: Tue, 13 Sep 2022 12:18:40 -0700 Subject: [PATCH 24/25] moving notice about jupyter server documentation --- docs/source/config_overview.rst | 12 ++++++------ docs/source/nbclassic.rst | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index 4bf60863b..d8d87b7d9 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -5,11 +5,11 @@ Configuration Overview Beyond the default configuration settings, you can configure a rich array of options to suit your workflow. Here are areas that are commonly configured -when using Jupyter Notebook: +when using Jupyter NbClassic: - :ref:`Jupyter's common configuration system ` - - :ref:`Notebook server ` - - :ref:`Notebook front-end client ` + - :ref:`NbClassic server ` + - :ref:`NbClassic front-end client ` - :ref:`Notebook extensions ` Let's look at highlights of each area. @@ -30,8 +30,8 @@ and editing settings is similar for all the Jupyter applications. .. _configure_nbserver: -NbClassic server ---------------- +NbClassic Server +---------------- The NbClassic server runs the language kernel and communicates with the front-end NbClassic client (i.e. the familiar notebook interface). @@ -51,7 +51,7 @@ front-end NbClassic client (i.e. the familiar notebook interface). .. _configure_nbclient: -Notebook front-end client +NbClassic front-end client ------------------------- .. toctree:: diff --git a/docs/source/nbclassic.rst b/docs/source/nbclassic.rst index 9e8af8d2f..1bfefd332 100644 --- a/docs/source/nbclassic.rst +++ b/docs/source/nbclassic.rst @@ -86,7 +86,7 @@ endpoints provided by Jupyter Server. *Jupyter Server Extensions* - `Authoring a basic server extension `_ -**The jupyter/notebook Repository**: The original `jupyter/notebook`_` GitHub +**The jupyter/notebook Repository**: The original `jupyter/notebook`_ GitHub repository now holds the codebase for the new Jupyter Notebook (version 7). .. _jupyter/notebook: https://github.com/jupyter/notebook From 65803c7f3c8dd1c7e55e228acfd82ad3339e1787 Mon Sep 17 00:00:00 2001 From: RRosio Date: Tue, 13 Sep 2022 12:30:58 -0700 Subject: [PATCH 25/25] update config overview and Notebook's known issues in public server --- docs/source/config_overview.rst | 8 +++++++- docs/source/public_server.rst | 13 ++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/source/config_overview.rst b/docs/source/config_overview.rst index d8d87b7d9..1381a6752 100644 --- a/docs/source/config_overview.rst +++ b/docs/source/config_overview.rst @@ -3,6 +3,12 @@ Configuration Overview ====================== +As NbClassic is a Jupyter Server Extension that is intended as an intermediary project while users +migrate from Notebook 6 to Notebook 7, this document makes references to configuration +files carried over from the classic Jupyter Notebook which will be executed when running +nbclassic. For more general documentation regarding the Jupyter Server that NbClassic +uses please visit the `Jupyter Server documentation `_. + Beyond the default configuration settings, you can configure a rich array of options to suit your workflow. Here are areas that are commonly configured when using Jupyter NbClassic: @@ -52,7 +58,7 @@ front-end NbClassic client (i.e. the familiar notebook interface). .. _configure_nbclient: NbClassic front-end client -------------------------- +-------------------------- .. toctree:: :maxdepth: 2 diff --git a/docs/source/public_server.rst b/docs/source/public_server.rst index 0cd272f0c..f182b6b9e 100644 --- a/docs/source/public_server.rst +++ b/docs/source/public_server.rst @@ -16,13 +16,9 @@ serving HTTP requests. This document describes how you can :ref:`secure a jupyter server ` and how to -:ref:`run it on a public interface `. As NbClassic is -Jupyter Server Extension that is intended as an intermediary project while users -migrate from Notebook 6 to Notebook 7, this document makes references to configuration -files carried over from the classic Jupyter Notebook which will be executed when running -nbclassic. For more general documentation regarding the Jupyter Server that NbClassic -uses please visit the `Jupyter Server documentation `_, -specifically the section on `Running a public Jupyter Server `_. +:ref:`run it on a public interface `. +For general documentation on Jupyter Server, please visit the section on +`Running a public Jupyter Server `_. .. important:: @@ -381,6 +377,9 @@ server. Known issues ------------ +Below are issues previously reported Notebook server issues and may be applicable to +the Jupyter Server package that provides NbClassic's server. + Proxies ~~~~~~~