From 2f5493844dfcb369562e41f2c92a6d472d31f6a0 Mon Sep 17 00:00:00 2001 From: Kim Pevey Date: Tue, 24 Sep 2024 14:25:15 -0500 Subject: [PATCH 1/9] add doc on jupyter gallery --- docs/docs/how-tos/jupyter-gallery.md | 103 ++++++++++++++++++ docs/sidebars.js | 1 + .../how-tos/jupyter-gallery-tile-download.png | Bin 0 -> 21008 bytes .../how-tos/jupyter-gallery-tile-update.png | Bin 0 -> 23963 bytes .../img/how-tos/jupyter-gallery-tiles.png | Bin 0 -> 42855 bytes 5 files changed, 104 insertions(+) create mode 100644 docs/docs/how-tos/jupyter-gallery.md create mode 100644 docs/static/img/how-tos/jupyter-gallery-tile-download.png create mode 100644 docs/static/img/how-tos/jupyter-gallery-tile-update.png create mode 100644 docs/static/img/how-tos/jupyter-gallery-tiles.png diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md new file mode 100644 index 00000000..34d19150 --- /dev/null +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -0,0 +1,103 @@ +--- +title: Share Git Respository via JupyterLab-Gallery +description: Share files or tutorials with your team +--- + +# How to set up a Git Repository via JupyterLab-Gallery + +[JupyterLab-Gallery ](https://github.com/nebari-dev/jupyterlab-gallery) is a JupyterLab plugin +that allows users to share a Git Repository. JupyterLab users are presented with a tile in +the JupyterLab launch screen. Users can choose to download the Gallery. + +By default, if no JupyterLab-Gallery items are added to the config, users will not see this section +in the JupyterLab Launcher. + +This feature was added to Nebari in the 2024.6.1 release. + +## Configure JupyterLb-Gallery + +In Nebari, the JupyterLab-Gallery configuration is set in the Nebari configuration, `nebari-config.yaml`. + +The configuration is set under the `jupyterlab` section under the subsection `gallery_settings`. +Users may set a title for the Gallery section of the Launcher screen and a destination (i.e. folder) +for the location of the cloned repos. + +Several repositories can be configured to display as individual gallery tiles. Under the `exhibits` +section, each repository must have a `title` and a `git` location. There are also several other +optional config options. + +The configuration is set at two different levels. Top level gallery settings define the title of +the Gallery section and the location in which the repositories are downloaded. The respository +level settings are defined for each repository. The descriptions of each section are described +below. + +**Top Level Gallery Settings** + +| Section | Description | +| ------- | ----------- | +| title | Title on the gallery tile | +| destination | Location on disk where the repo will be downloaded | + + +**Repository Level Settings** + +| Section | Description | +| ------- | ----------- | +| title | Title on the gallery tile | +| git | URL of the git repository | +| homepage | (Optional) | +| description | Description of the repository to appear on the gallery tile (Optional) | +| icon | base64 encoded image to use an icon to appear on the gallery tile (Optional) | +| account | (Optional) | +| token | Private Access Token to enable access to private repositories (Optional) | + +### Sample configuration + +Below is an example of the Gallery settings from the `nebari-config.yaml`. + +``` +jupyterlab: + gallery_settings: + title: Demos + destination: demos + exhibits: + - title: Data of an Unusual Size + git: https://github.com/nebari-dev/big-data-tutorial.git + description: Big data tutorial focusing on Dask usage in Nebari + icon: "data:image/png;base64," + homepage: https://github.com/nebari-dev/big-data-tutorial/ + - title: From RAGs to riches + git: https://github.com/Quansight/ragna-presentations.git + homepage: https://github.com/Quansight/ragna-presentations/ + - title: Private Examples + description: Internal company examples + icon: "data:image/png;base64," + git: https://gitlab....net/companyxyz/examples.git + account: examples + token: "{{ GITLAB_PAT }}" +``` + +## Using JupyterLab-Gallery + +Once the repositories are configured in the Nebari config and redeployed, all users will have +a section on their JupyterLab Launcher screen for the Gallery. + +![JupyterLab Gallery tiles on JupyterLab Launcher screen](/img/how-tos/jupyter-gallery-tiles.png) + +Each tile points to a different gallery entry in the configuration. The Gallery repositories +will not be downloaded until users trigger the download for each gallery item. To do so, users +will hover over the tile and click the download button. + +![JupyterLab Gallery tile on hover for undownloaded repo](/img/how-tos/jupyter-gallery-tile-download.png) + +The repository will download to the location specified in the config (in each user's private +space). After the download is complete, hover on the gallery tile present the users with two +new options - the folder icon allows them to jump to the location in the JupyterLab file browser, +and the download button allows them to fetch an updated copy of the repo (if available). + +![JupyterLab Gallery tile on hover to update repo](/img/how-tos/jupyter-gallery-tile-update.png) + +## Conclusion + +For more information on the JupyterLab-Gallery project, visit the +[JupyterLab-Gallery codebase repo](https://github.com/nebari-dev/jupyterlab-gallery). diff --git a/docs/sidebars.js b/docs/sidebars.js index a6b6a0c5..4bc66c62 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -79,6 +79,7 @@ module.exports = { "how-tos/install-pip-packages", "how-tos/fine-grained-permissions", "how-tos/connect-via-ssh", + "how-tos/jupyter-gallery", ], }, { diff --git a/docs/static/img/how-tos/jupyter-gallery-tile-download.png b/docs/static/img/how-tos/jupyter-gallery-tile-download.png new file mode 100644 index 0000000000000000000000000000000000000000..177015a3ae6ce6e75e2ca536db5a48a18ea3f047 GIT binary patch literal 21008 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
    Q&EWF3EA}FvHwf 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/how-tos/jupyter-gallery-tiles.png b/docs/static/img/how-tos/jupyter-gallery-tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..f2506be9d204c86d7a2bebf0499959e67b2dc206 GIT binary patch literal 42855 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 Date: Tue, 24 Sep 2024 14:28:37 -0500 Subject: [PATCH 2/9] fix my inability to spell --- docs/docs/how-tos/jupyter-gallery.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index 34d19150..35228a08 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -1,5 +1,5 @@ --- -title: Share Git Respository via JupyterLab-Gallery +title: Share Git Repository via JupyterLab-Gallery description: Share files or tutorials with your team --- @@ -27,7 +27,7 @@ section, each repository must have a `title` and a `git` location. There are als optional config options. The configuration is set at two different levels. Top level gallery settings define the title of -the Gallery section and the location in which the repositories are downloaded. The respository +the Gallery section and the location in which the repositories are downloaded. The repository level settings are defined for each repository. The descriptions of each section are described below. From a495364258d3530f3f253d36bb116d37dd4f6833 Mon Sep 17 00:00:00 2001 From: Kim Pevey Date: Tue, 24 Sep 2024 14:37:01 -0500 Subject: [PATCH 3/9] yarn linter --- docs/docs/how-tos/jupyter-gallery.md | 67 ++++++++++++++-------------- 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index 35228a08..caf825d8 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -3,57 +3,56 @@ title: Share Git Repository via JupyterLab-Gallery description: Share files or tutorials with your team --- -# How to set up a Git Repository via JupyterLab-Gallery +# How to set up a Git Repository via JupyterLab-Gallery [JupyterLab-Gallery ](https://github.com/nebari-dev/jupyterlab-gallery) is a JupyterLab plugin -that allows users to share a Git Repository. JupyterLab users are presented with a tile in -the JupyterLab launch screen. Users can choose to download the Gallery. +that allows users to share a Git Repository. JupyterLab users are presented with a tile in +the JupyterLab launch screen. Users can choose to download the Gallery. By default, if no JupyterLab-Gallery items are added to the config, users will not see this section -in the JupyterLab Launcher. +in the JupyterLab Launcher. -This feature was added to Nebari in the 2024.6.1 release. +This feature was added to Nebari in the 2024.6.1 release. ## Configure JupyterLb-Gallery -In Nebari, the JupyterLab-Gallery configuration is set in the Nebari configuration, `nebari-config.yaml`. +In Nebari, the JupyterLab-Gallery configuration is set in the Nebari configuration, `nebari-config.yaml`. -The configuration is set under the `jupyterlab` section under the subsection `gallery_settings`. +The configuration is set under the `jupyterlab` section under the subsection `gallery_settings`. Users may set a title for the Gallery section of the Launcher screen and a destination (i.e. folder) -for the location of the cloned repos. +for the location of the cloned repos. Several repositories can be configured to display as individual gallery tiles. Under the `exhibits` -section, each repository must have a `title` and a `git` location. There are also several other -optional config options. +section, each repository must have a `title` and a `git` location. There are also several other +optional config options. The configuration is set at two different levels. Top level gallery settings define the title of -the Gallery section and the location in which the repositories are downloaded. The repository -level settings are defined for each repository. The descriptions of each section are described -below. +the Gallery section and the location in which the repositories are downloaded. The repository +level settings are defined for each repository. The descriptions of each section are described +below. **Top Level Gallery Settings** -| Section | Description | -| ------- | ----------- | -| title | Title on the gallery tile | +| Section | Description | +| ----------- | -------------------------------------------------- | +| title | Title on the gallery tile | | destination | Location on disk where the repo will be downloaded | - **Repository Level Settings** -| Section | Description | -| ------- | ----------- | -| title | Title on the gallery tile | -| git | URL of the git repository | -| homepage | (Optional) | -| description | Description of the repository to appear on the gallery tile (Optional) | -| icon | base64 encoded image to use an icon to appear on the gallery tile (Optional) | -| account | (Optional) | -| token | Private Access Token to enable access to private repositories (Optional) | +| Section | Description | +| ----------- | ---------------------------------------------------------------------------- | +| title | Title on the gallery tile | +| git | URL of the git repository | +| homepage | (Optional) | +| description | Description of the repository to appear on the gallery tile (Optional) | +| icon | base64 encoded image to use an icon to appear on the gallery tile (Optional) | +| account | (Optional) | +| token | Private Access Token to enable access to private repositories (Optional) | ### Sample configuration -Below is an example of the Gallery settings from the `nebari-config.yaml`. +Below is an example of the Gallery settings from the `nebari-config.yaml`. ``` jupyterlab: @@ -80,24 +79,24 @@ jupyterlab: ## Using JupyterLab-Gallery Once the repositories are configured in the Nebari config and redeployed, all users will have -a section on their JupyterLab Launcher screen for the Gallery. +a section on their JupyterLab Launcher screen for the Gallery. ![JupyterLab Gallery tiles on JupyterLab Launcher screen](/img/how-tos/jupyter-gallery-tiles.png) Each tile points to a different gallery entry in the configuration. The Gallery repositories will not be downloaded until users trigger the download for each gallery item. To do so, users -will hover over the tile and click the download button. +will hover over the tile and click the download button. ![JupyterLab Gallery tile on hover for undownloaded repo](/img/how-tos/jupyter-gallery-tile-download.png) -The repository will download to the location specified in the config (in each user's private -space). After the download is complete, hover on the gallery tile present the users with two -new options - the folder icon allows them to jump to the location in the JupyterLab file browser, +The repository will download to the location specified in the config (in each user's private +space). After the download is complete, hover on the gallery tile present the users with two +new options - the folder icon allows them to jump to the location in the JupyterLab file browser, and the download button allows them to fetch an updated copy of the repo (if available). ![JupyterLab Gallery tile on hover to update repo](/img/how-tos/jupyter-gallery-tile-update.png) ## Conclusion -For more information on the JupyterLab-Gallery project, visit the -[JupyterLab-Gallery codebase repo](https://github.com/nebari-dev/jupyterlab-gallery). +For more information on the JupyterLab-Gallery project, visit the +[JupyterLab-Gallery codebase repo](https://github.com/nebari-dev/jupyterlab-gallery). From eab3757dea72a8f0093321cea57b29f9fae4466c Mon Sep 17 00:00:00 2001 From: Kim Pevey Date: Wed, 25 Sep 2024 13:58:21 -0500 Subject: [PATCH 4/9] fix token description, add cross references jupyterlab overrides section --- docs/docs/explanations/advanced-custom-settings.md | 2 +- docs/docs/how-tos/jupyter-gallery.md | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/docs/explanations/advanced-custom-settings.md b/docs/docs/explanations/advanced-custom-settings.md index 453dd1ec..52394155 100644 --- a/docs/docs/explanations/advanced-custom-settings.md +++ b/docs/docs/explanations/advanced-custom-settings.md @@ -155,7 +155,7 @@ jupyterlab: - `jupyterlab.preferred_dir` - Sets the default location in which JupyterLab should open the file browser in. -- `jupyterlab.gallery_settings` - Configures [`jupyterlab-gallery`](https://github.com/nebari-dev/jupyterlab-gallery) extension which enables user to clone (and later synchronise) pre-specified repositories. +- `jupyterlab.gallery_settings` - Configures [`jupyterlab-gallery`](https://github.com/nebari-dev/jupyterlab-gallery) extension which enables user to clone (and later synchronise) pre-specified repositories. See [How to set up a Git Repository via JupyterLab-Gallery](../how-tos/jupyter-gallery) for more detailed information. ```yaml jupyterlab: diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index caf825d8..ef16c4a6 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -52,7 +52,8 @@ below. ### Sample configuration -Below is an example of the Gallery settings from the `nebari-config.yaml`. +Below is an example of the Gallery settings from the `nebari-config.yaml`. Note that \ +and \ should be replaced with the actual encoding an Private Access Token, respectively. ``` jupyterlab: @@ -73,7 +74,7 @@ jupyterlab: icon: "data:image/png;base64," git: https://gitlab....net/companyxyz/examples.git account: examples - token: "{{ GITLAB_PAT }}" + token: "" ``` ## Using JupyterLab-Gallery @@ -100,3 +101,5 @@ and the download button allows them to fetch an updated copy of the repo (if ava For more information on the JupyterLab-Gallery project, visit the [JupyterLab-Gallery codebase repo](https://github.com/nebari-dev/jupyterlab-gallery). + +For more information about custom JupyterLab Overrides in the Nebari config, visit the [Custom Overrides Configurations](../explanations/custom-overrides-configuration#jupyterlab) documentation. From 62f0f8145c62c38d8f0495e5e5d2362f33de8421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Krassowski?= <5832902+krassowski@users.noreply.github.com> Date: Thu, 9 Jan 2025 12:26:50 +0000 Subject: [PATCH 5/9] Fix typo --- docs/docs/how-tos/jupyter-gallery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index ef16c4a6..2bbeb45e 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -53,7 +53,7 @@ below. ### Sample configuration Below is an example of the Gallery settings from the `nebari-config.yaml`. Note that \ -and \ should be replaced with the actual encoding an Private Access Token, respectively. +and \ should be replaced with the actual encoding and Private Access Token, respectively. ``` jupyterlab: From 92fc0aeb3409587c1f3e51516f9657f0413add47 Mon Sep 17 00:00:00 2001 From: vinicius douglas cerutti Date: Wed, 29 Jan 2025 17:58:17 -0300 Subject: [PATCH 6/9] fix lint typo --- docs/docs/how-tos/jupyter-gallery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index 2bbeb45e..a015915d 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -53,7 +53,7 @@ below. ### Sample configuration Below is an example of the Gallery settings from the `nebari-config.yaml`. Note that \ -and \ should be replaced with the actual encoding and Private Access Token, respectively. +and \ should be replaced with the actual encoding and Private Access Token, respectively. ``` jupyterlab: From 252fcfefb3eb035024ed7d5b9abc4203ad9c3e4d Mon Sep 17 00:00:00 2001 From: viniciusdc Date: Wed, 25 Jun 2025 18:25:00 -0300 Subject: [PATCH 7/9] yarn run format --write --- docs/docs/tutorials/using_dask.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/docs/tutorials/using_dask.md b/docs/docs/tutorials/using_dask.md index 29db5190..d6c3b383 100644 --- a/docs/docs/tutorials/using_dask.md +++ b/docs/docs/tutorials/using_dask.md @@ -48,11 +48,12 @@ Be sure to select an environment which includes `Dask`, and note that the versio We recommend the [`nebari-dask` metapackage](https://anaconda.org/conda-forge/nebari-dask). We publish this metapackage alongside Nebari to easily provide you with the correct Dask packages and versions, just be sure that the `nebari-dask` version matches your Nebari deployment version. If the nebari-dask environment does not include all the packages needed, here is a list to [create a new environment](/docs/tutorials/creating-new-environments): + - python >=3.11 - pip - nebari-dask - gcsfs - + ::: Nebari has set of pre-defined options for configuring the Dask profiles that we have access to. From 4b8e6b83807db7a9865aa0ee759849a7e9d3b1a6 Mon Sep 17 00:00:00 2001 From: "Vinicius D. Cerutti" <51954708+viniciusdc@users.noreply.github.com> Date: Wed, 25 Jun 2025 18:27:53 -0300 Subject: [PATCH 8/9] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: MichaƂ Krassowski <5832902+krassowski@users.noreply.github.com> --- docs/docs/how-tos/jupyter-gallery.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index a015915d..bc3eb67d 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -7,7 +7,7 @@ description: Share files or tutorials with your team [JupyterLab-Gallery ](https://github.com/nebari-dev/jupyterlab-gallery) is a JupyterLab plugin that allows users to share a Git Repository. JupyterLab users are presented with a tile in -the JupyterLab launch screen. Users can choose to download the Gallery. +the JupyterLab launch screen. Users can choose to download the Exhibit. By default, if no JupyterLab-Gallery items are added to the config, users will not see this section in the JupyterLab Launcher. @@ -28,7 +28,7 @@ optional config options. The configuration is set at two different levels. Top level gallery settings define the title of the Gallery section and the location in which the repositories are downloaded. The repository -level settings are defined for each repository. The descriptions of each section are described +level settings are defined for each repository. The settings in each section are described below. **Top Level Gallery Settings** @@ -46,7 +46,7 @@ below. | git | URL of the git repository | | homepage | (Optional) | | description | Description of the repository to appear on the gallery tile (Optional) | -| icon | base64 encoded image to use an icon to appear on the gallery tile (Optional) | +| icon | URL or base64 encoded image to use an icon to appear on the gallery tile (Optional) | | account | (Optional) | | token | Private Access Token to enable access to private repositories (Optional) | From 96db8a47a5b33fbfb7f125a3a91d67f6682cb6e5 Mon Sep 17 00:00:00 2001 From: viniciusdc Date: Wed, 25 Jun 2025 18:29:01 -0300 Subject: [PATCH 9/9] run format --- docs/docs/how-tos/jupyter-gallery.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/docs/how-tos/jupyter-gallery.md b/docs/docs/how-tos/jupyter-gallery.md index bc3eb67d..77277f01 100644 --- a/docs/docs/how-tos/jupyter-gallery.md +++ b/docs/docs/how-tos/jupyter-gallery.md @@ -40,15 +40,15 @@ below. **Repository Level Settings** -| Section | Description | -| ----------- | ---------------------------------------------------------------------------- | -| title | Title on the gallery tile | -| git | URL of the git repository | -| homepage | (Optional) | -| description | Description of the repository to appear on the gallery tile (Optional) | +| Section | Description | +| ----------- | ----------------------------------------------------------------------------------- | +| title | Title on the gallery tile | +| git | URL of the git repository | +| homepage | (Optional) | +| description | Description of the repository to appear on the gallery tile (Optional) | | icon | URL or base64 encoded image to use an icon to appear on the gallery tile (Optional) | -| account | (Optional) | -| token | Private Access Token to enable access to private repositories (Optional) | +| account | (Optional) | +| token | Private Access Token to enable access to private repositories (Optional) | ### Sample configuration