Skip to content

Commit 0fd15c9

Browse files
authored
Merge branch 'jupyterlab:master' into snap-package
2 parents 19dffcc + c37a016 commit 0fd15c9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+8108
-2134
lines changed

.eslintignore

+2
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@ typedoc-theme/
1919
.vscode/
2020

2121
env_installer
22+
23+
src/assets/uFuzzy.iife.min.js

.github/workflows/publish.yml

+21-21
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
strategy:
1515
matrix:
1616
cfg:
17-
- { platform: linux, platform_name: Linux, os: ubuntu-latest, build_platform: linux-64, conda_platform: linux-64 }
17+
- { platform: linux-64, platform_name: Linux x64, os: ubuntu-latest, build_platform: linux-64, conda_platform: linux-64 }
1818
- { platform: osx-64, platform_name: macOS x64, os: macos-latest, build_platform: osx-64, conda_platform: osx-64 }
1919
- { platform: osx-arm64, platform_name: macOS arm64, os: macos-latest, build_platform: osx-64, conda_platform: osx-arm64 }
20-
- { platform: win, platform_name: Windows, os: windows-latest, build_platform: win-64, conda_platform: win-64 }
20+
- { platform: win-64, platform_name: Windows x64, os: windows-latest, build_platform: win-64, conda_platform: win-64 }
2121

2222
name: '${{ matrix.cfg.platform_name }} installer'
2323
runs-on: ${{ matrix.cfg.os }}
@@ -122,19 +122,19 @@ jobs:
122122
yarn dist:${{ matrix.cfg.platform }}
123123
if: steps.release-exists.outputs.result == 'true'
124124

125-
- name: Upload Debian Installer
126-
if: matrix.cfg.platform == 'linux'
125+
- name: Upload Debian x64 Installer
126+
if: matrix.cfg.platform == 'linux-64'
127127
uses: actions/upload-artifact@v4
128128
with:
129-
name: debian-installer
129+
name: debian-installer-x64
130130
path: |
131131
dist/JupyterLab.deb
132132
133-
- name: Upload Fedora Installer
134-
if: matrix.cfg.platform == 'linux'
133+
- name: Upload Fedora x64 Installer
134+
if: matrix.cfg.platform == 'linux-64'
135135
uses: actions/upload-artifact@v4
136136
with:
137-
name: fedora-installer
137+
name: fedora-installer-x64
138138
path: |
139139
dist/JupyterLab.rpm
140140
@@ -163,31 +163,31 @@ jobs:
163163
path: |
164164
dist/JupyterLab-arm64.dmg
165165
166-
- name: Upload Windows Installer
167-
if: matrix.cfg.platform == 'win'
166+
- name: Upload Windows x64 Installer
167+
if: matrix.cfg.platform == 'win-64'
168168
uses: actions/upload-artifact@v4
169169
with:
170-
name: windows-installer
170+
name: windows-installer-x64
171171
path: |
172172
dist/JupyterLab-Setup.exe
173173
174-
- name: Upload Debian Installer as Release asset
175-
if: matrix.cfg.platform == 'linux' && steps.release-exists.outputs.result == 'true'
174+
- name: Upload Debian x64 Installer as Release asset
175+
if: matrix.cfg.platform == 'linux-64' && steps.release-exists.outputs.result == 'true'
176176
uses: svenstaro/upload-release-action@v2
177177
with:
178178
repo_token: ${{ secrets.JLAB_APP_TOKEN }}
179179
file: dist/JupyterLab.deb
180-
asset_name: JupyterLab-Setup-Debian.deb
180+
asset_name: JupyterLab-Setup-Debian-x64.deb
181181
tag: v${{ steps.package-info.outputs.version}}
182182
overwrite: true
183183

184-
- name: Upload Fedora Installer as Release asset
185-
if: matrix.cfg.platform == 'linux' && steps.release-exists.outputs.result == 'true'
184+
- name: Upload Fedora x64 Installer as Release asset
185+
if: matrix.cfg.platform == 'linux-64' && steps.release-exists.outputs.result == 'true'
186186
uses: svenstaro/upload-release-action@v2
187187
with:
188188
repo_token: ${{ secrets.JLAB_APP_TOKEN }}
189189
file: dist/JupyterLab.rpm
190-
asset_name: JupyterLab-Setup-Fedora.rpm
190+
asset_name: JupyterLab-Setup-Fedora-x64.rpm
191191
tag: v${{ steps.package-info.outputs.version}}
192192
overwrite: true
193193

@@ -231,18 +231,18 @@ jobs:
231231
tag: v${{ steps.package-info.outputs.version}}
232232
overwrite: true
233233

234-
- name: Upload Windows Installer as Release asset
235-
if: matrix.cfg.platform == 'win' && steps.release-exists.outputs.result == 'true'
234+
- name: Upload Windows x64 Installer as Release asset
235+
if: matrix.cfg.platform == 'win-64' && steps.release-exists.outputs.result == 'true'
236236
uses: svenstaro/upload-release-action@v2
237237
with:
238238
repo_token: ${{ secrets.JLAB_APP_TOKEN }}
239239
file: dist/JupyterLab-Setup.exe
240-
asset_name: JupyterLab-Setup-Windows.exe
240+
asset_name: JupyterLab-Setup-Windows-x64.exe
241241
tag: v${{ steps.package-info.outputs.version}}
242242
overwrite: true
243243

244244
- name: Upload latest.yml Release asset
245-
if: matrix.cfg.platform == 'win' && steps.release-exists.outputs.result == 'true'
245+
if: matrix.cfg.platform == 'win-64' && steps.release-exists.outputs.result == 'true'
246246
uses: svenstaro/upload-release-action@v2
247247
with:
248248
repo_token: ${{ secrets.JLAB_APP_TOKEN }}

.github/workflows/sync_lab_release.yml

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ jobs:
1616
steps:
1717
- uses: actions/checkout@v4
1818

19+
- name: Install hub
20+
run: |
21+
brew install hub
22+
1923
- name: Set up Python
2024
uses: actions/setup-python@v5
2125
with:

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,3 @@ __pycache__
2525

2626
env_installer/jlab_server/
2727
env_installer/jlab_server.tar.gz
28-

.prettierignore

+2
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
.vscode/
1212

1313
env_installer
14+
15+
src/assets/uFuzzy.iife.min.js

.vscode/launch.json

+13
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,19 @@
2525
"env": {
2626
"NODE_ENV": "development"
2727
}
28+
},
29+
{
30+
"name": "Debug CLI",
31+
"type": "node",
32+
"request": "launch",
33+
"cwd": "${workspaceFolder}",
34+
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
35+
"args" : [".", "env", "list"],
36+
"outputCapture": "std",
37+
"preLaunchTask": "npm: build",
38+
"env": {
39+
"NODE_ENV": "development"
40+
}
2841
}
2942
]
3043
}

README.md

+13-7
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ JupyterLab Desktop is the cross-platform desktop application for [JupyterLab](ht
88

99
If you have an existing JupyterLab Desktop installation, please uninstall it first by following the [uninstall instructions](user-guide.md#uninstalling-jupyterlab-desktop).
1010

11-
- [Debian, Ubuntu Linux Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-Debian.deb)
12-
- [Red Hat, Fedora, SUSE Linux Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-Fedora.rpm)
11+
- [Debian, Ubuntu Linux Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-Debian-x64.deb)
12+
- [Red Hat, Fedora, SUSE Linux Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-Fedora-x64.rpm)
1313
- [macOS Intel Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-macOS-x64.dmg), [macOS Apple silicon Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-macOS-arm64.dmg)
14-
- [Windows Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-Windows.exe)
14+
- [Windows Installer](https://github.com/jupyterlab/jupyterlab-desktop/releases/latest/download/JupyterLab-Setup-Windows-x64.exe)
1515

1616
Additionally, JupyterLab Desktop can be installed on Windows via winget: `winget install jupyterlab`.
1717

@@ -65,14 +65,20 @@ Previously opened sessions are stored as part of application data and they are l
6565
- Connect to existing JupyterLab server
6666
- `jlab https://example.org/lab?token=abcde`
6767

68-
For additional CLI options run `jlab --help` in command line.
68+
See [CLI documentation](cli.md) for more CLI commands and options.
6969

7070
### JupyterLab Extension support
7171

7272
JupyterLab Desktop currently supports user-friendly [prebuilt](https://jupyterlab.readthedocs.io/en/stable/extension/extension_dev.html#overview-of-extensions) extensions. Source extensions which require rebuilding are not supported.
7373

74-
### See [user guide](user-guide.md) for configuration options
74+
### Guides and Help
7575

76-
### See [troubleshooting guide](troubleshoot.md) for troubleshooting issues
76+
- See [user guide](user-guide.md) for configuration options
7777

78-
### For contributing, see [developer documentation](dev.md)
78+
- [Python environment management](python-env-management.md) guide for managing Python environments on your system using JupyterLab Desktop
79+
80+
- See [CLI documentation](cli.md) for CLI commands and options
81+
82+
- See [troubleshooting guide](troubleshoot.md) for troubleshooting issues
83+
84+
- For contributing, see [developer documentation](dev.md)

cli.md

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
# JupyterLab Desktop CLI
2+
3+
JupyterLab Desktop comes with a CLI (`jlab`) that provides a rich set of commands and options to launch and configure the application. Below are the CLI options with examples.
4+
5+
## Setting up the `jlab` CLI command
6+
7+
JupyterLab Desktop installers for Windows and Linux create `jlab` CLI command as part of the installation process. However, macOS application creates this command at first launch and after updates. This command creation might sometimes fail if the user doesn't have the required permissions. See this [troubleshooting section](troubleshoot.md#macOS-write-permission-issues) to properly setup CLI on macOS.
8+
9+
## Jupyterlab Desktop CLI commands
10+
11+
- [`jlab` _Application launch_](#jlab-options)
12+
- [`jlab env` _Python environment management_](#jlab-env-options)
13+
- [`jlab config` _Application and project setting management_](#jlab-config-options)
14+
- [`jlab appdata` _Access application cache data_](#jlab-appdata-options)
15+
- [`jlab logs` _Access application logs_](#jlab-logs-options)
16+
17+
### `jlab <options>`
18+
19+
- Open directories using relative or absolute path
20+
- `jlab .` launch in current directory
21+
- `jlab ../notebooks` launch with relative path
22+
- `jlab /Users/username/notebooks` launch with absolute path
23+
- Open notebooks and other files using relative or absolute path
24+
- `jlab /Users/username/notebooks/test.ipynb` launch notebook with absolute path
25+
- `jlab ../notebooks/test.ipynb` launch notebook with relative path
26+
- `jlab ../test.py` launch python file with relative path
27+
- Open with a custom Python environment
28+
- `jlab --python-path /Users/username/custom_env/bin/python ../notebooks/test.ipynb` launch notebook with custom Python environment
29+
- Connect to existing JupyterLab server
30+
- `jlab https://example.org/lab?token=abcde`
31+
32+
### `jlab env <options>`
33+
34+
See Python environment management [documentation](python-env-management.md#python-environment-management-using-cli) for `jlab env` CLI options.
35+
36+
### `jlab config <options>`
37+
38+
- #### `jlab config list [--project-path]`
39+
40+
Show application settings together with any project level overrides. If `--project-path` is set then setting overrides for the project in the specified directory are listed otherwise overrides for the current working directory are listed.
41+
42+
Examples:
43+
44+
```bash
45+
# list global application settings and project overrides in current working directory
46+
jlab config list
47+
# list global application settings and project overrides in /opt/test-project
48+
jlab config list --project-path=/opt/test-project
49+
```
50+
51+
- #### `jlab config set <setting-key> <setting-value> [--project] [--project-path]`
52+
53+
Set global application setting or project setting. If called without `--project` and `--project-path` sets global application setting. Calling with `--project` sets the project override for the current working directory. Calling with `--project-path` sets the project override for the specified directory.
54+
55+
Examples:
56+
57+
```bash
58+
# set checkForUpdatesAutomatically to false
59+
jlab config set checkForUpdatesAutomatically false
60+
# set theme to "dark"
61+
jlab config set theme "dark"
62+
# set the global default Python path for JupyterLab server
63+
jlab config set pythonPath /Users/username/custom_env/bin/python
64+
# set the default Python path for JupyterLab server for project at current working directory
65+
jlab config set pythonPath /Users/username/custom_env/bin/python --project
66+
# set the default Python path for JupyterLab server for particular project
67+
jlab config set pythonPath /Users/username/custom_env/bin/python --project-path=/opt/test-project
68+
# set conda channels to ["conda-forge", "bioconda"] on Windows
69+
jlab config set condaChannels [\"conda-forge\",\"bioconda\"]
70+
# set conda channels to ["conda-forge", "bioconda"] on macOS and Linux
71+
config set condaChannels '["conda-forge","bioconda"]'
72+
```
73+
74+
- #### `jlab config unset <setting-key> [--project] [--project-path]`
75+
76+
Unset/reset global application setting or project setting. If called without `--project` and `--project-path` unsets global application setting. Calling with `--project` unsets the project override for the current working directory. Calling with `--project-path` unsets the project override for the specified directory. Once a project setting is unset it defaults to global setting. Once a global setting is unset its default value is used.
77+
78+
Examples:
79+
80+
```bash
81+
# unset checkForUpdatesAutomatically
82+
jlab config unset checkForUpdatesAutomatically
83+
# unset the global default Python path for JupyterLab server
84+
jlab config unset pythonPath
85+
# unset the default Python path for JupyterLab server for project at current working directory
86+
jlab config unset pythonPath --project
87+
# unset the default Python path for JupyterLab server for particular project
88+
jlab config unset pythonPath --project-path=/opt/test-project
89+
```
90+
91+
- #### `jlab config open-file [--project] [--project-path]`
92+
93+
Open the settings JSON file for the global settings or project settings using the default File editor on system. If called without `--project` and `--project-path` opens global application settings file. Calling with `--project` opens the settings file for the the project at current working directory. Calling with `--project-path` opens the settings file for the project at specified directory.
94+
95+
Examples:
96+
97+
```bash
98+
# open global settings file
99+
jlab config open-file
100+
# open settings file for project at current working directory
101+
jlab config open-file --project
102+
# open settings file for particular project
103+
jlab config open-file --project-path=/opt/test-project
104+
```
105+
106+
### `jlab appdata <options>`
107+
108+
- #### `jlab appdata list`
109+
110+
Show application data. This is the data cached by the app and reused at restart. Some of the data is not listed for simplicity but can be accessed using the `open-file` option.
111+
112+
Examples:
113+
114+
```bash
115+
# list application data
116+
jlab appdata list
117+
```
118+
119+
- #### `jlab appdata open-file`
120+
121+
Open the application data JSON file using the default File editor on system.
122+
123+
Examples:
124+
125+
```bash
126+
# open the application data file
127+
jlab appdata open-file
128+
```
129+
130+
### `jlab logs <options>`
131+
132+
- #### `jlab logs show`
133+
134+
Show application logs in system Terminal.
135+
136+
Examples:
137+
138+
```bash
139+
# show application data
140+
jlab logs show
141+
```
142+
143+
- #### `jlab logs open-file`
144+
145+
Open the application log file using the default File editor on system.
146+
147+
Examples:
148+
149+
```bash
150+
# open the application log file
151+
jlab logs open-file
152+
```
153+
154+
For additional CLI options run `jlab --help` in command line.

dist-resources/icons/icon.ico

401 KB
Binary file not shown.

0 commit comments

Comments
 (0)