Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
262 changes: 131 additions & 131 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,143 +15,143 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

- name: Install dependencies
run: python -m pip install -U "jupyterlab>=4.0.0,<5"

- name: Lint the extension
run: |
set -eux
jlpm
jlpm run lint:check

- name: Test the extension
run: |
set -eux
jlpm run test

- name: Build the extension
run: |
set -eux
python -m pip install .[test]

pytest -vv -r ap --cov jupyterlab_deepnote
jupyter server extension list
jupyter server extension list 2>&1 | grep -ie "jupyterlab_deepnote.*OK"

jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "jupyterlab-deepnote.*OK"
python -m jupyterlab.browser_check

- name: Package the extension
run: |
set -eux

pip install build
python -m build
pip uninstall -y "jupyterlab_deepnote" jupyterlab

- name: Upload extension packages
uses: actions/upload-artifact@v4
with:
name: extension-artifacts
path: dist/jupyterlab_deepnote*
if-no-files-found: error
- name: Checkout
uses: actions/checkout@v4

- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

- name: Install dependencies
run: python -m pip install -U "jupyterlab>=4.0.0,<5"

- name: Lint the extension
run: |
set -eux
jlpm
jlpm run lint:check

- name: Test the extension
run: |
set -eux
jlpm run test

- name: Build the extension
run: |
set -eux
python -m pip install .[test]

pytest -vv -r ap --cov jupyterlab_deepnote
jupyter server extension list
jupyter server extension list 2>&1 | grep -ie "jupyterlab_deepnote.*OK"

jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "jupyterlab-deepnote.*OK"
python -m jupyterlab.browser_check

- name: Package the extension
run: |
set -eux

pip install build
python -m build
pip uninstall -y "jupyterlab_deepnote" jupyterlab

- name: Upload extension packages
uses: actions/upload-artifact@v4
with:
name: extension-artifacts
path: dist/jupyterlab_deepnote*
if-no-files-found: error

test_isolated:
needs: build
runs-on: ubuntu-latest

steps:
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
architecture: 'x64'
- uses: actions/download-artifact@v4
with:
name: extension-artifacts
- name: Install and Test
run: |
set -eux
# Remove NodeJS, twice to take care of system and locally installed node versions.
sudo rm -rf $(which node)
sudo rm -rf $(which node)

pip install "jupyterlab>=4.0.0,<5" jupyterlab_deepnote*.whl


jupyter server extension list
jupyter server extension list 2>&1 | grep -ie "jupyterlab_deepnote.*OK"

jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "jupyterlab-deepnote.*OK"
python -m jupyterlab.browser_check --no-browser-test

integration-tests:
name: Integration tests
needs: build
runs-on: ubuntu-latest

env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Base Setup
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

- name: Download extension package
uses: actions/download-artifact@v4
with:
name: extension-artifacts

- name: Install the extension
run: |
set -eux
python -m pip install "jupyterlab>=4.0.0,<5" jupyterlab_deepnote*.whl

- name: Install dependencies
working-directory: ui-tests
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: 0
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
run: jlpm install

- name: Set up browser cache
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/pw-browsers
key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }}

- name: Install browser
run: |
set -eux
jlpm playwright install-deps
jlpm playwright install chromium
working-directory: ui-tests

- name: Execute integration tests
working-directory: ui-tests
run: |
jlpm playwright test

- name: Upload Playwright Test report
if: always()
uses: actions/upload-artifact@v4
with:
name: jupyterlab_deepnote-playwright-tests
path: |
ui-tests/test-results
ui-tests/playwright-report
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.9'
architecture: 'x64'
- uses: actions/download-artifact@v4
with:
name: extension-artifacts
- name: Install and Test
run: |
set -eux
# Remove NodeJS, twice to take care of system and locally installed node versions.
sudo rm -rf $(which node)
sudo rm -rf $(which node)

pip install "jupyterlab>=4.0.0,<5" jupyterlab_deepnote*.whl


jupyter server extension list
jupyter server extension list 2>&1 | grep -ie "jupyterlab_deepnote.*OK"

jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "jupyterlab-deepnote.*OK"
python -m jupyterlab.browser_check --no-browser-test

# integration-tests:
# name: Integration tests
# needs: build
# runs-on: ubuntu-latest
#
# env:
# PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers
#
# steps:
# - name: Checkout
# uses: actions/checkout@v4
#
# - name: Base Setup
# uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
#
# - name: Download extension package
# uses: actions/download-artifact@v4
# with:
# name: extension-artifacts
#
# - name: Install the extension
# run: |
# set -eux
# python -m pip install "jupyterlab>=4.0.0,<5" jupyterlab_deepnote*.whl
#
# - name: Install dependencies
# working-directory: ui-tests
# env:
# YARN_ENABLE_IMMUTABLE_INSTALLS: 0
# PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
# run: jlpm install
#
# - name: Set up browser cache
# uses: actions/cache@v4
# with:
# path: |
# ${{ github.workspace }}/pw-browsers
# key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }}
#
# - name: Install browser
# run: |
# set -eux
# jlpm playwright install-deps
# jlpm playwright install chromium
# working-directory: ui-tests
#
# - name: Execute integration tests
# working-directory: ui-tests
# run: |
# jlpm playwright test
#
# - name: Upload Playwright Test report
# if: always()
# uses: actions/upload-artifact@v4
# with:
# name: jupyterlab_deepnote-playwright-tests
# path: |
# ui-tests/test-results
# ui-tests/playwright-report

check_links:
name: Check Links
Expand Down
13 changes: 0 additions & 13 deletions .github/workflows/enforce-label.yml

This file was deleted.

9 changes: 0 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# jupyterlab_deepnote

[![Github Actions Status](https://github.com/deepnote/jupyterlab-deepnote/workflows/Build/badge.svg)](https://github.com/deepnote/jupyterlab-deepnote/actions/workflows/build.yml)

A Deepnote extension for JupyterLab

This extension is composed of a Python package named `jupyterlab_deepnote`
Expand Down Expand Up @@ -168,13 +166,6 @@ jlpm
jlpm test
```

#### Integration tests

This extension uses [Playwright](https://playwright.dev/docs/intro) for the integration tests (aka user level tests).
More precisely, the JupyterLab helper [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata) is used to handle testing the extension in JupyterLab.

More information are provided within the [ui-tests](./ui-tests/README.md) README.

### Packaging the extension

See [RELEASE](RELEASE.md)
7 changes: 7 additions & 0 deletions src/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,11 +115,18 @@ class NotebookPicker extends ReactWidget {

return (
<HTMLSelect
id="deepnote-notebook-picker"
value={this.selected ?? '-'}
onChange={this.handleChange}
onKeyDown={() => {}}
aria-label="Select active notebook"
title="Select active notebook"
style={{
maxWidth: '120px',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
overflow: 'hidden'
}}
>
{names.length === 0 ? (
<option value="-">-</option>
Expand Down
Loading