Full Code of jupyter/notebook for AI

main 84d06f1b9dce cached
270 files
1.6 MB
793.8k tokens
196 symbols
1 requests
Download .txt
Showing preview only (1,762K chars total). Download the full file or copy to clipboard to get everything.
Repository: jupyter/notebook
Branch: main
Commit: 84d06f1b9dce
Files: 270
Total size: 1.6 MB

Directory structure:
gitextract_d_lj9zim/

├── .devcontainer/
│   ├── Dockerfile
│   └── devcontainer.json
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── actions/
│   │   └── build-dist/
│   │       └── action.yml
│   ├── answered.yml
│   ├── dependabot.yml
│   ├── jupyterlab-probot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── auto_author_assign.yml
│       ├── binder.yml
│       ├── build.yml
│       ├── buildutils.yml
│       ├── check-release.yml
│       ├── enforce-label.yml
│       ├── lock.yml
│       ├── playwright-update.yml
│       ├── prep-release.yml
│       ├── publish-changelog.yml
│       ├── publish-release.yml
│       ├── ui-tests.yml
│       └── upgrade-jupyterlab-dependencies.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .prettierignore
├── .prettierrc
├── .readthedocs.yaml
├── .yarnrc.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── RELEASE.md
├── app/
│   ├── index.template.js
│   ├── package.json
│   ├── publicpath.js
│   ├── rspack.config.js
│   ├── rspack.config.watch.js
│   ├── rspack.prod.config.js
│   ├── style.js
│   └── templates/
│       ├── consoles_template.html
│       ├── edit_template.html
│       ├── error_template.html
│       ├── notebooks_template.html
│       ├── terminals_template.html
│       └── tree_template.html
├── binder/
│   ├── environment.yml
│   ├── example.ipynb
│   └── postBuild
├── buildutils/
│   ├── package.json
│   ├── src/
│   │   ├── develop.ts
│   │   ├── ensure-repo.ts
│   │   ├── get-latest-lab-version.ts
│   │   ├── release-bump.ts
│   │   ├── release-patch.ts
│   │   ├── upgrade-lab-dependencies.ts
│   │   └── utils.ts
│   └── tsconfig.json
├── docs/
│   ├── Makefile
│   ├── jsdoc_config.json
│   ├── jsdoc_plugin.js
│   ├── make.bat
│   ├── resources/
│   │   ├── Info.plist.example
│   │   ├── generate_icons.sh
│   │   └── ipynb.icns
│   └── source/
│       ├── _static/
│       │   └── .gitkeep
│       ├── conf.py
│       ├── configuration.md
│       ├── configuring/
│       │   ├── config_overview.md
│       │   ├── interface_customization.md
│       │   └── plugins.md
│       ├── contributor.md
│       ├── custom_css.md
│       ├── development_faq.md
│       ├── examples/
│       │   ├── Notebook/
│       │   │   ├── Connecting with the Qt Console.ipynb
│       │   │   ├── Custom Keyboard Shortcuts.ipynb
│       │   │   ├── Importing Notebooks.ipynb
│       │   │   ├── Notebook Basics.ipynb
│       │   │   ├── Running Code.ipynb
│       │   │   ├── Typesetting Equations.ipynb
│       │   │   ├── What is the Jupyter Notebook.ipynb
│       │   │   ├── Working With Markdown Cells.ipynb
│       │   │   ├── examples_index.rst
│       │   │   └── nbpackage/
│       │   │       ├── __init__.py
│       │   │       ├── mynotebook.ipynb
│       │   │       └── nbs/
│       │   │           ├── __init__.py
│       │   │           └── other.ipynb
│       │   ├── images/
│       │   │   ├── FrontendKernel.graffle/
│       │   │   │   └── data.plist
│       │   │   └── animation.m4v
│       │   └── utils/
│       │       ├── list_pyfiles.ipy
│       │       └── list_subdirs.ipy
│       ├── extending/
│       │   ├── frontend_extensions.md
│       │   └── index.md
│       ├── index.md
│       ├── ipython_security.asc
│       ├── links.txt
│       ├── migrate_to_notebook7.md
│       ├── migrating/
│       │   ├── custom-themes.md
│       │   ├── frontend-extensions.md
│       │   ├── multiple-interfaces.md
│       │   ├── server-extensions.md
│       │   └── server-imports.md
│       ├── notebook.md
│       ├── notebook_7_features.md
│       ├── spelling_wordlist.txt
│       ├── template.tpl
│       ├── troubleshooting.md
│       ├── ui_components.md
│       └── user-documentation.md
├── eslint.config.mjs
├── jupyter-config/
│   └── jupyter_server_config.d/
│       └── notebook.json
├── jupyter-notebook.desktop
├── jupyter_config.json
├── lerna.json
├── notebook/
│   ├── __init__.py
│   ├── __main__.py
│   ├── _version.py
│   ├── app.py
│   └── custom/
│       └── custom.css
├── nx.json
├── package.json
├── packages/
│   ├── _metapackage/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   └── tsconfig.json
│   ├── application/
│   │   ├── babel.config.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app.ts
│   │   │   ├── index.ts
│   │   │   ├── panelhandler.ts
│   │   │   ├── pathopener.ts
│   │   │   ├── shell.ts
│   │   │   └── tokens.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   ├── index.js
│   │   │   └── sidepanel.css
│   │   ├── test/
│   │   │   └── shell.spec.ts
│   │   ├── tsconfig.json
│   │   └── tsconfig.test.json
│   ├── application-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── menus.json
│   │   │   ├── pages.json
│   │   │   ├── shell.json
│   │   │   ├── shortcuts.json
│   │   │   ├── title.json
│   │   │   ├── top.json
│   │   │   └── zen.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── console-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   └── scratchpad-console.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── docmanager-extension/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── documentsearch-extension/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── help-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   └── open.json
│   │   ├── src/
│   │   │   └── index.tsx
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── lab-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── interface-switcher.json
│   │   │   └── launch-tree.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── notebook-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── checkpoints.json
│   │   │   ├── edit-notebook-metadata.json
│   │   │   ├── full-width-notebook.json
│   │   │   ├── kernel-logo.json
│   │   │   ├── menu-override.json
│   │   │   └── scroll-output.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── trusted.tsx
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   ├── index.js
│   │   │   └── variables.css
│   │   └── tsconfig.json
│   ├── terminal-extension/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── tree/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── notebook-tree.ts
│   │   │   └── token.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── tree-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── file-actions.json
│   │   │   └── widget.json
│   │   ├── src/
│   │   │   ├── fileactions.tsx
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   └── ui-components/
│       ├── babel.config.js
│       ├── jest.config.js
│       ├── package.json
│       ├── src/
│       │   ├── icon/
│       │   │   ├── iconimports.ts
│       │   │   └── index.ts
│       │   ├── index.ts
│       │   └── svg.d.ts
│       ├── style/
│       │   ├── base.css
│       │   ├── index.css
│       │   └── index.js
│       ├── test/
│       │   └── foo.spec.ts
│       ├── tsconfig.json
│       └── tsconfig.test.json
├── pyproject.toml
├── setup.py
├── tests/
│   ├── conftest.py
│   └── test_app.py
├── tsconfig.eslint.json
├── tsconfigbase.json
├── tsconfigbase.test.json
└── ui-tests/
    ├── package.json
    ├── playwright.config.ts
    ├── test/
    │   ├── console.spec.ts
    │   ├── editor.spec.ts
    │   ├── filebrowser.spec.ts
    │   ├── fixtures.ts
    │   ├── general.spec.ts
    │   ├── jupyter_server_config.py
    │   ├── layout.spec.ts
    │   ├── links.spec.ts
    │   ├── menus.spec.ts
    │   ├── mobile.spec.ts
    │   ├── notebook.spec.ts
    │   ├── notebooks/
    │   │   ├── autoscroll.ipynb
    │   │   ├── empty.ipynb
    │   │   ├── local_links.ipynb
    │   │   ├── simple.ipynb
    │   │   └── simple_toc.ipynb
    │   ├── settings.spec.ts
    │   ├── smoke.spec.ts
    │   ├── tree.spec.ts
    │   └── utils.ts
    └── tsconfig.test.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .devcontainer/Dockerfile
================================================
FROM mcr.microsoft.com/devcontainers/base:jammy

ARG PIXI_VERSION=v0.42.1

RUN curl -L -o /usr/local/bin/pixi -fsSL --compressed "https://github.com/prefix-dev/pixi/releases/download/${PIXI_VERSION}/pixi-$(uname -m)-unknown-linux-musl" \
    && chmod +x /usr/local/bin/pixi \
    && pixi info

# set some user and workdir settings to work nicely with vscode
USER vscode
WORKDIR /home/vscode

RUN echo 'eval "$(pixi completion -s bash)"' >> /home/vscode/.bashrc


================================================
FILE: .devcontainer/devcontainer.json
================================================
{
  "name": "Jupyter Notebook",
  "build": {
    "dockerfile": "Dockerfile",
    "context": ".."
  },
  "forwardPorts": [8888],
  "customizations": {
    "vscode": {
      "settings": {},
      "extensions": ["ms-python.python", "charliermarsh.ruff", "GitHub.copilot"]
    }
  },
  "features": {
    "ghcr.io/devcontainers/features/docker-in-docker:2": {}
  },
  "mounts": [
    "source=${localWorkspaceFolderBasename}-pixi,target=${containerWorkspaceFolder}/.pixi,type=volume"
  ],
  "postCreateCommand": "sudo chown vscode .pixi && pixi install && pixi run develop && pixi run pre-commit install -f"
}


================================================
FILE: .git-blame-ignore-revs
================================================
# Run auto-formatters: https://github.com/jupyter/notebook/pull/6335
a7717d90f128368296fe3434deba5acd6031edab


================================================
FILE: .gitattributes
================================================
# SCM syntax highlighting & preventing 3-way merges
pixi.lock merge=binary linguist-language=YAML linguist-generated=true


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: "\U0001F41B Bug report"
about: Create a report to help us repair something that is currently broken
labels: bug, status:Needs Triage
---

<!-- Welcome! Thank you for contributing. These HTML comments will not render in the issue, but you can delete them once you've read them if you prefer! -->

<!--
Right now, you're opening an issue to report a bug in Jupyter Notebook.

Please answer the following questions for yourself before submitting an issue
- [ ] I checked the documentation and found no answer
- [ ] I checked to make sure that this issue has not already been filed
- [ ] I'm reporting the issue to the correct repository

If you have further questions after reading below, please visit the Jupyter Notebook discourse channel (https://discourse.jupyter.org/) and submit your questions there. There are many more people in the Jupyter community that engage on that channel.

NOTE:
Jupyter Notebook 6.x development is in maintenance-only mode. Bugs found in Notebook 6.x and that don't reproduce in Notebook 7.x may not get fixed.

Work in this repository is focused on Jupyter Notebook 7.x, the former RetroLab project. The code base for Notebook 7.x is very different than Notebook 6.x. If you can, please try reproducing Notebook 6.x bugs with Notebook 7.x using the main branch of this repository.

We recommend that you check out JupyterLab (https://github.com/jupyterlab/jupyterlab), Jupyter's next generation Notebook interface.

Here, we're looking for specific bugs in the Jupyter Notebook codebase. If you think you've identified such a bug, you can continue opening your issue here. We'd appreciate if you include as much detail as possible, such as links to the offending code, snapshots of the UI issue, code blocks with your console logs, etc.
-->

## Description

<!--Describe the bug clearly and concisely. Include screenshots if possible-->

## Reproduce

<!--Describe step-by-step instructions to reproduce the behavior-->

1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error '...'

<!--Describe how you diagnosed the issue. See the guidelines at
https://jupyter-notebook.readthedocs.io/en/latest/troubleshooting.html -->

## Expected behavior

<!--Describe what you expected to happen-->

## Context

<!--Complete the following for context, and add any other relevant context-->

- Operating System and version: <!-- e.g. Linux Ubuntu 21.04 -->
- Browser and version: <!-- e.g. Chrome 92 -->
<!-- Please note the Notebook version you are working with. You can find this in the Help -> About Jupyter Notebook menu option or by running `jupyter --version` from your terminal -->
- Jupyter Notebook version: <!-- e.g. 3.1.7 -->

<!--The more content you provide, the more we can help!-->

<details><summary>Troubleshoot Output</summary>
<pre>
Paste the output from running `jupyter troubleshoot` from the command line here.
You may want to sanitize the paths in the output.
</pre>
</details>

<details><summary>Command Line Output</summary>
<pre>
Paste the output from your command line running `jupyter notebook` here, use `--debug` if possible.
</pre>
</details>

<details><summary>Browser Output</summary>
<!--See https://webmasters.stackexchange.com/a/77337 for how to access the JavaScript console-->
<pre>
Paste the output from your browser Javascript console here, if applicable.

</pre>
</details>


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Is this a common issue? See our Docs.
    url: https://jupyter-notebook.readthedocs.io/en/latest/troubleshooting.html#what-to-do-when-things-go-wrong
    about: Before opening an issue, make sure your issue hasn't already been addressed in the documentation.
  - name: 🤔 Support and all other questions, including if you're not sure what to do.
    url: https://discourse.jupyter.org/c/notebook/31
    about: If you have a question or you're having issues installing Jupyter Notebook, try posting on Discourse.
  - name: 💬 Chat with the devs
    url: https://jupyter.zulipchat.com/
    about: Ask short questions about using Jupyter Notebook
  - name: 📝 Do you have a feature request that may be applied upstream? See JupyterLab.
    url: https://github.com/jupyterlab/jupyterlab
    about: We recommend that you cross-reference JupyterLab for information when requesting new features and support for Notebook 7. We won't likely accept new features for Jupyter Notebook 6.x.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: "\U0001F680 Feature Request"
about: Suggest a new feature or a change
labels: enhancement, status:Needs Triage
---

<!-- Welcome! These HTML comments will not render in the issue, but you can delete them once you've read them if you prefer! -->

<!--
Thanks for thinking of a way to improve Jupyter Notebook. If this solves a problem for you, then it probably solves that problem for lots of people! So the whole community will benefit from this request.

NOTE: Please note that Jupyter Notebook 6.x development is in maintenance-only mode.

Finally, please answer the following questions for yourself before submitting an issue.

- [ ] I checked to make sure that this issue has not already been filed
- [ ] I'm reporting the issue to the correct repository

-->

### Problem

<!-- Provide a clear and concise description of what problem this feature will solve. For example:

* I'm always frustrated when [...] because [...]
* I would like it if [...] happened when I [...] because [...]
-->

### Proposed Solution

<!-- Provide a clear and concise description of a way to accomplish what you want. For example:

* Add an option so that when [...]  [...] will happen
 -->

### Additional context

<!-- Add any other context or screenshots about the feature request here. You can also include links to examples of other programs that have something similar to your request. For example:

* Another project [...] solved this by [...]
-->


================================================
FILE: .github/actions/build-dist/action.yml
================================================
name: 'Build Jupyter Notebook'
description: 'Build Jupyter Notebook from source'
runs:
  using: 'composite'
  steps:
    - name: Base Setup
      uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

    - name: Install dependencies
      shell: bash
      run: |
        python -m pip install hatch

    - name: Build pypi distributions
      shell: bash
      run: |
        hatch build

    - name: Build npm distributions
      shell: bash
      run: |
        mkdir pkgs
        hatch run npm_pack
        cp packages/*/*.tgz pkgs

    - name: Build checksum file
      shell: bash
      run: |
        cd dist
        sha256sum * | tee SHA256SUMS
        cd ../pkgs
        sha256sum * | tee SHA256SUMS

    - name: Upload distributions
      uses: actions/upload-artifact@v4
      with:
        name: notebook-dist-${{ github.run_number }}
        path: ./dist

    - name: Upload distributions
      uses: actions/upload-artifact@v4
      with:
        name: notebook-pkgs-${{ github.run_number }}
        path: ./pkgs


================================================
FILE: .github/answered.yml
================================================
# This action automatically schedules issues to be closed that have been
# labeled as answered if there is no activity on them for 30 days. This takes
# care of the common usecase of an issue being answered to the best of our
# ability and no other follow-up from the submitter.
name: 'Close answered issues'
on:
  schedule:
    - cron: '30 1 * * *'

jobs:
  stale:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v3
        with:
          skip-stale-issue-message: true
          days-before-stale: 30
          days-before-close: 7
          stale-issue-label: 'status:Closing as Answered'
          only-issue-labels: 'status:Answered'


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: 'github-actions'
    directory: '/'
    schedule:
      interval: 'weekly'
    groups:
      actions:
        patterns:
          - "*"
  - package-ecosystem: 'pip'
    directory: '/'
    schedule:
      interval: 'weekly'


================================================
FILE: .github/jupyterlab-probot.yml
================================================
addBinderLink: false
triageLabel: 'status:Needs Triage'


================================================
FILE: .github/pull_request_template.md
================================================
<!--
Thanks for contributing to Jupyter Notebook!
Please fill out the following items to submit a pull request.
See the contributing guidelines for more information:
https://github.com/jupyter/notebook/blob/main/CONTRIBUTING.md
-->

## References

<!-- Note issue numbers this pull request addresses (should be at least one, see contributing guidelines above). -->

<!-- Note any other pull requests that address this issue and how this pull request is different. -->

## Code changes

<!-- Describe the code changes and how they address the issue. -->

## User-facing changes

<!-- Describe any visual or user interaction changes and how they address the issue. -->

<!-- For visual changes, include before and after screenshots or GIF/mp4/other video demo here. -->

## Backwards-incompatible changes

<!-- Describe any backwards-incompatible changes to JupyterLab public APIs. -->


================================================
FILE: .github/workflows/auto_author_assign.yml
================================================
# https://github.com/marketplace/actions/auto-author-assign
name: 'Auto Author Assign'

on:
  pull_request_target:
    types: [opened, reopened]

permissions:
  contents: read

jobs:
  assign-author:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - uses: toshimaru/auto-author-assign@v3.0.1


================================================
FILE: .github/workflows/binder.yml
================================================
name: Binder Badge
on:
  pull_request_target:
    types: [opened]

permissions:
  contents: read

jobs:
  binder:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - uses: jupyterlab/maintainer-tools/.github/actions/binder-link@v1
        with:
          github_token: ${{ secrets.github_token }}
          url_path: tree


================================================
FILE: .github/workflows/build.yml
================================================
name: Build

on:
  push:
    branches: ['main']
  pull_request:
  schedule:
    - cron: '0 0 * * *'

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

env:
  PIP_DISABLE_PIP_VERSION_CHECK: 1

defaults:
  run:
    shell: bash -eux {0}

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Build
        uses: ./.github/actions/build-dist

  test:
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      fail-fast: false
      matrix:
        # used by the jupyterlab/maintainer-tools base-setup action
        python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
    steps:
      - name: Checkout
        uses: actions/checkout@v6

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

      - name: Test the package
        run: hatch run cov:test

      - name: JavaScript tests
        run: |
          hatch run js_test

      - name: Integration Tests
        run: |
          pip install .
          cd
          jupyter labextension list 2>&1 | grep -ie "@jupyter-notebook/lab-extension.*enabled.*ok" -
          jupyter server extension list 2>&1 | grep -ie "notebook.*enabled" -
          python -m jupyterlab.browser_check

      - uses: jupyterlab/maintainer-tools/.github/actions/upload-coverage@v1

  coverage:
    runs-on: ubuntu-latest
    needs:
      - test
    steps:
      - uses: actions/checkout@v6
      - uses: jupyterlab/maintainer-tools/.github/actions/report-coverage@v1
        with:
          fail_under: 78

  test_docs:
    name: Test Docs
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
      - run: |
          sudo apt-get update
          sudo apt install enchant-2  # for spelling

          # pandoc is not up to date in the ubuntu repos, so we install directly
          wget https://github.com/jgm/pandoc/releases/download/2.14.2/pandoc-2.14.2-1-amd64.deb && sudo dpkg -i pandoc-2.14.2-1-amd64.deb
      - run: hatch run docs:build

  test_minimum_versions:
    name: Test Minimum Versions
    timeout-minutes: 20
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
        with:
          dependency_type: minimum
          python_version: '3.10'
      - name: Run the unit tests
        run: |
          hatch run test:nowarn || hatch run test:nowarn --lf

  test_prereleases:
    name: Test Prereleases
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - uses: actions/checkout@v6
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
        with:
          dependency_type: pre
          # TODO: Remove this pin once rpds-py supports Python 3.15.
          # Upstream: https://github.com/crate-py/rpds/issues/210
          python_version: '3.14'
      - name: Run the tests
        run: |
          hatch run test:nowarn || hatch run test:nowarn --lf

  install:
    needs: [build]
    runs-on: ${{ matrix.os }}
    timeout-minutes: 15
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
        python: ['3.10', '3.12', '3.14']
        include:
          - python: '3.10'
            dist: 'notebook*.tar.gz'
          - python: '3.12'
            dist: 'notebook*.whl'
          - python: '3.14'
            dist: 'notebook*.whl'
          - os: windows-latest
            py_cmd: python
          - os: macos-latest
            py_cmd: python3
          - os: ubuntu-latest
            py_cmd: python
    steps:
      - name: Install Python
        uses: actions/setup-python@v6
        with:
          python-version: ${{ matrix.python }}
          allow-prereleases: true
      - uses: actions/download-artifact@v8
        with:
          name: notebook-dist-${{ github.run_number }}
          path: ./dist
      - name: Install the prerequisites
        run: |
          ${{ matrix.py_cmd }} -m pip install -U pip wheel
      - name: Install the package
        run: |
          cd dist
          ${{ matrix.py_cmd }} -m pip install -vv ${{ matrix.dist }}
      - name: Validate environment
        run: |
          ${{ matrix.py_cmd }} -m pip freeze
          ${{ matrix.py_cmd }} -m pip check
      - name: Validate the install
        run: |
          jupyter labextension list
          jupyter labextension list 2>&1 | grep -ie "@jupyter-notebook/lab-extension.*enabled.*ok" -
          jupyter server extension list
          jupyter server extension list 2>&1 | grep -ie "notebook.*enabled" -
          jupyter notebook --version
          jupyter notebook --help

  check_links:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - uses: actions/checkout@v6
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
      - uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1
        with:
          ignore_links: 'https://playwright.dev/docs/test-cli/ https://blog.jupyter.org/.* https://mybinder.org/v2/gh/jupyter/notebook/main https://nbviewer.jupyter.org https://stackoverflow.com https://github.com/[^/]+/?$'
          ignore_glob: 'ui-tests/test/notebooks/*'

  test_lint:
    name: Test Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
      - name: Run Linters
        run: |
          hatch run typing:test
          hatch run lint:build
          pipx run interrogate -v .
          pipx run doc8 --max-line-length=200 docs/source *.md
          npm install -g yarn
          yarn
          yarn eslint:check
          yarn prettier:check
          yarn build:utils
          yarn integrity

  tests_check: # This job does nothing and is only used for the branch protection
    if: always()
    needs:
      - coverage
      - install
      - test_lint
      - test_docs
      - test_minimum_versions
      - test_prereleases
      - check_links
    runs-on: ubuntu-latest
    steps:
      - name: Decide whether the needed jobs succeeded or failed
        uses: re-actors/alls-green@release/v1
        with:
          jobs: ${{ toJSON(needs) }}


================================================
FILE: .github/workflows/buildutils.yml
================================================
name: Build Utilities

on:
  push:
    branches: ['main']
  pull_request:

defaults:
  run:
    shell: bash -l {0}

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  versioning:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: Checkout
        uses: actions/checkout@v6

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

      - name: Install dependencies
        run: |
          python -m pip install -U "jupyterlab>=4.6.0a0,<4.7" hatch
          jlpm
          jlpm run build

      - name: Configure git identity to commit
        run: |
          git config --global user.email "you@example.com"
          git config --global user.name "Your Name"

      - name: Reset version
        run: |
          hatch version 9.8.7
          jlpm run lerna version 9.8.7 --no-push --force-publish --no-git-tag-version --yes
          git commit -am "Release 9.8.7"

      - name: Patch Release
        run: |
          jlpm release:patch --force

      - name: Minor Release
        run: |
          jlpm release:bump minor --force

      - name: Release Cycle
        run: |
          # beta
          jlpm release:bump release --force
          # rc
          jlpm release:bump release --force
          # final
          jlpm release:bump release --force

      - name: Major Release
        run: |
          jlpm release:bump major --force

  npm:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6

      - name: Install Python
        uses: actions/setup-python@v6
        with:
          python-version: '3.10'
          architecture: 'x64'

      - name: Install dependencies
        run: |
          python -m pip install -U "jupyterlab>=4.6.0a0,<4.7" pip
          jlpm
          jlpm run build


================================================
FILE: .github/workflows/check-release.yml
================================================
name: Check Release
on:
  push:
    branches: ['main']
  pull_request:

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

jobs:
  check_release:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Base Setup
        uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
      - name: Check Release
        uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version_spec: next

      - name: Upload Distributions
        uses: actions/upload-artifact@v7
        with:
          name: notebook-jupyter-releaser-dist-${{ github.run_number }}
          path: .jupyter_releaser_checkout/dist


================================================
FILE: .github/workflows/enforce-label.yml
================================================
name: Enforce PR label

permissions:
  contents: read

on:
  pull_request:
    types: [labeled, unlabeled, opened, edited, synchronize]
jobs:
  enforce-label:
    runs-on: ubuntu-latest
    permissions:
      pull-requests: write
    steps:
      - name: enforce-triage-label
        uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1


================================================
FILE: .github/workflows/lock.yml
================================================
name: 'Lock Closed Threads'

on:
  schedule:
    - cron: '0 0 * * *'

permissions:
  contents: read

jobs:
  lock:
    runs-on: ubuntu-latest
    permissions:
      issues: write
      pull-requests: write
    steps:
      - uses: dessant/lock-threads@v6
        with:
          github-token: ${{ github.token }}
          issue-lock-inactive-days: '180'
          issue-lock-labels: 'status:resolved-locked'
          pr-lock-inactive-days: '180'
          pr-lock-labels: 'status:resolved-locked'


================================================
FILE: .github/workflows/playwright-update.yml
================================================
name: Update Playwright Snapshots

on:
  issue_comment:
    types: [created, edited]

permissions:
  contents: read

jobs:
  update-snapshots:
    runs-on: ubuntu-latest

    permissions:
      # Required by actions/update-snapshots
      contents: write
      pull-requests: write
    strategy:
      fail-fast: false
      matrix:
        browser: [firefox, chromium]

    # Only run on issue comments
    if: github.event.issue.pull_request && contains(github.event.comment.body, 'please update snapshots')

    steps:
      - uses: jupyterlab/maintainer-tools/.github/actions/update-snapshots-checkout@main
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

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

      - name: Build
        uses: ./.github/actions/build-dist

      - uses: actions/download-artifact@v8
        with:
          name: notebook-dist-${{ github.run_number }}
          path: ./dist

      - name: Install the package
        run: |
          cd dist
          python -m pip install -vv notebook*.whl

          # disable git hooks
          git config core.hooksPath no-hooks

      - name: Install the test dependencies
        run: |
          cd ui-tests
          jlpm
          jlpm playwright install

      - name: Update snapshots
        uses: jupyterlab/maintainer-tools/.github/actions/update-snapshots@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          npm_client: jlpm
          test_folder: ui-tests
          start_server_script: 'null'
          update_script: test:update --browser ${{ matrix.browser }}
        env:
          DEBUG: pw:webserver


================================================
FILE: .github/workflows/prep-release.yml
================================================
name: "Step 1: Prep Release"
on:
  workflow_dispatch:
    inputs:
      version_spec:
        description: "New Version Specifier"
        default: "next"
        required: false
      branch:
        description: "The branch to target"
        required: false
      post_version_spec:
        description: "Post Version Specifier"
        required: false
      silent:
        description: "Set a placeholder in the changelog and don't publish the release."
        required: false
        type: boolean
      since:
        description: "Use PRs with activity since this date or git reference"
        required: false
      since_last_stable:
        description: "Use PRs with activity since the last stable git tag"
        required: false
        type: boolean
jobs:
  prep_release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

      - name: Prep Release
        id: prep-release
        uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          version_spec: ${{ github.event.inputs.version_spec }}
          silent: ${{ github.event.inputs.silent }}
          post_version_spec: ${{ github.event.inputs.post_version_spec }}
          target: ${{ github.event.inputs.target }}
          branch: ${{ github.event.inputs.branch }}
          since: ${{ github.event.inputs.since }}
          since_last_stable: ${{ github.event.inputs.since_last_stable }}

      - name: "** Next Step **"
        run: |
          echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}"


================================================
FILE: .github/workflows/publish-changelog.yml
================================================
name: "Publish Changelog"
on:
  release:
    types: [published]

  workflow_dispatch:
    inputs:
      branch:
        description: "The branch to target"
        required: false

jobs:
  publish_changelog:
    runs-on: ubuntu-latest
    environment: release
    steps:
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

      - uses: actions/create-github-app-token@v2
        id: app-token
        with:
          app-id: ${{ vars.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}

      - name: Publish changelog
        id: publish-changelog
        uses: jupyter-server/jupyter_releaser/.github/actions/publish-changelog@v2
        with:
          token: ${{ steps.app-token.outputs.token }}
          branch: ${{ github.event.inputs.branch }}

      - name: "** Next Step **"
        run: |
          echo "Merge the changelog update PR: ${{ steps.publish-changelog.outputs.pr_url }}"


================================================
FILE: .github/workflows/publish-release.yml
================================================
name: "Step 2: Publish Release"
on:
  workflow_dispatch:
    inputs:
      branch:
        description: "The target branch"
        required: false
      release_url:
        description: "The URL of the draft GitHub release"
        required: false
      steps_to_skip:
        description: "Comma separated list of steps to skip"
        required: false

jobs:
  publish_release:
    runs-on: ubuntu-latest
    environment: release
    permissions:
      id-token: write
    steps:
      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1

      - uses: actions/create-github-app-token@v2
        id: app-token
        with:
          app-id: ${{ vars.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}

      - name: Populate Release
        id: populate-release
        uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2
        with:
          token: ${{ steps.app-token.outputs.token }}
          branch: ${{ github.event.inputs.branch }}
          release_url: ${{ github.event.inputs.release_url }}
          steps_to_skip: ${{ github.event.inputs.steps_to_skip }}

      - name: Finalize Release
        id: finalize-release
        env:
          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
        uses: jupyter-server/jupyter_releaser/.github/actions/finalize-release@v2
        with:
          token: ${{ steps.app-token.outputs.token }}
          release_url: ${{ steps.populate-release.outputs.release_url }}

      - name: "** Next Step **"
        if: ${{ success() }}
        run: |
          echo "Verify the final release"
          echo ${{ steps.finalize-release.outputs.release_url }}

      - name: "** Failure Message **"
        if: ${{ failure() }}
        run: |
          echo "Failed to Publish the Draft Release Url:"
          echo ${{ steps.populate-release.outputs.release_url }}


================================================
FILE: .github/workflows/ui-tests.yml
================================================
name: UI Tests

on:
  push:
    branches: ['main']
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

permissions:
  contents: read

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest

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

      - name: Build
        uses: ./.github/actions/build-dist

  ui-tests:
    needs: [build]
    runs-on: ubuntu-latest
    timeout-minutes: 20
    strategy:
      fail-fast: false
      matrix:
        browser: [firefox, chromium]
    steps:
      - name: Checkout
        uses: actions/checkout@v6

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

      - uses: actions/download-artifact@v8
        with:
          name: notebook-dist-${{ github.run_number }}
          path: ./dist

      - name: Install the package
        run: |
          cd dist
          python -m pip install -vv notebook*.whl

      - name: Install the test dependencies
        run: |
          cd ui-tests
          jlpm
          jlpm playwright install

      - name: Test
        run: |
          cd ui-tests
          jlpm test --browser ${{ matrix.browser }}

      - name: Upload Playwright Test assets
        if: always()
        uses: actions/upload-artifact@v7
        with:
          name: notebook-${{ matrix.browser }}-test-assets
          path: |
            ui-tests/test-results

      - name: Upload Playwright Test report
        if: always()
        uses: actions/upload-artifact@v7
        with:
          name: notebook-${{ matrix.browser }}-test-report
          path: |
            ui-tests/playwright-report

      - name: Update snapshots
        if: failure()
        run: |
          cd ui-tests
          # remove previous snapshots from other browser
          jlpm rimraf "test/**/*-snapshots/*.png"
          # generate new snapshots
          jlpm run test:update --browser ${{ matrix.browser }}

      - name: Upload updated snapshots
        if: failure()
        uses: actions/upload-artifact@v7
        with:
          name: notebook-${{ matrix.browser }}-updated-snapshots
          path: ui-tests/test


================================================
FILE: .github/workflows/upgrade-jupyterlab-dependencies.yml
================================================
name: Check for latest JupyterLab releases

on:
  # schedule:
  #   - cron: 30 17 * * *
  workflow_dispatch:
    inputs:
      version:
        description: 'JupyterLab version'
        default: latest
        required: true
        type: string
      branch:
        description: 'The branch to target'
        default: main
        required: false
        type: string
      target_repo:
        description: 'Target repository'
        required: false
        default: jupyter/notebook
        type: string

env:
  version_tag: 'latest'

permissions:
  actions: write
  contents: write
  pull-requests: write

jobs:
  check_for_lab_updates:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v6
        with:
          ref: ${{ inputs.branch || 'main' }}

      - name: Set up Python
        uses: actions/setup-python@v6
        with:
          python-version: '3.11'

      - name: Install Node
        uses: actions/setup-node@v6
        with:
          node-version: '20.x'

      - name: Install npm dependencies and build buildutils
        run: |
          python -m pip install -e ".[dev]"

          jlpm
          jlpm run build:utils

      - name: Check for new releases and update
        shell: bash
        run: |
          set -eux
          for version in ${{ inputs.version || env.version_tag }}
          do
            if [[ "${version}" == "latest" ]]; then
              export LATEST=$(jlpm run get:lab:version --set-version ${version})
            else
              export LATEST=${version}
            fi
          done

          echo "latest=${LATEST}" >> $GITHUB_ENV
          jlpm upgrade:lab:dependencies --set-version ${LATEST}
          if [[ ! -z "$(git status --porcelain package.json)" ]]; then
            jlpm
            jlpm deduplicate

            cd ui-tests
            jlpm
            jlpm deduplicate
          fi
      - uses: prefix-dev/setup-pixi@v0.9.4
        with:
          pixi-version: v0.41.4
          manifest-path: pyproject.toml
          locked: false

      - name: Update pixi.lock
        run: pixi install

      - name: Create a PR
        env:
          GH_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
        run: |
          set -eux

          export LATEST=${{ env.latest }}
          export BRANCH_NAME=update-to-v${LATEST}

          # if resulted in any change:
          if [[ ! -z "$(git status --porcelain package.json)" ]]; then
            # if branch already exists.
            if git ls-remote --heads origin | grep "refs/heads/${BRANCH_NAME}$" > /dev/null; then
              echo "Branch '${BRANCH_NAME}' exists."
            else
              # new branch is created
              git checkout -b "${BRANCH_NAME}"
              git config user.name "github-actions[bot]"
              git config user.email 'github-actions[bot]@users.noreply.github.com'

              git commit . -m "Update to JupyterLab v${LATEST}"

              git push --set-upstream origin "${BRANCH_NAME}"

              PR_ARGS=(
                --base "${{ inputs.branch || 'main' }}"
                --title "Update to JupyterLab v${LATEST}"
                --body "New JupyterLab release [v${LATEST}](https://github.com/jupyterlab/jupyterlab/releases/tag/v${LATEST}) is available. Please review the lock file carefully."
              )

              # Add --repo flag only if target_repo is specified
              if [[ -n "${{ inputs.target_repo }}" ]]; then
                PR_ARGS+=(--repo "${{ inputs.target_repo }}")
              fi

              gh pr create "${PR_ARGS[@]}"
            fi
          fi


================================================
FILE: .gitignore
================================================
*.bundle.*
lib/
node_modules/
*.egg-info/
.ipynb_checkpoints
*.tsbuildinfo

# Created by https://www.gitignore.io/api/python
# Edit at https://www.gitignore.io/?templates=python

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# Mr Developer
.mr.developer.cfg
.project
.pydevproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# OS X stuff
*.DS_Store

# End of https://www.gitignore.io/api/python

_temp_extension
junit.xml
[uU]ntitled*
notebook/static/*
!notebook/static/favicons
notebook/labextension
notebook/schemas
docs/source/changelog.md
docs/source/contributing.md

# playwright
ui-tests/test-results
ui-tests/playwright-report

# VSCode
.vscode

# RTC
.jupyter_ystore.db

# yarn >=2.x local files
.yarn/*
.pnp.*
ui-tests/.yarn/*
ui-tests/.pnp.*

# keep potential upstream patches
!.yarn/patches

# generated html
notebook/templates/*.html

# pixi environments
.pixi
*.egg-info

# Temporary files used for testing
tmp/


================================================
FILE: .pre-commit-config.yaml
================================================
ci:
  autoupdate_schedule: monthly
  autoupdate_commit_msg: 'chore: update pre-commit hooks'

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: check-case-conflict
      - id: check-ast
      - id: check-docstring-first
      - id: check-executables-have-shebangs
      - id: check-added-large-files
      - id: check-case-conflict
      - id: check-merge-conflict
      - id: check-json
      - id: check-toml
      - id: check-yaml
      - id: debug-statements
      - id: end-of-file-fixer
      - id: trailing-whitespace

  - repo: https://github.com/python-jsonschema/check-jsonschema
    rev: 0.30.0
    hooks:
      - id: check-github-workflows

  - repo: https://github.com/codespell-project/codespell
    rev: 'v2.3.0'
    hooks:
      - id: codespell
        args: ['-L', 'hart,noteable', '--skip', "*.spec.ts"]
        exclude: |
          (?x)^(
              yarn.lock|
              pixi.lock|
              binder/example.ipynb|
              docs/source/examples/images/FrontendKernel.graffle/data.plist|
          )$

  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: "v1.14.1"
    hooks:
      - id: mypy
        files: "^notebook"
        stages: [manual]
        args: ["--install-types", "--non-interactive"]
        additional_dependencies: ["traitlets>=5.13", "tornado", "jupyter_server>=2.10", "jupyterlab_server>=2.25", "jupyterlab>=4.6.0a4,<4.7"]

  - repo: https://github.com/pre-commit/pygrep-hooks
    rev: 'v1.10.0'
    hooks:
      - id: rst-backticks
      - id: rst-directive-colons
      - id: rst-inline-touching-normal

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.6
    hooks:
      - id: ruff
        types_or: [ python, jupyter ]
        exclude: '^docs/source/examples/Notebook/Importing Notebooks.ipynb'
        args: ['--fix', '--show-fixes']
      - id: ruff-format
        types_or: [ python, jupyter ]
        exclude: '^docs/source/examples/Notebook/Importing Notebooks.ipynb'

  - repo: https://github.com/scientific-python/cookie
    rev: '2024.08.19'
    hooks:
      - id: sp-repo-review
        additional_dependencies: ['repo-review[cli]']

  - repo: local
    hooks:
      - id: prettier
        name: prettier
        entry: 'npm run prettier:files'
        language: node
        types_or: [json, ts, tsx, javascript, jsx, css, markdown]
        stages: [manual]
      - id: integrity
        name: integrity
        entry: 'npm run integrity --force'
        language: node
        stages: [pre-push]


================================================
FILE: .prettierignore
================================================
node_modules
.mypy_cache
.ruff_cache
**/node_modules
**/lib
**/package.json
**/static
**/labextension
build
CHANGELOG.md
app/index.template.js
.pixi


================================================
FILE: .prettierrc
================================================
{
  "singleQuote": true
}


================================================
FILE: .readthedocs.yaml
================================================
version: 2
sphinx:
  configuration: docs/source/conf.py
build:
  os: ubuntu-22.04
  tools:
    python: '3.10'
    nodejs: '16'
python:
  install:
    # install notebook itself
    - method: pip
      path: '.[docs]'


================================================
FILE: .yarnrc.yml
================================================
enableImmutableInstalls: false
enableInlineBuilds: false
enableTelemetry: false
httpTimeout: 60000
nodeLinker: node-modules


================================================
FILE: CHANGELOG.md
================================================
# Changelog

A summary of changes in the Jupyter notebook. For more detailed
information, see [GitHub](https://github.com/jupyter/notebook).

Use `pip install notebook --upgrade` or `conda upgrade notebook` to
upgrade to the latest release.

We strongly recommend that you upgrade pip to version 9+ of pip before
upgrading `notebook`.

Use `pip install pip --upgrade` to upgrade pip. Check pip version with
`pip --version`.

## 7.5

Jupyter Notebook 7.5 is based on JupyterLab 4.5, and includes a number of new features, bug fixes, and enhancements for extension developers. This release is compatible with extensions supporting JupyterLab 4.0. Extension authors are recommended to consult the [Extension Migration Guide](https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-4-4-to-4-5) which lists deprecations and changes to the public API.

Below are a few highlights for this new release. Most of the new features and improvements come from the update to JupyterLab 4.5, although they may not all be supported in Notebook 7.5.

For reference you may have a look at the [JupyterLab 4.5 changelog](https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-5) to learn more.

### Notebook improvements

The default windowing mode is now `contentVisibility` which improves cell rendering and alleviates previously reported issues. The minimap can be enabled for all windowing modes and all notebooks via the `Settings` menu, or by toggling the minimap per notebook with the `View` -> `Show Minimap` option.

Additional fixes improve layout containment and scrollbar behavior when working with long cells.

### Debugger and console enhancements

The debugger's evaluate dialog has been replaced with an interactive console featuring syntax highlighting and code completion. The variables panel now preserves state when switching editors. Visual improvements include highlighted selected breakpoints, improved empty line handling, and a paused indicator. Debugger panels now reference cell execution counts.

<img alt="Debugger panels with reference to execution counts and paused indicator as well as console evaluation"
src="https://raw.githubusercontent.com/jupyter/notebook/main/docs/source/_static/changelog_assets/7.5-debugger.webp"
class="jp-screenshot">

Log Console users can configure default log levels and customize toolbars.

### Terminal enhancements

The terminal now includes search functionality, with search highlights that adapt to theme changes.

### Media and content support

Built-in audio and video viewers allow direct file playback within Jupyter Notebook.

<img alt="Video file opened in a Jupyter Notebook tab"
src="https://raw.githubusercontent.com/jupyter/notebook/main/docs/source/_static/changelog_assets/7.5-media-player.webp"
class="jp-screenshot">

### File browser enhancements

- There is a new `allowFileUploads` setting to control upload permissions.
- Menu options for creating Python, R, or Julia files are now available from the New menu.
- The "Select All" command is now available with the Ctrl + A (or Cmd + A on macOS) keyboard shortcut in the file browser.
- Breadcrumbs are now configurable through `breadcrumbsLeftItems` and `breadcrumbsRightItems` settings.

### Settings editor improvements

The `addExtraLineOnCellMerge` setting removes extra lines when merging cells, matching classic notebook behavior.

### Cell toolbar settings

The cell toolbar settings are now exposed in the Settings Editor, making it easier to customize the cell toolbar appearance and behavior.

### Keyboard shortcuts

The `O` key has been defined as the keyboard shortcut to toggle cell outputs, restoring this familiar functionality from the classic notebook.

### User interface and accessibility

Automatic theme switching between light and dark modes is now available when system synchronization is enabled. Dialog components display buttons and checkboxes on separate lines for improved readability. Terminal selections show better visibility under high-contrast themes. Keyboard navigation and status bar tab ordering have been improved.

### Breaking changes

Python 3.8 support has been dropped in this release.

<!-- <START NEW CHANGELOG ENTRY> -->

## 7.6.0a4

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.6.0-alpha.3...fc791fcb0af893e3ffe7563a4140ec6af8c9dbe2))

### Bugs fixed

- Prevent scratchpad console title to update [#7843](https://github.com/jupyter/notebook/pull/7843) ([@brichet](https://github.com/brichet), [@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.6.0a4 [#7859](https://github.com/jupyter/notebook/pull/7859) ([@jtpio](https://github.com/jtpio))
- Fix check links [#7857](https://github.com/jupyter/notebook/pull/7857) ([@jtpio](https://github.com/jtpio))
- TypeScript 5.9 [#7855](https://github.com/jupyter/notebook/pull/7855) ([@jtpio](https://github.com/jtpio))
- Bump the actions group with 2 updates [#7846](https://github.com/jupyter/notebook/pull/7846) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2026-02-24&to=2026-03-12&type=c))

@brichet ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2026-02-24..2026-03-12&type=Issues)) | @jtpio ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-02-24..2026-03-12&type=Issues))

<!-- <END NEW CHANGELOG ENTRY> -->

## 7.6.0a3

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.6.0-alpha.2...767a30d1ec90e9baf4975023c7019c95d9fe8614))

### Enhancements made

- Update to JupyterLab v4.6.0a3 [#7839](https://github.com/jupyter/notebook/pull/7839) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Fix PyO3 CI failure with Python 3.15 [#7836](https://github.com/jupyter/notebook/pull/7836) ([@jtpio](https://github.com/jtpio))
- Update to ESLint 9, update other dependencies [#7821](https://github.com/jupyter/notebook/pull/7821) ([@jtpio](https://github.com/jtpio))
- Bump prefix-dev/setup-pixi from 0.9.3 to 0.9.4 in the actions group [#7819](https://github.com/jupyter/notebook/pull/7819) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- docs: Fix broken links in troubleshooting and migration docs [#7824](https://github.com/jupyter/notebook/pull/7824) ([@RamiNoodle733](https://github.com/RamiNoodle733), [@jtpio](https://github.com/jtpio))
- Fix grammar: join sentences in CONTRIBUTING.md [#7813](https://github.com/jupyter/notebook/pull/7813) ([@bodhisilberling](https://github.com/bodhisilberling), [@krassowski](https://github.com/krassowski))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2026-01-23&to=2026-02-24&type=c))

@bodhisilberling ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abodhisilberling+updated%3A2026-01-23..2026-02-24&type=Issues)) | @jtpio ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-01-23..2026-02-24&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2026-01-23..2026-02-24&type=Issues)) | @RamiNoodle733 ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARamiNoodle733+updated%3A2026-01-23..2026-02-24&type=Issues))

## 7.6.0a2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.6.0-alpha.1...209c7da02e8245ec96bf121a641802096ff8cbb3))

### Enhancements made

- Add a scratch-pad console to the notebook [#7790](https://github.com/jupyter/notebook/pull/7790) ([@brichet](https://github.com/brichet), [@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.6.0a2 [#7814](https://github.com/jupyter/notebook/pull/7814) ([@jtpio](https://github.com/jtpio))
- Bump the actions group with 4 updates [#7811](https://github.com/jupyter/notebook/pull/7811) ([@jtpio](https://github.com/jtpio))
- Bump tar from 6.1.13 to 6.2.1 in /ui-tests [#7810](https://github.com/jupyter/notebook/pull/7810) ([@jtpio](https://github.com/jtpio))
- Update snapshots bot checkout and permission check [#7806](https://github.com/jupyter/notebook/pull/7806) ([@martinRenou](https://github.com/martinRenou), [@krassowski](https://github.com/krassowski))
- Rename the token env variable [#7802](https://github.com/jupyter/notebook/pull/7802) ([@brichet](https://github.com/brichet), [@jtpio](https://github.com/jtpio))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2026-01-12&to=2026-01-23&type=c))

@brichet ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2026-01-12..2026-01-23&type=Issues)) | @jtpio ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2026-01-12..2026-01-23&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2026-01-12..2026-01-23&type=Issues)) | @martinRenou ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AmartinRenou+updated%3A2026-01-12..2026-01-23&type=Issues))

## 7.6.0a1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.6.0-alpha.0...aa605fa66c6885d85a37c7ab3ba6e7f7a837a810))

### Enhancements made

- Add PR template [#7792](https://github.com/jupyter/notebook/pull/7792) ([@KH-Coder865](https://github.com/KH-Coder865), [@andrii-i](https://github.com/andrii-i))

### Bugs fixed

- Fix toggling the side panels from menu [#7799](https://github.com/jupyter/notebook/pull/7799) ([@brichet](https://github.com/brichet), [@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Clean up node 24 install [#7803](https://github.com/jupyter/notebook/pull/7803) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.6.0a1 [#7801](https://github.com/jupyter/notebook/pull/7801) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Fix grammar in notebook documentation [#7794](https://github.com/jupyter/notebook/pull/7794) ([@xlumzee](https://github.com/xlumzee), [@krassowski](https://github.com/krassowski))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-12-17&to=2026-01-12&type=c))

@andrii-i ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2025-12-17..2026-01-12&type=Issues)) | @brichet ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2025-12-17..2026-01-12&type=Issues)) | @jtpio ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-12-17..2026-01-12&type=Issues)) | @KH-Coder865 ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AKH-Coder865+updated%3A2025-12-17..2026-01-12&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-12-17..2026-01-12&type=Issues)) | @xlumzee ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Axlumzee+updated%3A2025-12-17..2026-01-12&type=Issues))

## 7.6.0a0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.1...e7f5e5d50ea18b0b17fe8a9df674025fcc6ab5d1))

### Maintenance and upkeep improvements

- Bump systeminformation from 5.23.14 to 5.27.14 in /ui-tests [#7788](https://github.com/jupyter/notebook/pull/7788) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `4.6.0a0` [#7787](https://github.com/jupyter/notebook/pull/7787) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-12-16&to=2025-12-17&type=c))

@jtpio ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-12-16..2025-12-17&type=Issues))

## 7.5.1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0...fccf56801be0a27a3de76c00d2710a941f255b10))

### Bugs fixed

- Fix selector for the `O` keyboard shortcut [#7782](https://github.com/jupyter/notebook/pull/7782) ([@jtpio](https://github.com/jtpio), [@krassowski](https://github.com/krassowski))
- Fix missing debugger display provider in Notebook [#7774](https://github.com/jupyter/notebook/pull/7774) ([@arjxn-py](https://github.com/arjxn-py), [@jtpio](https://github.com/jtpio), [@martinRenou](https://github.com/martinRenou))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.5.1 [#7785](https://github.com/jupyter/notebook/pull/7785) ([@jtpio](https://github.com/jtpio))
- Fix link to the IPython install page [#7783](https://github.com/jupyter/notebook/pull/7783) ([@jtpio](https://github.com/jtpio))
- Fix `hatch build`, ignore links to `blog.jupyter.org` [#7780](https://github.com/jupyter/notebook/pull/7780) ([@jtpio](https://github.com/jtpio))
- Bump the actions group with 4 updates [#7773](https://github.com/jupyter/notebook/pull/7773) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

The following people contributed discussions, new ideas, code and documentation contributions, and review.
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/#how-does-this-tool-define-contributions-in-the-reports).

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-11-19&to=2025-12-16&type=c))

@arjxn-py ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aarjxn-py+updated%3A2025-11-19..2025-12-16&type=Issues)) | @jtpio ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-11-19..2025-12-16&type=Issues)) | @krassowski ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-11-19..2025-12-16&type=Issues)) | @martinRenou ([activity](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AmartinRenou+updated%3A2025-11-19..2025-12-16&type=Issues))

## 7.5.0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0...be53ec8bc96cdbcb64b6f1c5ec39c123c087a348))

### Enhancements made

- Update to JupyterLab v4.5.0b1 [#7746](https://github.com/jupyter/notebook/pull/7746) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.5.0b0 [#7739](https://github.com/jupyter/notebook/pull/7739) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.5.0a4 [#7728](https://github.com/jupyter/notebook/pull/7728) ([@jtpio](https://github.com/jtpio))
- Increase the checkpoint polling interval to 30s [#7711](https://github.com/jupyter/notebook/pull/7711) ([@jtpio](https://github.com/jtpio))
- Define `O` as the keyboard shortcut to toggle cell outputs [#7709](https://github.com/jupyter/notebook/pull/7709) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.5.0a3 [#7703](https://github.com/jupyter/notebook/pull/7703) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Expose the cell toolbar settings [#7766](https://github.com/jupyter/notebook/pull/7766) ([@jtpio](https://github.com/jtpio))
- Handle file rename errors [#7710](https://github.com/jupyter/notebook/pull/7710) ([@jtpio](https://github.com/jtpio))
- Fix open file with “#” in the filename [#7698](https://github.com/jupyter/notebook/pull/7698) ([@itsmevichu](https://github.com/itsmevichu))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.5.0 [#7768](https://github.com/jupyter/notebook/pull/7768) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.5.0rc1 [#7764](https://github.com/jupyter/notebook/pull/7764) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.5.0rc0 [#7755](https://github.com/jupyter/notebook/pull/7755) ([@jtpio](https://github.com/jtpio))
- Bump the actions group across 1 directory with 3 updates [#7751](https://github.com/jupyter/notebook/pull/7751) ([@dependabot](https://github.com/dependabot))
- Use Node.js 24 / npm 11 to publish releases [#7749](https://github.com/jupyter/notebook/pull/7749) ([@jtpio](https://github.com/jtpio))
- Revert "Pin `click<8.3`" [#7733](https://github.com/jupyter/notebook/pull/7733) ([@jtpio](https://github.com/jtpio))
- Remove link to `npmjs.com` [#7730](https://github.com/jupyter/notebook/pull/7730) ([@jtpio](https://github.com/jtpio))
- Pin `click<8.3` [#7729](https://github.com/jupyter/notebook/pull/7729) ([@jtpio](https://github.com/jtpio))
- Bump the actions group across 1 directory with 3 updates [#7704](https://github.com/jupyter/notebook/pull/7704) ([@dependabot](https://github.com/dependabot))
- Update to JupyterLab v4.5.0a2 [#7694](https://github.com/jupyter/notebook/pull/7694) ([@jtpio](https://github.com/jtpio))
- Pin `httpx` [#7691](https://github.com/jupyter/notebook/pull/7691) ([@jtpio](https://github.com/jtpio))
- Bump prefix-dev/setup-pixi from 0.8.10 to 0.8.11 in the actions group [#7675](https://github.com/jupyter/notebook/pull/7675) ([@dependabot](https://github.com/dependabot))
- Bump prefix-dev/setup-pixi from 0.8.8 to 0.8.10 in the actions group [#7665](https://github.com/jupyter/notebook/pull/7665) ([@dependabot](https://github.com/dependabot))
- Bump brace-expansion from 1.1.11 to 1.1.12 in /ui-tests [#7664](https://github.com/jupyter/notebook/pull/7664) ([@dependabot](https://github.com/dependabot))
- Revert "CI: pin to `jupyter-core<5.8.0` on Windows" [#7657](https://github.com/jupyter/notebook/pull/7657) ([@minrk](https://github.com/minrk))
- Update to JupyterLab v4.5.0a1 [#7656](https://github.com/jupyter/notebook/pull/7656) ([@jtpio](https://github.com/jtpio))
- CI: pin to `jupyter-core<5.8.0` on Windows [#7655](https://github.com/jupyter/notebook/pull/7655) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.5.0a0 [#7650](https://github.com/jupyter/notebook/pull/7650) ([@jtpio](https://github.com/jtpio))
- Run UI tests on `ubuntu-latest` [#7639](https://github.com/jupyter/notebook/pull/7639) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.1 [#7638](https://github.com/jupyter/notebook/pull/7638) ([@jtpio](https://github.com/jtpio))
- Bump prefix-dev/setup-pixi from 0.8.5 to 0.8.8 in the actions group [#7637](https://github.com/jupyter/notebook/pull/7637) ([@dependabot](https://github.com/dependabot))
- chore: Fix UP006 [#7633](https://github.com/jupyter/notebook/pull/7633) ([@honnix](https://github.com/honnix))
- Bump prefix-dev/setup-pixi from 0.8.4 to 0.8.5 in the actions group [#7632](https://github.com/jupyter/notebook/pull/7632) ([@dependabot](https://github.com/dependabot))
- Drop support for Python 3.8 [#7628](https://github.com/jupyter/notebook/pull/7628) ([@honnix](https://github.com/honnix))

### Documentation improvements

- User facing changelog for 7.5 [#7770](https://github.com/jupyter/notebook/pull/7770) ([@jtpio](https://github.com/jtpio))
- Clean up references to Gitpod [#7767](https://github.com/jupyter/notebook/pull/7767) ([@jtpio](https://github.com/jtpio))
- Fix link to Code of Conduct in CONTRIBUTING.md [#7758](https://github.com/jupyter/notebook/pull/7758) ([@jtpio](https://github.com/jtpio))
- Remove JupyterCon 2025 announcement banner [#7757](https://github.com/jupyter/notebook/pull/7757) ([@jasongrout](https://github.com/jasongrout))
- Update JupyterCon 2025 announcement links [#7744](https://github.com/jupyter/notebook/pull/7744) ([@krassowski](https://github.com/krassowski))
- Add JupyterCon banner and add Jupyter colors [#7727](https://github.com/jupyter/notebook/pull/7727) ([@choldgraf](https://github.com/choldgraf))
- Fix grammatical issues in Contributing.md [#7669](https://github.com/jupyter/notebook/pull/7669) ([@sangampaudel530](https://github.com/sangampaudel530))
- Fixed grammar and typos in CONTRIBUTING.md [#7645](https://github.com/jupyter/notebook/pull/7645) ([@jchen1223](https://github.com/jchen1223))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-04-09&to=2025-11-19&type=c))

[@afshin](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aafshin+updated%3A2025-04-09..2025-11-19&type=Issues) | [@choldgraf](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Acholdgraf+updated%3A2025-04-09..2025-11-19&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-04-09..2025-11-19&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-04-09..2025-11-19&type=Issues) | [@honnix](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ahonnix+updated%3A2025-04-09..2025-11-19&type=Issues) | [@itsmevichu](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aitsmevichu+updated%3A2025-04-09..2025-11-19&type=Issues) | [@jasongrout](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajasongrout+updated%3A2025-04-09..2025-11-19&type=Issues) | [@jchen1223](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajchen1223+updated%3A2025-04-09..2025-11-19&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-04-09..2025-11-19&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-04-09..2025-11-19&type=Issues) | [@lumberbot-app](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Alumberbot-app+updated%3A2025-04-09..2025-11-19&type=Issues) | [@minrk](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aminrk+updated%3A2025-04-09..2025-11-19&type=Issues) | [@nkn2022](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ankn2022+updated%3A2025-04-09..2025-11-19&type=Issues) | [@sangampaudel530](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Asangampaudel530+updated%3A2025-04-09..2025-11-19&type=Issues)

## 7.5.0rc1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-rc.0...7533ccab5e4adc765e57a35b1791850daf952044))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.5.0rc1 [#7764](https://github.com/jupyter/notebook/pull/7764) ([@jtpio](https://github.com/jtpio))
- Bump the actions group across 1 directory with 3 updates [#7751](https://github.com/jupyter/notebook/pull/7751) ([@dependabot](https://github.com/dependabot))

### Documentation improvements

- Fix link to Code of Conduct in CONTRIBUTING.md [#7758](https://github.com/jupyter/notebook/pull/7758) ([@jtpio](https://github.com/jtpio))
- Remove JupyterCon 2025 announcement banner [#7757](https://github.com/jupyter/notebook/pull/7757) ([@jasongrout](https://github.com/jasongrout))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-11-03&to=2025-11-14&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-11-03..2025-11-14&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-11-03..2025-11-14&type=Issues) | [@jasongrout](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajasongrout+updated%3A2025-11-03..2025-11-14&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-11-03..2025-11-14&type=Issues)

## 7.5.0rc0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-beta.1...18ba796a58402999044b7e8c4401319b76fed0ce))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.5.0rc0 [#7755](https://github.com/jupyter/notebook/pull/7755) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-10-20&to=2025-11-03&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-10-20..2025-11-03&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-10-20..2025-11-03&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-10-20..2025-11-03&type=Issues)

## 7.5.0b1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-beta.0...7f84b95ed6550508f9de03d27cd8c2cb84777648))

### Enhancements made

- Update to JupyterLab v4.5.0b1 [#7746](https://github.com/jupyter/notebook/pull/7746) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Use Node.js 24 / npm 11 to publish releases [#7749](https://github.com/jupyter/notebook/pull/7749) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Update JupyterCon 2025 announcement links [#7744](https://github.com/jupyter/notebook/pull/7744) ([@krassowski](https://github.com/krassowski))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-09-29&to=2025-10-20&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-09-29..2025-10-20&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-09-29..2025-10-20&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-09-29..2025-10-20&type=Issues) | [@nkn2022](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ankn2022+updated%3A2025-09-29..2025-10-20&type=Issues)

## 7.5.0b0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-alpha.3...828708ec26cc4d2ff9f8b725b00024481ae42d2d))

### Enhancements made

- Update to JupyterLab v4.5.0b0 [#7739](https://github.com/jupyter/notebook/pull/7739) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Add JupyterCon banner and add Jupyter colors [#7727](https://github.com/jupyter/notebook/pull/7727) ([@choldgraf](https://github.com/choldgraf))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-09-24&to=2025-09-29&type=c))

[@choldgraf](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Acholdgraf+updated%3A2025-09-24..2025-09-29&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-09-24..2025-09-29&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-09-24..2025-09-29&type=Issues)

## 7.5.0a3

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-alpha.2...254b06ca4b232a0a96ad2dddde560e41df371e57))

### Enhancements made

- Update to JupyterLab v4.5.0a4 [#7728](https://github.com/jupyter/notebook/pull/7728) ([@jtpio](https://github.com/jtpio))
- Increase the checkpoint polling interval to 30s [#7711](https://github.com/jupyter/notebook/pull/7711) ([@jtpio](https://github.com/jtpio))
- Define `O` as the keyboard shortcut to toggle cell outputs [#7709](https://github.com/jupyter/notebook/pull/7709) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Handle file rename errors [#7710](https://github.com/jupyter/notebook/pull/7710) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Revert "Pin `click<8.3`" [#7733](https://github.com/jupyter/notebook/pull/7733) ([@jtpio](https://github.com/jtpio))
- Remove link to `npmjs.com` [#7730](https://github.com/jupyter/notebook/pull/7730) ([@jtpio](https://github.com/jtpio))
- Pin `click<8.3` [#7729](https://github.com/jupyter/notebook/pull/7729) ([@jtpio](https://github.com/jtpio))
- Bump the actions group across 1 directory with 3 updates [#7704](https://github.com/jupyter/notebook/pull/7704) ([@dependabot](https://github.com/dependabot))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-08-18&to=2025-09-24&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-08-18..2025-09-24&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-08-18..2025-09-24&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-08-18..2025-09-24&type=Issues) | [@nkn2022](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ankn2022+updated%3A2025-08-18..2025-09-24&type=Issues)

## 7.5.0a2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-alpha.1...3100d879bfe09c629b4add998bd2ac408ffa2af8))

### Enhancements made

- Update to JupyterLab v4.5.0a3 [#7703](https://github.com/jupyter/notebook/pull/7703) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix open file with “#” in the filename [#7698](https://github.com/jupyter/notebook/pull/7698) ([@itsmevichu](https://github.com/itsmevichu))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-08-11&to=2025-08-18&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-08-11..2025-08-18&type=Issues) | [@itsmevichu](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aitsmevichu+updated%3A2025-08-11..2025-08-18&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-08-11..2025-08-18&type=Issues)

## 7.5.0a1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.5.0-alpha.0...f56a27c17bfd85f37a27dea9512c675120571e63))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.5.0a2 [#7694](https://github.com/jupyter/notebook/pull/7694) ([@jtpio](https://github.com/jtpio))
- Pin `httpx` [#7691](https://github.com/jupyter/notebook/pull/7691) ([@jtpio](https://github.com/jtpio))
- Bump prefix-dev/setup-pixi from 0.8.10 to 0.8.11 in the actions group [#7675](https://github.com/jupyter/notebook/pull/7675) ([@dependabot](https://github.com/dependabot))
- Bump prefix-dev/setup-pixi from 0.8.8 to 0.8.10 in the actions group [#7665](https://github.com/jupyter/notebook/pull/7665) ([@dependabot](https://github.com/dependabot))
- Bump brace-expansion from 1.1.11 to 1.1.12 in /ui-tests [#7664](https://github.com/jupyter/notebook/pull/7664) ([@dependabot](https://github.com/dependabot))
- Revert "CI: pin to `jupyter-core<5.8.0` on Windows" [#7657](https://github.com/jupyter/notebook/pull/7657) ([@minrk](https://github.com/minrk))
- Update to JupyterLab v4.5.0a1 [#7656](https://github.com/jupyter/notebook/pull/7656) ([@jtpio](https://github.com/jtpio))
- CI: pin to `jupyter-core<5.8.0` on Windows [#7655](https://github.com/jupyter/notebook/pull/7655) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Fix grammatical issues in Contributing.md [#7669](https://github.com/jupyter/notebook/pull/7669) ([@sangampaudel530](https://github.com/sangampaudel530))
- Fixed grammar and typos in CONTRIBUTING.md [#7645](https://github.com/jupyter/notebook/pull/7645) ([@jchen1223](https://github.com/jchen1223))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-05-07&to=2025-08-11&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-05-07..2025-08-11&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-05-07..2025-08-11&type=Issues) | [@jchen1223](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajchen1223+updated%3A2025-05-07..2025-08-11&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-05-07..2025-08-11&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-05-07..2025-08-11&type=Issues) | [@minrk](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aminrk+updated%3A2025-05-07..2025-08-11&type=Issues) | [@sangampaudel530](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Asangampaudel530+updated%3A2025-05-07..2025-08-11&type=Issues)

## 7.5.0a0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0...22e29fc41901ef8116670bc8a04eeb833858ff51))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.5.0a0 [#7650](https://github.com/jupyter/notebook/pull/7650) ([@jtpio](https://github.com/jtpio))
- Run UI tests on `ubuntu-latest` [#7639](https://github.com/jupyter/notebook/pull/7639) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.1 [#7638](https://github.com/jupyter/notebook/pull/7638) ([@jtpio](https://github.com/jtpio))
- Bump prefix-dev/setup-pixi from 0.8.5 to 0.8.8 in the actions group [#7637](https://github.com/jupyter/notebook/pull/7637) ([@dependabot](https://github.com/dependabot))
- chore: Fix UP006 [#7633](https://github.com/jupyter/notebook/pull/7633) ([@honnix](https://github.com/honnix))
- Bump prefix-dev/setup-pixi from 0.8.4 to 0.8.5 in the actions group [#7632](https://github.com/jupyter/notebook/pull/7632) ([@dependabot](https://github.com/dependabot))
- Drop support for Python 3.8 [#7628](https://github.com/jupyter/notebook/pull/7628) ([@honnix](https://github.com/honnix))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-04-09&to=2025-05-07&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-04-09..2025-05-07&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-04-09..2025-05-07&type=Issues) | [@honnix](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ahonnix+updated%3A2025-04-09..2025-05-07&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-04-09..2025-05-07&type=Issues)

## 7.4

Jupyter Notebook 7.4 is based on JupyterLab 4.4, and includes a number of new features, bug fixes, and enhancements for extension developers. This release is compatible with extensions supporting JupyterLab 4.0. Extension authors are recommended to consult the [Extension Migration Guide](https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-4-3-to-4-4) which lists deprecations and changes to the public API.

Below are a few highlights for this new release. Most of the new features and improvements come from the update to JupyterLab 4.4, although they may not all be supported in Notebook 7.4.

For reference you may have a look at the [JupyterLab 4.4 changelog](https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-4) to learn more.

### Code console improvements

The code console prompt can now be positioned on the top, left, or right side of the console,
in addition to the default bottom placement. The placement is persisted in the Prompt Cell
Position setting.

The console toolbar now includes buttons to:
- Execute code
- Restart the kernel
- Clear the cells
- Switch the kernel

<img alt="The option to change console prompt position is available under the three dots button in the console toolbar, which is the last toolbar button" src="https://github.com/user-attachments/assets/11f5a82a-0dd2-439b-a520-d04c73363bfe" class="jp-screenshot">

Additional settings for console behavior have been added:
- Clear Code Content on Execute (enabled by default) – When disabled, the code submitted for execution remains in the code editor, allowing for further edits.
- Hide Code Input – When enabled, only the execution output is shown in the console.
- Clear Cells on Execute – When enabled, only the last cell is displayed.

Toggling all the three new settings transforms the console into an interactive editor
resembling an ephemeral notebook with a single cell.

<img alt="Toggling all the three new settings transforms the console into a single cell" src="https://github.com/user-attachments/assets/86eb1114-0d60-4379-a370-b538717fc74f" class="jp-screenshot">

### Settings import and export

Settings can now be exported to `overrides.json` from the Settings Editor,
which can be used to pre-configure defaults in deployments or to restore settings.

<img alt="The Import and Export buttons in the Settings Editor are the first two items in the toolbar panel" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.4-settings-import-export.png" class="jp-screenshot">

### Support for collaboration without `RTC:` drive

Real time collaboration in previous versions of JupyterLab and Jupyter Notebook
(which can be enabled by installing jupyter-collaboration package)
was implemented by swapping the default JupyterLab file system
drive to a collaborative drive with the `RTC:` prefix.
This approach was incompatible with multiple extensions.
JupyterLab 4.4 introduces the Content Providers API, which allows the next version of `jupyter-collaboration` to work without changing the drive prefix.
This improves compatibility with extensions that do not support arbitrary drives.

### Context menu opt-out

The context menu, available under right mouse click in browsers, can now be disabled globally
by toggling the `Enable Context Menu` option available in the Command Palette,
or via the JSON Settings Editor in the Application Context Menu.

## 7.4.0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.2...fbfe36574e04b16ed7ba9303c5e819330f402f87))

### Highlights ✨

To learn more about the highlights of the 7.4.0 release: https://jupyter-notebook.readthedocs.io/en/latest/changelog.html

### Enhancements made

- Update to JupyterLab v4.4.0rc1 [#7622](https://github.com/jupyter/notebook/pull/7622) ([@jtpio](https://github.com/jtpio))
- Add support for a `down` area [#7619](https://github.com/jupyter/notebook/pull/7619) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0rc0 [#7618](https://github.com/jupyter/notebook/pull/7618) ([@jtpio](https://github.com/jtpio))
- Support `ServiceManagerPlugin` [#7616](https://github.com/jupyter/notebook/pull/7616) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `v4.4.0b1` [#7607](https://github.com/jupyter/notebook/pull/7607) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0b0 [#7591](https://github.com/jupyter/notebook/pull/7591) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0a3 [#7577](https://github.com/jupyter/notebook/pull/7577) ([@jtpio](https://github.com/jtpio))
- Add active cell border padding, remove double cell padding [#7570](https://github.com/jupyter/notebook/pull/7570) ([@andrii-i](https://github.com/andrii-i))

### Bugs fixed

- Fix undefined error when checkpoints is empty [#7567](https://github.com/jupyter/notebook/pull/7567) ([@jdavid](https://github.com/jdavid))

### Maintenance and upkeep improvements

- Bump the actions group with 2 updates [#7626](https://github.com/jupyter/notebook/pull/7626) ([@dependabot](https://github.com/dependabot))
- Update to JupyterLab v4.4.0b2 [#7614](https://github.com/jupyter/notebook/pull/7614) ([@jtpio](https://github.com/jtpio))
- Add pixi step to the update workflow [#7608](https://github.com/jupyter/notebook/pull/7608) ([@jtpio](https://github.com/jtpio))
- Update `@babel` dependencies [#7605](https://github.com/jupyter/notebook/pull/7605) ([@jtpio](https://github.com/jtpio))
- Add devcontainer support, backed by pixi [#7602](https://github.com/jupyter/notebook/pull/7602) ([@jtpio](https://github.com/jtpio))
- Manual dependabot bumps [#7599](https://github.com/jupyter/notebook/pull/7599) ([@jtpio](https://github.com/jtpio))
- Bump vega-selections from 5.4.1 to 5.5.0 in /ui-tests [#7592](https://github.com/jupyter/notebook/pull/7592) ([@dependabot](https://github.com/dependabot))
- Improve handling of optional notebook tracker [#7581](https://github.com/jupyter/notebook/pull/7581) ([@jtpio](https://github.com/jtpio))
- Fix upgrade script [#7579](https://github.com/jupyter/notebook/pull/7579) ([@jtpio](https://github.com/jtpio))
- Allow owners/members/collab to trigger galata update on other's PR [#7572](https://github.com/jupyter/notebook/pull/7572) ([@krassowski](https://github.com/krassowski))
- Update `typescript` and `lerna` [#7562](https://github.com/jupyter/notebook/pull/7562) ([@jtpio](https://github.com/jtpio))
- Update pre-commit hooks [#7561](https://github.com/jupyter/notebook/pull/7561) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0a2 [#7559](https://github.com/jupyter/notebook/pull/7559) ([@jtpio](https://github.com/jtpio))
- Bump the actions group across 1 directory with 2 updates [#7558](https://github.com/jupyter/notebook/pull/7558) ([@dependabot](https://github.com/dependabot))
- Improve update script [#7556](https://github.com/jupyter/notebook/pull/7556) ([@jtpio](https://github.com/jtpio))
- Disable cron scheduling for now [#7555](https://github.com/jupyter/notebook/pull/7555) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0a1 [#7554](https://github.com/jupyter/notebook/pull/7554) ([@jtpio](https://github.com/jtpio))
- Update workflow improvements [#7552](https://github.com/jupyter/notebook/pull/7552) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- User facing changelog for 7.4 [#7612](https://github.com/jupyter/notebook/pull/7612) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-12-21&to=2025-04-09&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2024-12-21..2025-04-09&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2024-12-21..2025-04-09&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-12-21..2025-04-09&type=Issues) | [@jdavid](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajdavid+updated%3A2024-12-21..2025-04-09&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-12-21..2025-04-09&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-12-21..2025-04-09&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-12-21..2025-04-09&type=Issues)

## 7.4.0rc0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-beta.3...7fa19999c9e01d713a684e0f25d8017dbc999528))

### Enhancements made

- Update to JupyterLab v4.4.0rc1 [#7622](https://github.com/jupyter/notebook/pull/7622) ([@jtpio](https://github.com/jtpio))
- Add support for a `down` area [#7619](https://github.com/jupyter/notebook/pull/7619) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-03-26&to=2025-04-03&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-03-26..2025-04-03&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-03-26..2025-04-03&type=Issues)

## 7.4.0b3

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-beta.2...434221c0fe3de3df3b4b54ed1005712e07957352))

### Enhancements made

- Update to JupyterLab v4.4.0rc0 [#7618](https://github.com/jupyter/notebook/pull/7618) ([@jtpio](https://github.com/jtpio))
- Support `ServiceManagerPlugin` [#7616](https://github.com/jupyter/notebook/pull/7616) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-03-20&to=2025-03-26&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-03-20..2025-03-26&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-03-20..2025-03-26&type=Issues)

## 7.4.0b2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-beta.1...be2fd12f91a64796d9919ee8b8242f3093aac8a5))

### Maintenance and upkeep improvements

- Update to JupyterLab v4.4.0b2 [#7614](https://github.com/jupyter/notebook/pull/7614) ([@jtpio](https://github.com/jtpio))
- Add pixi step to the update workflow [#7608](https://github.com/jupyter/notebook/pull/7608) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- User facing changelog for 7.4 [#7612](https://github.com/jupyter/notebook/pull/7612) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-03-14&to=2025-03-20&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-03-14..2025-03-20&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-03-14..2025-03-20&type=Issues)

## 7.4.0b1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-beta.0...6d06d97302bd1bb77e25864214ade2277f2e50d4))

### Enhancements made

- Update to JupyterLab `v4.4.0b1` [#7607](https://github.com/jupyter/notebook/pull/7607) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update `@babel` dependencies [#7605](https://github.com/jupyter/notebook/pull/7605) ([@jtpio](https://github.com/jtpio))
- Add devcontainer support, backed by pixi [#7602](https://github.com/jupyter/notebook/pull/7602) ([@jtpio](https://github.com/jtpio))
- Manual dependabot bumps [#7599](https://github.com/jupyter/notebook/pull/7599) ([@jtpio](https://github.com/jtpio))
- Bump vega-selections from 5.4.1 to 5.5.0 in /ui-tests [#7592](https://github.com/jupyter/notebook/pull/7592) ([@dependabot](https://github.com/dependabot))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-02-20&to=2025-03-14&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2025-02-20..2025-03-14&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-02-20..2025-03-14&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-02-20..2025-03-14&type=Issues)

## 7.4.0b0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-alpha.3...48243197bbd004555008cd7cfa14c907147aceca))

### Enhancements made

- Update to JupyterLab v4.4.0b0 [#7591](https://github.com/jupyter/notebook/pull/7591) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-02-05&to=2025-02-20&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-02-05..2025-02-20&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-02-05..2025-02-20&type=Issues)

## 7.4.0a3

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-alpha.2...48e52c759ffec0cea47dfef59f48d8e9fa6112d3))

### Enhancements made

- Add active cell border padding, remove double cell padding [#7570](https://github.com/jupyter/notebook/pull/7570) ([@andrii-i](https://github.com/andrii-i))

### Maintenance and upkeep improvements

- Improve handling of optional notebook tracker [#7581](https://github.com/jupyter/notebook/pull/7581) ([@jtpio](https://github.com/jtpio))
- Fix upgrade script [#7579](https://github.com/jupyter/notebook/pull/7579) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-02-03&to=2025-02-05&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2025-02-03..2025-02-05&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-02-03..2025-02-05&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-02-03..2025-02-05&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-02-03..2025-02-05&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2025-02-03..2025-02-05&type=Issues)

## 7.4.0a2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-alpha.1...ef4f6346cd6b377ade271fcd61810b5d2a7d0f41))

### Enhancements made

- Update to JupyterLab v4.4.0a3 [#7577](https://github.com/jupyter/notebook/pull/7577) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix undefined error when checkpoints is empty [#7567](https://github.com/jupyter/notebook/pull/7567) ([@jdavid](https://github.com/jdavid))

### Maintenance and upkeep improvements

- Allow owners/members/collab to trigger galata update on other's PR [#7572](https://github.com/jupyter/notebook/pull/7572) ([@krassowski](https://github.com/krassowski))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2025-01-07&to=2025-02-03&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2025-01-07..2025-02-03&type=Issues) | [@jdavid](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajdavid+updated%3A2025-01-07..2025-02-03&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2025-01-07..2025-02-03&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2025-01-07..2025-02-03&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2025-01-07..2025-02-03&type=Issues)

## 7.4.0a1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.4.0-alpha.0...18672b7e85ec5181e4c5c18d2e32c3e9eab7260c))

### Maintenance and upkeep improvements

- Update `typescript` and `lerna` [#7562](https://github.com/jupyter/notebook/pull/7562) ([@jtpio](https://github.com/jtpio))
- Update pre-commit hooks [#7561](https://github.com/jupyter/notebook/pull/7561) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0a2 [#7559](https://github.com/jupyter/notebook/pull/7559) ([@jtpio](https://github.com/jtpio))
- Bump the actions group across 1 directory with 2 updates [#7558](https://github.com/jupyter/notebook/pull/7558) ([@dependabot](https://github.com/dependabot))
- Improve update script [#7556](https://github.com/jupyter/notebook/pull/7556) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-12-21&to=2025-01-07&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2024-12-21..2025-01-07&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-12-21..2025-01-07&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-12-21..2025-01-07&type=Issues)

## 7.4.0a0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.2...12efbe601858c317bf677dc835d314489357e20d))

### Maintenance and upkeep improvements

- Disable cron scheduling for now [#7555](https://github.com/jupyter/notebook/pull/7555) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab v4.4.0a1 [#7554](https://github.com/jupyter/notebook/pull/7554) ([@jtpio](https://github.com/jtpio))
- Update workflow improvements [#7552](https://github.com/jupyter/notebook/pull/7552) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-12-21&to=2024-12-21&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-12-21..2024-12-21&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-12-21..2024-12-21&type=Issues)

## 7.3

Jupyter Notebook 7.3 is based on JupyterLab 4.3, and includes a number of new features, bug fixes, and enhancements for extension developers. This release is compatible with extensions supporting JupyterLab 4.0. Extension authors are recommended to consult the [Extension Migration Guide](https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-4-2-to-4-3) which lists deprecations and changes to the public API.

Below are a few highlights for this new release. Most of the new features and improvements come from the update to JupyterLab 4.3, although they may not all be supported in Notebook 7.3.

For reference you may have a look at the [JupyterLab 4.3 changelog](https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-3) to learn more.

### Minimap

The virtual scrollbar now acts as a minimap and exposes information on whether a cell:

- is running/scheduled (`[*]`), idle (`[ ]`) or was already run (e.g. `[1]`)
- was modified since it was last executed (“dirty”) - orange background
- has an output that contains an error - red background
- is markdown/code (`[ ]`/`[*]`/`[1]` for code, nothing for markdown)
- how much text/code it contains

![a screenshot showing the notebook minimap](https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.3-minimap.png)

To enable the minimap, click on the hamburger icon (≡) which appears in the notebook’s toolbar. If you do not see the hamburger icon, go to `Settings → Notebook → Windowing mode` and choose “full”.

### File browser enhancements

The file browser now:

- supports resizing the columns and remembers the column sizes after reloading JupyterLab
- supports uploading folders by drag-and-drop
- supports navigation with a single click
- adds a file filter collapsed by default (funnel icon)

![a screenshot showing that it's now possible to resize the file browser columns](https://github.com/user-attachments/assets/b0d9cd0a-2828-43f7-a922-e8b271e5f7fc)

In Jupyter Notebook, the single click navigation is enabled by default. If you would like to disable it to get the same experience as in JupyterLab, go to `Settings → File Browser` and make sure "Navigate files and directories with single click" is unchecked.

### Improved kernel and server interactions

The previous release enabled connecting to external kernels, such as those spawned by a third-party application like Blender. In this release the kernel selector dialog was improved to also show the external kernels.

The previous release improved the awareness of the kernel/kernel specification distinction by providing both tree and list view in the kernels sidebar panel, but only the tree view featured the kernel identifiers. In this release both the list and tree view show the kernel identifier stub.

A new toolbar button was added in the kernel allowing to shut down unused kernels (kernels with no widget attached).

![a screenshot showing the list view of the kernels in the sidebar](https://github.com/user-attachments/assets/c7f958c5-4054-4b09-8fad-4df6db8c9b58)

### Full Width Notebook

It is now possible to configure the notebook to take up the full width of the page via:

- a setting that can be defined by a user via the Settings Editor
- the `View > Enable Full Width Notebook` menu entry
- the command palette, searching for `Enable Full Width Notebook`

![a screenshot showing how to enable full width notebook via the menu](https://github.com/user-attachments/assets/148b227a-874a-4bb3-a4c6-c7350525ccc4)

This is particularly useful on large displays, or for those who prefer working with a wider notebook.

It is also possible to use the JupyterLab interface for a more fully-featured experience, which allows for full-width notebooks too, and offers a "Simple Interface" mode for only showing a single notebook at a time.

You can open JupyterLab by clicking on `View > Open JupyterLab`.

## 7.3.2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.1...7959ba0de553e9c541d2716d76108a8bc0bc2d6c))

### Maintenance and upkeep improvements

- Fix update script [#7550](https://github.com/jupyter/notebook/pull/7550) ([@jtpio](https://github.com/jtpio))
- Fix workflow to update the JupyterLab version [#7548](https://github.com/jupyter/notebook/pull/7548) ([@jtpio](https://github.com/jtpio))
- Bump nanoid from 3.3.7 to 3.3.8 in /ui-tests [#7547](https://github.com/jupyter/notebook/pull/7547) ([@dependabot](https://github.com/dependabot))
- Bump systeminformation from 5.21.8 to 5.23.14 in /ui-tests [#7546](https://github.com/jupyter/notebook/pull/7546) ([@dependabot](https://github.com/dependabot))
- Workflow to update JupyterLab dependencies automatically [#7281](https://github.com/jupyter/notebook/pull/7281) ([@itsmevichu](https://github.com/itsmevichu))
- Update to JupyterLab v4.3.4 [#7551](https://github.com/jupyter/notebook/pull/7551) ([@github-actions](https://github.com/apps/github-actions))

### Documentation improvements

- Update chat links to Zulip. [#7539](https://github.com/jupyter/notebook/pull/7539) ([@ericsnekbytes](https://github.com/ericsnekbytes))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-12-04&to=2024-12-21&type=c))

[@Carreau](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ACarreau+updated%3A2024-12-04..2024-12-21&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2024-12-04..2024-12-21&type=Issues) | [@ericsnekbytes](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aericsnekbytes+updated%3A2024-12-04..2024-12-21&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-12-04..2024-12-21&type=Issues) | [@itsmevichu](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aitsmevichu+updated%3A2024-12-04..2024-12-21&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-12-04..2024-12-21&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-12-04..2024-12-21&type=Issues)

## 7.3.1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.0...21d0306ecef93ea23bf063bc1d8a0580450cd4df))

### Maintenance and upkeep improvements

- Adds jupyter-ui-toolkit packages in shared scope [#7530](https://github.com/jupyter/notebook/pull/7530) ([@brichet](https://github.com/brichet))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-12-04&to=2024-12-04&type=c))

[@brichet](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2024-12-04..2024-12-04&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-12-04..2024-12-04&type=Issues)

## 7.3.0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.0...b16eed26eff8e357eeccbef3f3434df77fb8ab48))

### Enhancements made

- Fix for auto scroll output option [#7511](https://github.com/jupyter/notebook/pull/7511) ([@gjmooney](https://github.com/gjmooney))
- Add a setting to enable the notebook to take up the full width [#7487](https://github.com/jupyter/notebook/pull/7487) ([@jtpio](https://github.com/jtpio))
- Add the file filter button to the file browser toolbar [#7479](https://github.com/jupyter/notebook/pull/7479) ([@jtpio](https://github.com/jtpio))
- Redirect paths from the notebooks route to the tree route if they are directories [#7446](https://github.com/jupyter/notebook/pull/7446) ([@andyscho](https://github.com/andyscho))
- Update to JupyterLab `4.3.0a1` [#7416](https://github.com/jupyter/notebook/pull/7416) ([@jtpio](https://github.com/jtpio))
- Support custom page_data_hook function [#7387](https://github.com/jupyter/notebook/pull/7387) ([@bluestealth](https://github.com/bluestealth))
- Add missing "Open..." file menu [#7385](https://github.com/jupyter/notebook/pull/7385) ([@martinRenou](https://github.com/martinRenou))
- Duplicate notebook menu option [#7374](https://github.com/jupyter/notebook/pull/7374) ([@JasonWeill](https://github.com/JasonWeill))

### Bugs fixed

- Move handling of the file browser settings to a separate plugin, enable file browser single click navigation [#7481](https://github.com/jupyter/notebook/pull/7481) ([@jtpio](https://github.com/jtpio))
- Remove pseudoelement obstructing the cell collapser [#7392](https://github.com/jupyter/notebook/pull/7392) ([@krassowski](https://github.com/krassowski))
- "Close and Shut Down Notebook" shuts down without the confirmation dialog [#7384](https://github.com/jupyter/notebook/pull/7384) ([@JasonWeill](https://github.com/JasonWeill))
- Adds message about building code before running 'develop' [#7382](https://github.com/jupyter/notebook/pull/7382) ([@JasonWeill](https://github.com/JasonWeill))

### Maintenance and upkeep improvements

- Bump Python version used on CI [#7528](https://github.com/jupyter/notebook/pull/7528) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.3.2 [#7527](https://github.com/jupyter/notebook/pull/7527) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.3.1 [#7521](https://github.com/jupyter/notebook/pull/7521) ([@jtpio](https://github.com/jtpio))
- Add webpack prod config [#7513](https://github.com/jupyter/notebook/pull/7513) ([@gjmooney](https://github.com/gjmooney))
- Update to JupyterLab 4.3 final [#7507](https://github.com/jupyter/notebook/pull/7507) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `4.3.0rc1` [#7497](https://github.com/jupyter/notebook/pull/7497) ([@jtpio](https://github.com/jtpio))
- Remove the `StateDB` file browser trick [#7477](https://github.com/jupyter/notebook/pull/7477) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `4.3.0rc0` [#7423](https://github.com/jupyter/notebook/pull/7423) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.3.0a0 [#7378](https://github.com/jupyter/notebook/pull/7378) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Fix link to the JupyterLab 4.3 changelog [#7529](https://github.com/jupyter/notebook/pull/7529) ([@jtpio](https://github.com/jtpio))
- Rename some header links to fit better [#7508](https://github.com/jupyter/notebook/pull/7508) ([@gjmooney](https://github.com/gjmooney))
- Add user facing changelog for `7.3.0` [#7494](https://github.com/jupyter/notebook/pull/7494) ([@jtpio](https://github.com/jtpio))
- Fix typos [#7472](https://github.com/jupyter/notebook/pull/7472) ([@algonell](https://github.com/algonell))
- Adds message about building code before running 'develop' [#7382](https://github.com/jupyter/notebook/pull/7382) ([@JasonWeill](https://github.com/JasonWeill))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-05-16&to=2024-12-04&type=c))

[@algonell](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aalgonell+updated%3A2024-05-16..2024-12-04&type=Issues) | [@andyscho](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandyscho+updated%3A2024-05-16..2024-12-04&type=Issues) | [@bluestealth](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abluestealth+updated%3A2024-05-16..2024-12-04&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-05-16..2024-12-04&type=Issues) | [@gjmooney](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agjmooney+updated%3A2024-05-16..2024-12-04&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AJasonWeill+updated%3A2024-05-16..2024-12-04&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-05-16..2024-12-04&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-05-16..2024-12-04&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AmartinRenou+updated%3A2024-05-16..2024-12-04&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-05-16..2024-12-04&type=Issues)

## 7.3.0rc0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.0-beta.2...b34449747a84fe0ba7951ae0fa8f2bb011444a60))

### Maintenance and upkeep improvements

- Update to JupyterLab 4.3.1 [#7521](https://github.com/jupyter/notebook/pull/7521) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-11-06&to=2024-11-18&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-11-06..2024-11-18&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-11-06..2024-11-18&type=Issues)

## 7.3.0b2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.0-beta.1...110e728e4a239ffc7217bd07b9a50cf4eff0dff5))

### Enhancements made

- Fix for auto scroll output option [#7511](https://github.com/jupyter/notebook/pull/7511) ([@gjmooney](https://github.com/gjmooney))

### Maintenance and upkeep improvements

- Add webpack prod config [#7513](https://github.com/jupyter/notebook/pull/7513) ([@gjmooney](https://github.com/gjmooney))
- Update to JupyterLab 4.3 final [#7507](https://github.com/jupyter/notebook/pull/7507) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Rename some header links to fit better [#7508](https://github.com/jupyter/notebook/pull/7508) ([@gjmooney](https://github.com/gjmooney))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-10-24&to=2024-11-06&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-10-24..2024-11-06&type=Issues) | [@gjmooney](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agjmooney+updated%3A2024-10-24..2024-11-06&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-10-24..2024-11-06&type=Issues)

## 7.3.0b1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.0-beta.0...f614f7c6387cc7da82e0307b70e10593b2cd6bff))

### Enhancements made

- Add a setting to enable the notebook to take up the full width [#7487](https://github.com/jupyter/notebook/pull/7487) ([@jtpio](https://github.com/jtpio))
- Add the file filter button to the file browser toolbar [#7479](https://github.com/jupyter/notebook/pull/7479) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Move handling of the file browser settings to a separate plugin, enable file browser single click navigation [#7481](https://github.com/jupyter/notebook/pull/7481) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update to JupyterLab `4.3.0rc1` [#7497](https://github.com/jupyter/notebook/pull/7497) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Add user facing changelog for `7.3.0` [#7494](https://github.com/jupyter/notebook/pull/7494) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-10-15&to=2024-10-24&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-10-15..2024-10-24&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-10-15..2024-10-24&type=Issues)

## 7.3.0b0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.0-alpha.1...fec4431305b2fd857ff81b7b60c2894dd125bec2))

### Enhancements made

- Redirect paths from the notebooks route to the tree route if they are directories [#7446](https://github.com/jupyter/notebook/pull/7446) ([@andyscho](https://github.com/andyscho))

### Maintenance and upkeep improvements

- Remove the `StateDB` file browser trick [#7477](https://github.com/jupyter/notebook/pull/7477) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `4.3.0rc0` [#7423](https://github.com/jupyter/notebook/pull/7423) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Fix typos [#7472](https://github.com/jupyter/notebook/pull/7472) ([@algonell](https://github.com/algonell))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-07-01&to=2024-10-15&type=c))

[@algonell](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aalgonell+updated%3A2024-07-01..2024-10-15&type=Issues) | [@andyscho](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandyscho+updated%3A2024-07-01..2024-10-15&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-07-01..2024-10-15&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-07-01..2024-10-15&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-07-01..2024-10-15&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-07-01..2024-10-15&type=Issues)

## 7.3.0a1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.3.0-alpha.0...ff2b822d066dc8d733a259f955177da4bd4d668c))

### Enhancements made

- Update to JupyterLab `4.3.0a1` [#7416](https://github.com/jupyter/notebook/pull/7416) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Remove pseudoelement obstructing the cell collapser [#7392](https://github.com/jupyter/notebook/pull/7392) ([@krassowski](https://github.com/krassowski))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-05-31&to=2024-07-01&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-05-31..2024-07-01&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-05-31..2024-07-01&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-05-31..2024-07-01&type=Issues)

## 7.3.0a0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.0...1a03b9d8e502f8177684e39d7b627bed1c772bb2))

### Enhancements made

- Support custom page_data_hook function [#7387](https://github.com/jupyter/notebook/pull/7387) ([@bluestealth](https://github.com/bluestealth))
- Add missing "Open..." file menu [#7385](https://github.com/jupyter/notebook/pull/7385) ([@martinRenou](https://github.com/martinRenou))
- Duplicate notebook menu option [#7374](https://github.com/jupyter/notebook/pull/7374) ([@JasonWeill](https://github.com/JasonWeill))

### Bugs fixed

- "Close and Shut Down Notebook" shuts down without the confirmation dialog [#7384](https://github.com/jupyter/notebook/pull/7384) ([@JasonWeill](https://github.com/JasonWeill))
- Adds message about building code before running 'develop' [#7382](https://github.com/jupyter/notebook/pull/7382) ([@JasonWeill](https://github.com/JasonWeill))

### Maintenance and upkeep improvements

- Update to JupyterLab 4.3.0a0 [#7378](https://github.com/jupyter/notebook/pull/7378) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Adds message about building code before running 'develop' [#7382](https://github.com/jupyter/notebook/pull/7382) ([@JasonWeill](https://github.com/JasonWeill))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-05-16&to=2024-05-31&type=c))

[@bluestealth](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abluestealth+updated%3A2024-05-16..2024-05-31&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-05-16..2024-05-31&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AJasonWeill+updated%3A2024-05-16..2024-05-31&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-05-16..2024-05-31&type=Issues) | [@martinRenou](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AmartinRenou+updated%3A2024-05-16..2024-05-31&type=Issues)

## 7.2

Jupyter Notebook 7.2 is based on JupyterLab 4.2, and includes a number of new features, bug fixes, and enhancements for extension developers. This release is compatible with extensions supporting JupyterLab 4.0. Extension authors are recommended to consult the [Extension Migration Guide](https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-4-0-to-4-1) which lists deprecations and changes to the public API.

Below are a few highlights for this new release. Most of the new features and improvements come from the update to JupyterLab 4.2, although they are not all supported in Notebook 7.2.

For reference you may have a look at the JupyterLab 4.2 changelog to learn more: https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-2

### Full notebook windowing mode by default

Notebooks in the `full` windowing mode only render the visible cells, significantly improving the performance of the application. One limitation of `full` mode is that the search function in your browser may produce false negatives; using the search function is recommended. To revert to the behaviour from Notebook 7.2, go to Settings → Settings Editor → Notebook, scroll to “Windowing mode”, and choose `defer`.

### Improved Shortcuts Editor

Among the numerous improvements and bug fixes for the keyboard shortcuts editor:

- it is now possible to remove the default shortcuts,
- shortcuts are correctly sorted when using a language pack,
- shortcuts with different arguments are now correctly displayed as individual entries.

<img alt="A context menu opened over a keybinding in the Keyboard Shortcuts setting panel within the Settings widget" class="jp-screenshot" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.2-delete-shortcut.png">

### Dark high contrast theme

A new theme, JupyterLab Dark High Contrast, which is intended to benefit users with the need for higher contrast, following the WCAG AAA accessibility standard for color contrast. To select this theme, from the menu bar, choose Settings → Theme → JupyterLab Dark High Contrast. Please provide feedback and suggestions on further improvements to this theme.

<img alt="A dark high contrast theme" class="jp-screenshot" src="https://github.com/jupyter/notebook/assets/591645/9a1678fe-9b4d-41ad-8764-75fdc7c84071">

## 7.2.0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.2...31bf294e85175bbf39816a90dc8858dedaf73bde))

### Enhancements made

- Update to JupyterLab 4.2.0 [#7357](https://github.com/jupyter/notebook/pull/7357) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.2.0rc0 [#7333](https://github.com/jupyter/notebook/pull/7333) ([@jtpio](https://github.com/jtpio))
- Add `@jupyterlab/theme-dark-high-contrast-extension` [#7331](https://github.com/jupyter/notebook/pull/7331) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.2.0a2 [#7307](https://github.com/jupyter/notebook/pull/7307) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Add the `@jupyterlab/notebook-extension:copy-output` plugin [#7353](https://github.com/jupyter/notebook/pull/7353) ([@jtpio](https://github.com/jtpio))
- Fix CSS for `full` windowing mode [#7337](https://github.com/jupyter/notebook/pull/7337) ([@jtpio](https://github.com/jtpio))
- Force notebook windowing mode to `defer` [#7335](https://github.com/jupyter/notebook/pull/7335) ([@jtpio](https://github.com/jtpio))
- Fix scrollbar always showing up by default [#7327](https://github.com/jupyter/notebook/pull/7327) ([@jtpio](https://github.com/jtpio))
- Default to the `full` windowing mode [#7321](https://github.com/jupyter/notebook/pull/7321) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Fix emoji in create issue screen [#7363](https://github.com/jupyter/notebook/pull/7363) ([@JasonWeill](https://github.com/JasonWeill))
- Update `@jupyterlab/galata` [#7361](https://github.com/jupyter/notebook/pull/7361) ([@jtpio](https://github.com/jtpio))
- Pin on `macos-12` on CI for now [#7346](https://github.com/jupyter/notebook/pull/7346) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `4.2.0b1` [#7319](https://github.com/jupyter/notebook/pull/7319) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.2.0b0 [#7312](https://github.com/jupyter/notebook/pull/7312) ([@jtpio](https://github.com/jtpio))
- Ignore links to GitHub user and organisation profiles [#7308](https://github.com/jupyter/notebook/pull/7308) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Add user facing changelog for 7.2 [#7372](https://github.com/jupyter/notebook/pull/7372) ([@jtpio](https://github.com/jtpio))
- Fix emoji in create issue screen [#7363](https://github.com/jupyter/notebook/pull/7363) ([@JasonWeill](https://github.com/JasonWeill))
- update RISE extension installation instructions [#7299](https://github.com/jupyter/notebook/pull/7299) ([@afeld](https://github.com/afeld))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-03-14&to=2024-05-16&type=c))

[@afeld](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aafeld+updated%3A2024-03-14..2024-05-16&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-03-14..2024-05-16&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AJasonWeill+updated%3A2024-03-14..2024-05-16&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-03-14..2024-05-16&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-03-14..2024-05-16&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-03-14..2024-05-16&type=Issues) | [@takluyver](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Atakluyver+updated%3A2024-03-14..2024-05-16&type=Issues)

## 7.2.0rc1

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.2.0rc0...f5d8aea3bdc3eea25213792f9d101738f2a1f627))

### Enhancements made

- Update to JupyterLab 4.2.0 [#7357](https://github.com/jupyter/notebook/pull/7357) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Add the `@jupyterlab/notebook-extension:copy-output` plugin [#7353](https://github.com/jupyter/notebook/pull/7353) ([@jtpio](https://github.com/jtpio))
- Default to the `full` windowing mode [#7321](https://github.com/jupyter/notebook/pull/7321) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- update RISE extension installation instructions [#7299](https://github.com/jupyter/notebook/pull/7299) ([@afeld](https://github.com/afeld))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-05-01&to=2024-05-13&type=c))

[@afeld](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aafeld+updated%3A2024-05-01..2024-05-13&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-05-01..2024-05-13&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-05-01..2024-05-13&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-05-01..2024-05-13&type=Issues) | [@takluyver](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Atakluyver+updated%3A2024-05-01..2024-05-13&type=Issues)

## 7.2.0rc0

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.2.0b1...49ddd0fe1e4d4bfa24f74042f2232c5b91d1c36e))

### Enhancements made

- Update to JupyterLab 4.2.0rc0 [#7333](https://github.com/jupyter/notebook/pull/7333) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix CSS for `full` windowing mode [#7337](https://github.com/jupyter/notebook/pull/7337) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Pin on `macos-12` on CI for now [#7346](https://github.com/jupyter/notebook/pull/7346) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-04-19&to=2024-05-01&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-04-19..2024-05-01&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-04-19..2024-05-01&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-04-19..2024-05-01&type=Issues)

## 7.2.0b1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.0-beta.0...b45d666d5ee1ee053b55ac9cb6e9aecde5d53945))

### Enhancements made

- Add `@jupyterlab/theme-dark-high-contrast-extension` [#7331](https://github.com/jupyter/notebook/pull/7331) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Force notebook windowing mode to `defer` [#7335](https://github.com/jupyter/notebook/pull/7335) ([@jtpio](https://github.com/jtpio))
- Fix scrollbar always showing up by default [#7327](https://github.com/jupyter/notebook/pull/7327) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-04-12&to=2024-04-19&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-04-12..2024-04-19&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-04-12..2024-04-19&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-04-12..2024-04-19&type=Issues)

## 7.2.0b0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.0-alpha.0...09bcd99e6dfffce92acc9a7f9d11a2a2122131c0))

### Maintenance and upkeep improvements

- Update to JupyterLab `4.2.0b1` [#7319](https://github.com/jupyter/notebook/pull/7319) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.2.0b0 [#7312](https://github.com/jupyter/notebook/pull/7312) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-03-29&to=2024-04-12&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-03-29..2024-04-12&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-03-29..2024-04-12&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-03-29..2024-04-12&type=Issues)

## 7.2.0a0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.2...80b582bce69e33e36e936af2ea981bcb22a4d285))

### Enhancements made

- Update to JupyterLab 4.2.0a2 [#7307](https://github.com/jupyter/notebook/pull/7307) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Ignore links to GitHub user and organisation profiles [#7308](https://github.com/jupyter/notebook/pull/7308) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-03-14&to=2024-03-29&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-03-14..2024-03-29&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-03-14..2024-03-29&type=Issues)

## v7.1

Jupyter Notebook 7.1 is based on JupyterLab 4.1, and includes a number of new features, bug fixes, and enhancements for extension developers. This release is compatible with extensions supporting JupyterLab 4.0. Extension authors are recommended to consult the [Extension Migration Guide](https://jupyterlab.readthedocs.io/en/latest/extension/extension_migration.html#jupyterlab-4-0-to-4-1) which lists deprecations and changes to the public API.

Below are a few highlights for this new release. Most of the new features and improvements come from the update to JupyterLab 4.1, although they are not all supported in Notebook 7.1.

For reference you may have a look at the JupyterLab 4.1 changelog to learn more: https://jupyterlab.readthedocs.io/en/latest/getting_started/changelog.html#v4-1

### Diagrams in Markdown

Matching GitHub-Flavoured Markdown, JupyterLab 4.1 now supports [Mermaid](https://github.com/mermaid-js/mermaid) diagrams.
To create a mermaid diagram use the `mermaid` language specifier for a code block in a markdown cell or document, for example:

~~~
```mermaid
flowchart LR

A[Hard] -->|Text| B(Round)
B --> C{Decision}
C -->|One| D[Result 1]
C -->|Two| E[Result 2]
```
~~~

which renders as:

<img alt="Rendered Mermaid diagram going from left to right with modern look; the diagram contains blueish square node with text Hard pointing to round square node with text Round; over the arrow connecting the two nodes there is a word Text; the second node further connects to a rhombus-shaped node with text Decision which then connects to two further nodes, Result 1 and Result 2." src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.1-merimad-diagram.png" class="jp-screenshot">

### Inline completer

JupyterLab now supports completion presented as ghost text in the cell and file editors,
allowing generative AI models to provide multi-line completions. This can now also be leveraged in Jupyter Notebook.

The suggestions are provided by plugins implementing the ``IInlineCompletionProvider`` API;
by default a single provider which uses kernel history is available.

<img alt="In a code cell with `def fac` content a ghost text containing a suggestion representing further code of factorial function is shown; over the code cell there is a floating widget allowing to accept the suggestion and iterate between alternative suggestions" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.1-inline-completer.png" class="jp-screenshot">

The suggestions can be invoked as-you-type or manually using a configurable shortcut (by default <kbd>Alt</kbd> + <kbd>\\</kbd>).
The default keyboard shortcuts are displayed in the small widget shown when hovering over the ghost suggestion:
- <kbd>Alt</kbd> + <kbd>End</kbd> - accept suggestion
- <kbd>Alt</kbd> + <kbd>[</kbd> - previous suggestion
- <kbd>Alt</kbd> + <kbd>]</kbd> - next suggestion

To enable the inline suggestions based on the kernel history, go to Settings → Inline Completer → History provider → check the "enabled" checkbox.

In addition to the built-in history suggestions,
the [`jupyter-ai`](https://github.com/jupyterlab/jupyter-ai) extension will provide
suggestions from supported models.

Note that the Jupyter AI extension is not yet compatible with Jupyter Notebook 7.

### Keyboard navigation improvements

Numerous improvements to keyboard navigation with focus on accessibility and usability are included in this release:
- the notebook cells now retain focus
- the focus can now be moved beyond the active notebook
- the toolbars can now be navigated using arrow keys

For more details, see [this post on Jupyter Blog](https://blog.jupyter.org/recent-keyboard-navigation-improvements-in-jupyter-4df32f97628d).

### Execution history in notebook

The code from previously executed cells can be used to populate empty cells,
allowing to iterate on code from previous cells or even sessions
(depending on how a specific kernel stores history).

To cycle between history items press <kbd>Alt</kbd> + <kbd>Arrow Up</kbd> and  <kbd>Alt</kbd> + <kbd>Arrow Down</kbd>.

To enable execution history, go to Settings → Notebook → check the "Kernel history access" checkbox.

This feature was already available in the console in previous releases; it only works with kernels supporting execution history requests.
To clear the execution history consult the documentation of the kernel you are using (e.g., IPython/ipykernel).

### Error indicator in the table of contents

When a cell fails during execution, an error indicator will be displayed by the corresponding heading,
increasing awareness of the notebook state and enabling users to quickly navigate to the cell which requires attention.

<img alt="Error indicator in the shape of a triangle with exclamation sign (using ⚠ UTF character) shown next to one of the headings in the table of contents panel" src="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/docs/source/getting_started/changelog_assets/4.1-toc-error-indicator.png" class="jp-screenshot">

### Search improvements

- The search box will now grow automatically to accommodate longer text
- Search in selection can now be toggled using <kbd>Alt</kbd> + <kbd>L</kbd> and automatic search in selection can be configured in settings
- Tooltips with shortcuts were added to the buttons in the search box to improve discoverability of the shortcuts

### Miscellaneous

- The current theme (dark/light) can now be synced with the browser/system preference (Settings menu → Theme → Synchronise with System Settings)
- A blue "read-only" status indicator is now  displayed in the toolbar of documents which cannot be saved because their model is read-only.
- Native support for viewing jsonl/ndjson files was added
- Collapsing of breadcrumbs in the File Browser can be disabled in File Browser settings

## 7.1.2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.1...ca41222a9c8d75356c6d67d3bd36e34d71cce2d8))

### Maintenance and upkeep improvements

- Update Release Scripts [#7295](https://github.com/jupyter/notebook/pull/7295) ([@blink1073](https://github.com/blink1073))
- Fix jupyterlab install command in the releaser hook [#7294](https://github.com/jupyter/notebook/pull/7294) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.5 packages [#7291](https://github.com/jupyter/notebook/pull/7291) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Add a section to use local dependencies [#7292](https://github.com/jupyter/notebook/pull/7292) ([@brichet](https://github.com/brichet))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-02-26&to=2024-03-14&type=c))

[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2024-02-26..2024-03-14&type=Issues) | [@brichet](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2024-02-26..2024-03-14&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-02-26..2024-03-14&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-02-26..2024-03-14&type=Issues)

## 7.1.1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.0...da7b8d400e96ceff0eec834badd891bc5d5f154d))

### Bugs fixed

- Grayout "Edit Notebook Metadata" for other file formats.  [#7265](https://github.com/jupyter/notebook/pull/7265) ([@itsmevichu](https://github.com/itsmevichu))

### Maintenance and upkeep improvements

- Fix flaky mobile UI tests [#7278](https://github.com/jupyter/notebook/pull/7278) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.2 packages [#7277](https://github.com/jupyter/notebook/pull/7277) ([@jtpio](https://github.com/jtpio))
- Ignore stackoverflow link [#7274](https://github.com/jupyter/notebook/pull/7274) ([@jtpio](https://github.com/jtpio))
- Expose `version_info` [#7273](https://github.com/jupyter/notebook/pull/7273) ([@jtpio](https://github.com/jtpio))
- Bump ip from 2.0.0 to 2.0.1 in /ui-tests [#7268](https://github.com/jupyter/notebook/pull/7268) ([@dependabot](https://github.com/dependabot))
- Bump ip from 2.0.0 to 2.0.1 [#7267](https://github.com/jupyter/notebook/pull/7267) ([@dependabot](https://github.com/dependabot))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-02-13&to=2024-02-26&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2024-02-13..2024-02-26&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-02-13..2024-02-26&type=Issues) | [@itsmevichu](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aitsmevichu+updated%3A2024-02-13..2024-02-26&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-02-13..2024-02-26&type=Issues)

## 7.1.0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.0.6...b8ec7e4a8eda70a8d7dca19799acd3e96e019160))

### Enhancements made

- Create a new notebook with a specific kernel from the new dropdown [#7255](https://github.com/jupyter/notebook/pull/7255) ([@jtpio](https://github.com/jtpio))
- Add the plugin manager [#7198](https://github.com/jupyter/notebook/pull/7198) ([@jtpio](https://github.com/jtpio))
- Fix toggle functionality for widgets. [#7178](https://github.com/jupyter/notebook/pull/7178) ([@haok1402](https://github.com/haok1402))
- Bump to JupyterLab 4.1.0a4 bis [#7172](https://github.com/jupyter/notebook/pull/7172) ([@brichet](https://github.com/brichet))
- Update to JupyterLab `4.1.0a3` [#7161](https://github.com/jupyter/notebook/pull/7161) ([@jtpio](https://github.com/jtpio))
- Added Lumino Plugin Description (#7008) [#7127](https://github.com/jupyter/notebook/pull/7127) ([@Dilip-Jain](https://github.com/Dilip-Jain))
- Added Edit Notebook Metadata Option (#6402) [#7099](https://github.com/jupyter/notebook/pull/7099) ([@Dilip-Jain](https://github.com/Dilip-Jain))
- Update to JupyterLab 4.1 [#7096](https://github.com/jupyter/notebook/pull/7096) ([@jtpio](https://github.com/jtpio))
- Add the JupyterLab resources plugin [#6968](https://github.com/jupyter/notebook/pull/6968) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix spurious kernel selection dialog on notebook creation [#7258](https://github.com/jupyter/notebook/pull/7258) ([@jtpio](https://github.com/jtpio))
- Workaround for the file browser tracker focus issue [#7224](https://github.com/jupyter/notebook/pull/7224) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update to JupyterLab 4.1.1 [#7256](https://github.com/jupyter/notebook/pull/7256) ([@jtpio](https://github.com/jtpio))
- Follow JupyterLab minor versions [#7250](https://github.com/jupyter/notebook/pull/7250) ([@jtpio](https://github.com/jtpio))
- chore: update pre-commit hooks [#7237](https://github.com/jupyter/notebook/pull/7237) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Update to JupyterLab 4.1.0 final [#7234](https://github.com/jupyter/notebook/pull/7234) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0rc1 [#7230](https://github.com/jupyter/notebook/pull/7230) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0rc0 [#7227](https://github.com/jupyter/notebook/pull/7227) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0b2 [#7222](https://github.com/jupyter/notebook/pull/7222) ([@jtpio](https://github.com/jtpio))
- Fix `check_links` on CI [#7219](https://github.com/jupyter/notebook/pull/7219) ([@jtpio](https://github.com/jtpio))
- Bump the actions group with 1 update [#7218](https://github.com/jupyter/notebook/pull/7218) ([@dependabot](https://github.com/dependabot))
- Bump the actions group with 2 updates [#7207](https://github.com/jupyter/notebook/pull/7207) ([@dependabot](https://github.com/dependabot))
- chore: update pre-commit hooks [#7206](https://github.com/jupyter/notebook/pull/7206) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Add nbviewer.jupyter.org to the ignore list [#7197](https://github.com/jupyter/notebook/pull/7197) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0b0 [#7196](https://github.com/jupyter/notebook/pull/7196) ([@jtpio](https://github.com/jtpio))
- Update ruff config [#7190](https://github.com/jupyter/notebook/pull/7190) ([@blink1073](https://github.com/blink1073))
- Bump @babel/traverse from 7.23.0 to 7.23.6 [#7187](https://github.com/jupyter/notebook/pull/7187) ([@dependabot](https://github.com/dependabot))
- Bump actions/setup-python from 4 to 5 [#7180](https://github.com/jupyter/notebook/pull/7180) ([@dependabot](https://github.com/dependabot))
- Update publish-release workflow for PyPI trusted publisher [#7176](https://github.com/jupyter/notebook/pull/7176) ([@jtpio](https://github.com/jtpio))
- chore: update pre-commit hooks [#7174](https://github.com/jupyter/notebook/pull/7174) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Update `yarn.lock` [#7170](https://github.com/jupyter/notebook/pull/7170) ([@jtpio](https://github.com/jtpio))
- Bump axios from 1.5.1 to 1.6.2 [#7165](https://github.com/jupyter/notebook/pull/7165) ([@dependabot](https://github.com/dependabot))
- Bump dessant/lock-threads from 4 to 5 [#7159](https://github.com/jupyter/notebook/pull/7159) ([@dependabot](https://github.com/dependabot))
- Update ruff config and typing [#7145](https://github.com/jupyter/notebook/pull/7145) ([@blink1073](https://github.com/blink1073))
- chore: update pre-commit hooks [#7143](https://github.com/jupyter/notebook/pull/7143) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Clean up lint handling [#7142](https://github.com/jupyter/notebook/pull/7142) ([@blink1073](https://github.com/blink1073))
- Adopt ruff format [#7132](https://github.com/jupyter/notebook/pull/7132) ([@blink1073](https://github.com/blink1073))
- Fix python bumping to `minor` [#7131](https://github.com/jupyter/notebook/pull/7131) ([@jtpio](https://github.com/jtpio))
- Add Python 3.12 classifier [#7111](https://github.com/jupyter/notebook/pull/7111) ([@jtpio](https://github.com/jtpio))
- Remove viewport workaround in the UI tests [#6887](https://github.com/jupyter/notebook/pull/6887) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Add documentation for updating `notebook` imports [#7244](https://github.com/jupyter/notebook/pull/7244) ([@jtpio](https://github.com/jtpio))
- Fix link in `CONTRIBUTING.md` [#7235](https://github.com/jupyter/notebook/pull/7235) ([@jtpio](https://github.com/jtpio))
- Add user facing changelog for 7.1 [#7232](https://github.com/jupyter/notebook/pull/7232) ([@jtpio](https://github.com/jtpio))
- Clarify README about supported versions (post v7 release) [#7193](https://github.com/jupyter/notebook/pull/7193) ([@akx](https://github.com/akx))
- Set `navigation_with_keys` to `False` [#7129](https://github.com/jupyter/notebook/pull/7129) ([@jtpio](https://github.com/jtpio))
- Updated ui-tests Configuration in Contributing.md [#7124](https://github.com/jupyter/notebook/pull/7124) ([@jayeshsingh9767](https://github.com/jayeshsingh9767))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-10-17&to=2024-02-13&type=c))

[@akx](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aakx+updated%3A2023-10-17..2024-02-13&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2023-10-17..2024-02-13&type=Issues) | [@brichet](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2023-10-17..2024-02-13&type=Issues) | [@d5423197](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ad5423197+updated%3A2023-10-17..2024-02-13&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-10-17..2024-02-13&type=Issues) | [@Dilip-Jain](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ADilip-Jain+updated%3A2023-10-17..2024-02-13&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-10-17..2024-02-13&type=Issues) | [@haok1402](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ahaok1402+updated%3A2023-10-17..2024-02-13&type=Issues) | [@jayeshsingh9767](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajayeshsingh9767+updated%3A2023-10-17..2024-02-13&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-10-17..2024-02-13&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2023-10-17..2024-02-13&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-10-17..2024-02-13&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AZsailer+updated%3A2023-10-17..2024-02-13&type=Issues)

## 7.1.0rc1

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.1.0rc0...376a2f97c883e6e91f321d0a676e1ee9ff3b8d87))

### Maintenance and upkeep improvements

- Follow JupyterLab minor versions [#7250](https://github.com/jupyter/notebook/pull/7250) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Add documentation for updating `notebook` imports [#7244](https://github.com/jupyter/notebook/pull/7244) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-02-07&to=2024-02-09&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-02-07..2024-02-09&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-02-07..2024-02-09&type=Issues)

## 7.1.0rc0

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.1.0b0...2d717f5896a1d4310baa2499c7e6197d1914201d))

### Enhancements made

- Added Edit Notebook Metadata Option (#6402) [#7099](https://github.com/jupyter/notebook/pull/7099) ([@Dilip-Jain](https://github.com/Dilip-Jain))

### Maintenance and upkeep improvements

- chore: update pre-commit hooks [#7237](https://github.com/jupyter/notebook/pull/7237) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Update to JupyterLab 4.1.0 final [#7234](https://github.com/jupyter/notebook/pull/7234) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0rc1 [#7230](https://github.com/jupyter/notebook/pull/7230) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0rc0 [#7227](https://github.com/jupyter/notebook/pull/7227) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Fix link in `CONTRIBUTING.md` [#7235](https://github.com/jupyter/notebook/pull/7235) ([@jtpio](https://github.com/jtpio))
- Add user facing changelog for 7.1 [#7232](https://github.com/jupyter/notebook/pull/7232) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2024-01-26&to=2024-02-07&type=c))

[@Dilip-Jain](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ADilip-Jain+updated%3A2024-01-26..2024-02-07&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-01-26..2024-02-07&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-01-26..2024-02-07&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2024-01-26..2024-02-07&type=Issues)

## 7.1.0b0

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.1.0a2...5d265b90ed5f097af4ca22d283ecdc705229ff92))

### Bugs fixed

- Workaround for the file browser tracker focus issue [#7224](https://github.com/jupyter/notebook/pull/7224) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update to JupyterLab 4.1.0b2 [#7222](https://github.com/jupyter/notebook/pull/7222) ([@jtpio](https://github.com/jtpio))
- Fix `check_links` on CI [#7219](https://github.com/jupyter/notebook/pull/7219) ([@jtpio](https://github.com/jtpio))
- Bump the actions group with 1 update [#7218](https://github.com/jupyter/notebook/pull/7218) ([@dependabot](https://github.com/dependabot))
- Bump the actions group with 2 updates [#7207](https://github.com/jupyter/notebook/pull/7207) ([@dependabot](https://github.com/dependabot))
- chore: update pre-commit hooks [#7206](https://github.com/jupyter/notebook/pull/7206) ([@pre-commit-ci](https://github.com/pre-commit-ci))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-12-27&to=2024-01-26&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-12-27..2024-01-26&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-12-27..2024-01-26&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-12-27..2024-01-26&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-12-27..2024-01-26&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AZsailer+updated%3A2023-12-27..2024-01-26&type=Issues)

## 7.1.0a2

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.1.0a1...251e0e360603b6e63b280b3bd04a5406f7da28da))

### Enhancements made

- Add the plugin manager [#7198](https://github.com/jupyter/notebook/pull/7198) ([@jtpio](https://github.com/jtpio))
- Fix toggle functionality for widgets. [#7178](https://github.com/jupyter/notebook/pull/7178) ([@haok1402](https://github.com/haok1402))

### Maintenance and upkeep improvements

- Add nbviewer.jupyter.org to the ignore list [#7197](https://github.com/jupyter/notebook/pull/7197) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.1.0b0 [#7196](https://github.com/jupyter/notebook/pull/7196) ([@jtpio](https://github.com/jtpio))
- Update ruff config [#7190](https://github.com/jupyter/notebook/pull/7190) ([@blink1073](https://github.com/blink1073))
- Bump @babel/traverse from 7.23.0 to 7.23.6 [#7187](https://github.com/jupyter/notebook/pull/7187) ([@dependabot](https://github.com/dependabot))
- Bump actions/setup-python from 4 to 5 [#7180](https://github.com/jupyter/notebook/pull/7180) ([@dependabot](https://github.com/dependabot))
- Update publish-release workflow for PyPI trusted publisher [#7176](https://github.com/jupyter/notebook/pull/7176) ([@jtpio](https://github.com/jtpio))
- chore: update pre-commit hooks [#7174](https://github.com/jupyter/notebook/pull/7174) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Remove viewport workaround in the UI tests [#6887](https://github.com/jupyter/notebook/pull/6887) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Clarify README about supported versions (post v7 release) [#7193](https://github.com/jupyter/notebook/pull/7193) ([@akx](https://github.com/akx))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-12-04&to=2023-12-27&type=c))

[@akx](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aakx+updated%3A2023-12-04..2023-12-27&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2023-12-04..2023-12-27&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-12-04..2023-12-27&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-12-04..2023-12-27&type=Issues) | [@haok1402](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ahaok1402+updated%3A2023-12-04..2023-12-27&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-12-04..2023-12-27&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-12-04..2023-12-27&type=Issues)

## 7.1.0a1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.0-alpha.0...a74cd91871fcc6037d384fe59af8986557e783e5))

### Enhancements made

- Bump to JupyterLab 4.1.0a4 bis [#7172](https://github.com/jupyter/notebook/pull/7172) ([@brichet](https://github.com/brichet))
- Update to JupyterLab `4.1.0a3` [#7161](https://github.com/jupyter/notebook/pull/7161) ([@jtpio](https://github.com/jtpio))
- Add the JupyterLab resources plugin [#6968](https://github.com/jupyter/notebook/pull/6968) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update `yarn.lock` [#7170](https://github.com/jupyter/notebook/pull/7170) ([@jtpio](https://github.com/jtpio))
- Bump axios from 1.5.1 to 1.6.2 [#7165](https://github.com/jupyter/notebook/pull/7165) ([@dependabot](https://github.com/dependabot))
- Bump dessant/lock-threads from 4 to 5 [#7159](https://github.com/jupyter/notebook/pull/7159) ([@dependabot](https://github.com/dependabot))
- Update ruff config and typing [#7145](https://github.com/jupyter/notebook/pull/7145) ([@blink1073](https://github.com/blink1073))
- chore: update pre-commit hooks [#7143](https://github.com/jupyter/notebook/pull/7143) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Clean up lint handling [#7142](https://github.com/jupyter/notebook/pull/7142) ([@blink1073](https://github.com/blink1073))
- Adopt ruff format [#7132](https://github.com/jupyter/notebook/pull/7132) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-10-27&to=2023-12-04&type=c))

[@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2023-10-27..2023-12-04&type=Issues) | [@brichet](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2023-10-27..2023-12-04&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-10-27..2023-12-04&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-10-27..2023-12-04&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-10-27..2023-12-04&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2023-10-27..2023-12-04&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-10-27..2023-12-04&type=Issues)

## 7.1.0a0

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.0.6...0cd6104b926a398b419f2433538cef437592796f))

### Enhancements made

- Added Lumino Plugin Description (#7008) [#7127](https://github.com/jupyter/notebook/pull/7127) ([@Dilip-Jain](https://github.com/Dilip-Jain))
- Update to JupyterLab 4.1 [#7096](https://github.com/jupyter/notebook/pull/7096) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Fix python bumping to `minor` [#7131](https://github.com/jupyter/notebook/pull/7131) ([@jtpio](https://github.com/jtpio))
- Add Python 3.12 classifier [#7111](https://github.com/jupyter/notebook/pull/7111) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Set `navigation_with_keys` to `False` [#7129](https://github.com/jupyter/notebook/pull/7129) ([@jtpio](https://github.com/jtpio))
- Updated ui-tests Configuration in Contributing.md [#7124](https://github.com/jupyter/notebook/pull/7124) ([@jayeshsingh9767](https://github.com/jayeshsingh9767))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-10-17&to=2023-10-27&type=c))

[@Dilip-Jain](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ADilip-Jain+updated%3A2023-10-17..2023-10-27&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-10-17..2023-10-27&type=Issues) | [@jayeshsingh9767](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajayeshsingh9767+updated%3A2023-10-17..2023-10-27&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-10-17..2023-10-27&type=Issues)

## v7.0

## 7.0.6

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/app@7.0.5...c62caffb02856737870cbc79a2cdb43b3e89c363))

### Bugs fixed

- Updated fav-icon Base URL from JupyterLab PageConfig. [#7109](https://github.com/jupyter/notebook/pull/7109) ([@jayeshsingh9767](https://github.com/jayeshsingh9767))

### Maintenance and upkeep improvements

- Fix typings [#7110](https://github.com/jupyter/notebook/pull/7110) ([@jtpio](https://github.com/jtpio))
- Bump postcss from 8.4.27 to 8.4.31 [#7089](https://github.com/jupyter/notebook/pull/7089) ([@dependabot](https://github.com/dependabot))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-10-12&to=2023-10-17&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-10-12..2023-10-17&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-10-12..2023-10-17&type=Issues) | [@jayeshsingh9767](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajayeshsingh9767+updated%3A2023-10-12..2023-10-17&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-10-12..2023-10-17&type=Issues)

## 7.0.5

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/app@7.0.4...839193d07f0780ded6f559892517f061f3776b02))

### Enhancements made

- Update to JupyterLab 4.0.7 [#7103](https://github.com/jupyter/notebook/pull/7103) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update `permissions` in the galata snapshot workflow [#7105](https://github.com/jupyter/notebook/pull/7105) ([@jtpio](https://github.com/jtpio))
- Fix typings check on CI [#7104](https://github.com/jupyter/notebook/pull/7104) ([@jtpio](https://github.com/jtpio))
- Ignore yarn.lock for codespell [#7098](https://github.com/jupyter/notebook/pull/7098) ([@jtpio](https://github.com/jtpio))
- Remove link to the PDF documentation [#7094](https://github.com/jupyter/notebook/pull/7094) ([@jtpio](https://github.com/jtpio))
- Bump postcss from 8.4.23 to 8.4.31 in /ui-tests [#7088](https://github.com/jupyter/notebook/pull/7088) ([@dependabot](https://github.com/dependabot))
- React to the galata update comment [#7086](https://github.com/jupyter/notebook/pull/7086) ([@jtpio](https://github.com/jtpio))
- Switch from `hub` to `gh` in the Playwright snapshots update workflow [#7085](https://github.com/jupyter/notebook/pull/7085) ([@jtpio](https://github.com/jtpio))
- chore: update pre-commit hooks [#7084](https://github.com/jupyter/notebook/pull/7084) ([@pre-commit-ci](https://github.com/pre-commit-ci))
- Fix traitlets typing [#7082](https://github.com/jupyter/notebook/pull/7082) ([@jtpio](https://github.com/jtpio))
- Bump toshimaru/auto-author-assign from 2.0.0 to 2.0.1 [#7080](https://github.com/jupyter/notebook/pull/7080) ([@dependabot](https://github.com/dependabot))
- Bump toshimaru/auto-author-assign from 1.6.2 to 2.0.0 [#7072](https://github.com/jupyter/notebook/pull/7072) ([@dependabot](https://github.com/dependabot))
- ci: set minimal permissions to workflows [#7070](https://github.com/jupyter/notebook/pull/7070) ([@diogoteles08](https://github.com/diogoteles08))
- Bump systeminformation from 5.17.12 to 5.21.8 in /ui-tests [#7064](https://github.com/jupyter/notebook/pull/7064) ([@dependabot](https://github.com/dependabot))

### Documentation improvements

- Improve docs setup (SVG logos, repo links) [#7074](https://github.com/jupyter/notebook/pull/7074) ([@krassowski](https://github.com/krassowski))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-09-20&to=2023-10-12&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-09-20..2023-10-12&type=Issues) | [@diogoteles08](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adiogoteles08+updated%3A2023-09-20..2023-10-12&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-09-20..2023-10-12&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-09-20..2023-10-12&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2023-09-20..2023-10-12&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-09-20..2023-10-12&type=Issues)

## 7.0.4

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/app@7.0.3...0e62386fc71ed4bd424c989f9d5493ca346f1d9a))

### Enhancements made

- Update to JupyterLab 4.0.6 [#7049](https://github.com/jupyter/notebook/pull/7049) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix `app_version` [#7061](https://github.com/jupyter/notebook/pull/7061) ([@jtpio](https://github.com/jtpio))
- fix trusted status indication [#7036](https://github.com/jupyter/notebook/pull/7036) ([@adigaboy](https://github.com/adigaboy))

### Maintenance and upkeep improvements

- Update Binder environment [#7059](https://github.com/jupyter/notebook/pull/7059) ([@jtpio](https://github.com/jtpio))
- Add `deduplicate` top-level script [#7058](https://github.com/jupyter/notebook/pull/7058) ([@jtpio](https://github.com/jtpio))
- Move opening path in new browser tabs to a separate plugin [#7056](https://github.com/jupyter/notebook/pull/7056) ([@jtpio](https://github.com/jtpio))
- Enable the Playwright trace [#7050](https://github.com/jupyter/notebook/pull/7050) ([@jtpio](https://github.com/jtpio))
- Bump actions/checkout from 3 to 4 [#7040](https://github.com/jupyter/notebook/pull/7040) ([@dependabot](https://github.com/dependabot))
- Adopt sp-repo-review [#7039](https://github.com/jupyter/notebook/pull/7039) ([@blink1073](https://github.com/blink1073))
- Add `datetime.datetime.utc()` to the filter list [#7037](https://github.com/jupyter/notebook/pull/7037) ([@jtpio](https://github.com/jtpio))
- Fix docs build on Gitpod [#7026](https://github.com/jupyter/notebook/pull/7026) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-08-30&to=2023-09-20&type=c))

[@adigaboy](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aadigaboy+updated%3A2023-08-30..2023-09-20&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2023-08-30..2023-09-20&type=Issues) | [@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-08-30..2023-09-20&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-08-30..2023-09-20&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-08-30..2023-09-20&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-08-30..2023-09-20&type=Issues)

## 7.0.3

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/app@7.0.2...e2eb8f2a166ba7b339309b8bfbff40e6c9e0a9b9))

### Bugs fixed

- Require importlib_resources for testing on Python \< 3.10 [#7016](https://github.com/jupyter/notebook/pull/7016) ([@bnavigator](https://github.com/bnavigator))
- Fix Python 3.12 compatibility [#6965](https://github.com/jupyter/notebook/pull/6965) ([@frenzymadness](https://github.com/frenzymadness))

### Maintenance and upkeep improvements

- Update to JupyterLab 4.0.5 [#7013](https://github.com/jupyter/notebook/pull/7013) ([@jtpio](https://github.com/jtpio))
- Test against Python 3.12 [#6999](https://github.com/jupyter/notebook/pull/6999) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Mention the nx graph in the contributing guide [#7001](https://github.com/jupyter/notebook/pull/7001) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-08-04&to=2023-08-30&type=c))

[@bnavigator](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abnavigator+updated%3A2023-08-04..2023-08-30&type=Issues) | [@defjaf](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adefjaf+updated%3A2023-08-04..2023-08-30&type=Issues) | [@frenzymadness](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Afrenzymadness+updated%3A2023-08-04..2023-08-30&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-08-04..2023-08-30&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-08-04..2023-08-30&type=Issues) | [@kevin-bates](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akevin-bates+updated%3A2023-08-04..2023-08-30&type=Issues)

## 7.0.2

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/app@7.0.1...af5edd42374cadba65feed2e6828b1ef96295daf))

### Enhancements made

- Update to JupyterLab 4.0.4 packages [#6998](https://github.com/jupyter/notebook/pull/6998) ([@jtpio](https://github.com/jtpio))
- Improve about dialog [#6996](https://github.com/jupyter/notebook/pull/6996) ([@yjrab](https://github.com/yjrab))
- Added documentation link in Help menu [#6993](https://github.com/jupyter/notebook/pull/6993) ([@Mikil03](https://github.com/Mikil03))

### Bugs fixed

- Remove `RedirectHandler` [#6997](https://github.com/jupyter/notebook/pull/6997) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-07-31&to=2023-08-04&type=c))

[@echarles](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aecharles+updated%3A2023-07-31..2023-08-04&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-07-31..2023-08-04&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-07-31..2023-08-04&type=Issues) | [@kevin-bates](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akevin-bates+updated%3A2023-07-31..2023-08-04&type=Issues) | [@Mikil03](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AMikil03+updated%3A2023-07-31..2023-08-04&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-07-31..2023-08-04&type=Issues) | [@shaneknapp](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ashaneknapp+updated%3A2023-07-31..2023-08-04&type=Issues) | [@yjrab](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ayjrab+updated%3A2023-07-31..2023-08-04&type=Issues) | [@Zsailer](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AZsailer+updated%3A2023-07-31..2023-08-04&type=Issues)

## 7.0.1

([Full Changelog](https://github.com/jupyter/notebook/compare/@jupyter-notebook/app@7.0.0...ac3c882a246b46c15c1963ef4b65427a4257b132))

### Enhancements made

- Update accessibly compliance section in the docs [#6982](https://github.com/jupyter/notebook/pull/6982) ([@andrii-i](https://github.com/andrii-i))
- Update the browser tab favicon on kernel busy [#6980](https://github.com/jupyter/notebook/pull/6980) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Bump `word-wrap` and `semver` [#6979](https://github.com/jupyter/notebook/pull/6979) ([@jtpio](https://github.com/jtpio))
- Enable lerna caching for build scripts [#6767](https://github.com/jupyter/notebook/pull/6767) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Update accessibly compliance section in the docs [#6982](https://github.com/jupyter/notebook/pull/6982) ([@andrii-i](https://github.com/andrii-i))
- Fix link in `README.md` [#6973](https://github.com/jupyter/notebook/pull/6973) ([@jtpio](https://github.com/jtpio))
- The future is now [#6972](https://github.com/jupyter/notebook/pull/6972) ([@frenzymadness](https://github.com/frenzymadness))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-07-19&to=2023-07-31&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2023-07-19..2023-07-31&type=Issues) | [@echarles](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aecharles+updated%3A2023-07-19..2023-07-31&type=Issues) | [@frenzymadness](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Afrenzymadness+updated%3A2023-07-19..2023-07-31&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-07-19..2023-07-31&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-07-19..2023-07-31&type=Issues) | [@prof-lupin](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aprof-lupin+updated%3A2023-07-19..2023-07-31&type=Issues)

## 7.0.0

Jupyter Notebook 7 is released :tada:

Check the changelog: https://jupyter-notebook.readthedocs.io/en/latest/changelog.html

And the new features in Notebook 7: https://jupyter-notebook.readthedocs.io/en/latest/notebook_7_features.html

Migration Guide: https://jupyter-notebook.readthedocs.io/en/latest/migrate_to_notebook7.html

______________________________________________________________________

For reference here is the changelog since the last `7.0.0rc2` release.

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0rc2...2be98e8f39af7f3ec2729006018f6baf0998f94b))

### Bugs fixed

- Update Jupytext Notebook url path [#6961](https://github.com/jupyter/notebook/pull/6961) ([@RRosio](https://github.com/RRosio))

### Maintenance and upkeep improvements

- Fix hatch version when going from rc [#6971](https://github.com/jupyter/notebook/pull/6971) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab 4.0.3 [#6967](https://github.com/jupyter/notebook/pull/6967) ([@jtpio](https://github.com/jtpio))
- Bump semver from 7.5.0 to 7.5.3 in /ui-tests [#6950](https://github.com/jupyter/notebook/pull/6950) ([@dependabot](https://github.com/dependabot))

### Documentation improvements

- fix: update link to troubleshooting guidelines [#6964](https://github.com/jupyter/notebook/pull/6964) ([@emmanuel-ferdman](https://github.com/emmanuel-ferdman))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-06-26&to=2023-07-19&type=c))

[@dependabot](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Adependabot+updated%3A2023-06-26..2023-07-19&type=Issues) | [@emmanuel-ferdman](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aemmanuel-ferdman+updated%3A2023-06-26..2023-07-19&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-06-26..2023-07-19&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-06-26..2023-07-19&type=Issues) | [@parmentelat](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aparmentelat+updated%3A2023-06-26..2023-07-19&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-06-26..2023-07-19&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2023-06-26..2023-07-19&type=Issues)

## 7.0.0rc2

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0rc1...27c00bc56afaa5b89713f760b0cc6eb88079224e))

### Bugs fixed

- Fix opening files from the CLI [#6946](https://github.com/jupyter/notebook/pull/6946) ([@jtpio](https://github.com/jtpio))
- Fix handling of the base url [#6943](https://github.com/jupyter/notebook/pull/6943) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-06-22&to=2023-06-26&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-06-22..2023-06-26&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-06-22..2023-06-26&type=Issues) | [@parmentelat](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aparmentelat+updated%3A2023-06-22..2023-06-26&type=Issues)

## 7.0.0rc1

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0rc0...8493e1ba21ebaca5c192d68bdc829ccc5b29a799))

### Enhancements made

- Close the browser tab when clicking on "Close and Shut Down Notebook" [#6937](https://github.com/jupyter/notebook/pull/6937) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix the redirect handler [#6941](https://github.com/jupyter/notebook/pull/6941) ([@jtpio](https://github.com/jtpio))
- Make jupyter logo select properly (#6927) [#6938](https://github.com/jupyter/notebook/pull/6938) ([@Cheukting](https://github.com/Cheukting))

### Documentation improvements

- Update issue templates [#6939](https://github.com/jupyter/notebook/pull/6939) ([@RRosio](https://github.com/RRosio))
- Docs parity for find with JupyterLab. [#6917](https://github.com/jupyter/notebook/pull/6917) ([@ericsnekbytes](https://github.com/ericsnekbytes))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-06-19&to=2023-06-22&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2023-06-19..2023-06-22&type=Issues) | [@Cheukting](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ACheukting+updated%3A2023-06-19..2023-06-22&type=Issues) | [@ericsnekbytes](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aericsnekbytes+updated%3A2023-06-19..2023-06-22&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-06-19..2023-06-22&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-06-19..2023-06-22&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2023-06-19..2023-06-22&type=Issues)

## 7.0.0rc0

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0b4...d0692112a4b2db20c2178205d4b5630184acbf7b))

### Enhancements made

- Update JupyterLab, audit document viewers [#6922](https://github.com/jupyter/notebook/pull/6922) ([@jtpio](https://github.com/jtpio))
- Customize the shell layout with the settings [#6921](https://github.com/jupyter/notebook/pull/6921) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fix default viewers override [#6923](https://github.com/jupyter/notebook/pull/6923) ([@jtpio](https://github.com/jtpio))
- Align JupyterHub config with JupyterLab [#6918](https://github.com/jupyter/notebook/pull/6918) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Added example of custom css files [#6919](https://github.com/jupyter/notebook/pull/6919) ([@RRosio](https://github.com/RRosio))

### API and Breaking Changes

- Customize the shell layout with the settings [#6921](https://github.com/jupyter/notebook/pull/6921) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-06-12&to=2023-06-19&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-06-12..2023-06-19&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-06-12..2023-06-19&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2023-06-12..2023-06-19&type=Issues)

## 7.0.0b4

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0b3...ee3e1c221226d482ca1c9bec6362c8af36f1da56))

### Enhancements made

- Rename browser tab title to Home [#6913](https://github.com/jupyter/notebook/pull/6913) ([@Cheukting](https://github.com/Cheukting))
- Add the notification plugin [#6900](https://github.com/jupyter/notebook/pull/6900) ([@jtpio](https://github.com/jtpio))
- Configurable `default_url` for JupyterNotebookApp [#6899](https://github.com/jupyter/notebook/pull/6899) ([@paulgb](https://github.com/paulgb))
- Enhancement: Added drop shadows to markdown, text, and tree views [#6893](https://github.com/jupyter/notebook/pull/6893) ([@rielAsh24](https://github.com/rielAsh24))
- Update to JupyterLab 4.0.1 [#6892](https://github.com/jupyter/notebook/pull/6892) ([@jtpio](https://github.com/jtpio))
- Add file browser actions to the file browser toolbar [#6888](https://github.com/jupyter/notebook/pull/6888) ([@jtpio](https://github.com/jtpio))
- Add option to open a notebook in NbClassic if it is installed; show "Open in..." dropdown menu if there are multiple options, show single button otherwise [#6866](https://github.com/jupyter/notebook/pull/6866) ([@andrii-i](https://github.com/andrii-i))
- Load custom CSS [#6841](https://github.com/jupyter/notebook/pull/6841) ([@RRosio](https://github.com/RRosio))

### Bugs fixed

- Add an empty splash screen on notebook launch to avoid a flash of unstyled content  [#6911](https://github.com/jupyter/notebook/pull/6911) ([@andrii-i](https://github.com/andrii-i))
- Fix for "find searches only part of the file" bug [#6905](https://github.com/jupyter/notebook/pull/6905) ([@ericsnekbytes](https://github.com/ericsnekbytes))
- Provide a custom rendermime plugin to handle local links [#6885](https://github.com/jupyter/notebook/pull/6885) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Fix check links on CI [#6910](https://github.com/jupyter/notebook/pull/6910) ([@jtpio](https://github.com/jtpio))
- Add `JSONLicenseWebpackPlugin` [#6896](https://github.com/jupyter/notebook/pull/6896) ([@jtpio](https://github.com/jtpio))
- Simplify Gitpod setup [#6894](https://github.com/jupyter/notebook/pull/6894) ([@jtpio](https://github.com/jtpio))
- Fix action name in update workflow [#6884](https://github.com/jupyter/notebook/pull/6884) ([@jtpio](https://github.com/jtpio))
- Fix playwright bot [#6880](https://github.com/jupyter/notebook/pull/6880) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Document how to manage plugins and extensions [#6909](https://github.com/jupyter/notebook/pull/6909) ([@jtpio](https://github.com/jtpio))
- Jupyter Notebook ecosystem docs improvements [#6877](https://github.com/jupyter/notebook/pull/6877) ([@ericsnekbytes](https://github.com/ericsnekbytes))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-05-25&to=2023-06-12&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2023-05-25..2023-06-12&type=Issues) | [@Cheukting](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ACheukting+updated%3A2023-05-25..2023-06-12&type=Issues) | [@echarles](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aecharles+updated%3A2023-05-25..2023-06-12&type=Issues) | [@ericsnekbytes](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aericsnekbytes+updated%3A2023-05-25..2023-06-12&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-05-25..2023-06-12&type=Issues) | [@henryiii](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ahenryiii+updated%3A2023-05-25..2023-06-12&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-05-25..2023-06-12&type=Issues) | [@krassowski](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2023-05-25..2023-06-12&type=Issues) | [@paulgb](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apaulgb+updated%3A2023-05-25..2023-06-12&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-05-25..2023-06-12&type=Issues) | [@rielAsh24](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ArielAsh24+updated%3A2023-05-25..2023-06-12&type=Issues) | [@RRosio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2023-05-25..2023-06-12&type=Issues) | [@yuvipanda](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ayuvipanda+updated%3A2023-05-25..2023-06-12&type=Issues)

## 7.0.0b3

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0b2...93e4d5e1c6ed7a3a4875eed284255587ac293819))

### Enhancements made

- Copy edits for `migrate_to_notebook7` [#6879](https://github.com/jupyter/notebook/pull/6879) ([@JasonWeill](https://github.com/JasonWeill))
- Enable add a cell button [#6872](https://github.com/jupyter/notebook/pull/6872) ([@tuncbkose](https://github.com/tuncbkose))
- Update to JupyterLab 4 final [#6871](https://github.com/jupyter/notebook/pull/6871) ([@jtpio](https://github.com/jtpio))
- Remove "Close Tab" menu entry [#6843](https://github.com/jupyter/notebook/pull/6843) ([@timmerk3](https://github.com/timmerk3))

### Bugs fixed

- Fix handling of the default factory in the URL [#6873](https://github.com/jupyter/notebook/pull/6873) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Update to Playwright 1.33 [#6874](https://github.com/jupyter/notebook/pull/6874) ([@jtpio](https://github.com/jtpio))
- Fix check links on CI [#6870](https://github.com/jupyter/notebook/pull/6870) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Copy edits for `migrate_to_notebook7` [#6879](https://github.com/jupyter/notebook/pull/6879) ([@JasonWeill](https://github.com/JasonWeill))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-05-09&to=2023-05-25&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2023-05-09..2023-05-25&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-05-09..2023-05-25&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AJasonWeill+updated%3A2023-05-09..2023-05-25&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-05-09..2023-05-25&type=Issues) | [@timmerk3](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Atimmerk3+updated%3A2023-05-09..2023-05-25&type=Issues) | [@tuncbkose](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Atuncbkose+updated%3A2023-05-09..2023-05-25&type=Issues)

## 7.0.0b2

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0b1...c0071d796019c0221df4900313b51c0529438bcf))

### Enhancements made

- Update to JupyterLab 4.0.0rc1 [#6864](https://github.com/jupyter/notebook/pull/6864) ([@jtpio](https://github.com/jtpio))
- Change "Interface" menu to "Open in...", shorten names of menu items inside [#6847](https://github.com/jupyter/notebook/pull/6847) ([@andrii-i](https://github.com/andrii-i))
- Add Skip Link to Notebook [#6844](https://github.com/jupyter/notebook/pull/6844) ([@seirani](https://github.com/seirani))

### Bugs fixed

- Fix top bar visibility not picking up settings overrides (#6833) [#6836](https://github.com/jupyter/notebook/pull/6836) ([@yumyumqing](https://github.com/yumyumqing))

### Maintenance and upkeep improvements

- Update RTD image [#6861](https://github.com/jupyter/notebook/pull/6861) ([@blink1073](https://github.com/blink1073))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-04-28&to=2023-05-09&type=c))

[@andrii-i](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aandrii-i+updated%3A2023-04-28..2023-05-09&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2023-04-28..2023-05-09&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-04-28..2023-05-09&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-04-28..2023-05-09&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-04-28..2023-05-09&type=Issues) | [@seirani](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aseirani+updated%3A2023-04-28..2023-05-09&type=Issues) | [@yumyumqing](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ayumyumqing+updated%3A2023-04-28..2023-05-09&type=Issues)

## 7.0.0b1

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0b0...4b6af274b24bcc20e43ad2330c9243c8d2c7d552))

### Enhancements made

- Update to JupyterLab 4.0.0rc0 [#6853](https://github.com/jupyter/notebook/pull/6853) ([@jtpio](https://github.com/jtpio))
- Update to JupyterLab `4.0.0b1` and `4.0.0b2` [#6838](https://github.com/jupyter/notebook/pull/6838) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- Fixes the notebooktools [#6834](https://github.com/jupyter/notebook/pull/6834) ([@brichet](https://github.com/brichet))

### Maintenance and upkeep improvements

- Use local coverage [#6839](https://github.com/jupyter/notebook/pull/6839) ([@blink1073](https://github.com/blink1073))

### Documentation improvements

- Added extra information and user-action summaries to 7 migration docs. [#6850](https://github.com/jupyter/notebook/pull/6850) ([@ericsnekbytes](https://github.com/ericsnekbytes))
- Rename migration file to `migrate_to_notebook7` [#6831](https://github.com/jupyter/notebook/pull/6831) ([@jtpio](https://github.com/jtpio))
- Use correct canonical URL while building docs [#6829](https://github.com/jupyter/notebook/pull/6829) ([@ashwinvis](https://github.com/ashwinvis))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-04-04&to=2023-04-28&type=c))

[@ashwinvis](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aashwinvis+updated%3A2023-04-04..2023-04-28&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ablink1073+updated%3A2023-04-04..2023-04-28&type=Issues) | [@brichet](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Abrichet+updated%3A2023-04-04..2023-04-28&type=Issues) | [@ericsnekbytes](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aericsnekbytes+updated%3A2023-04-04..2023-04-28&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-04-04..2023-04-28&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-04-04..2023-04-28&type=Issues)

## 7.0.0b0

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0a18...b99718f57a8beac7b4019901a57c94984781dd49))

### Enhancements made

- Update to JupyterLab `4.0.0b0` [#6803](https://github.com/jupyter/notebook/pull/6803) ([@jtpio](https://github.com/jtpio))

### Bugs fixed

- added white space to bottom of edit files [#6804](https://github.com/jupyter/notebook/pull/6804) ([@jesuscastillx](https://github.com/jesuscastillx))
- Hides 'micro' toolbars in notebook [#6791](https://github.com/jupyter/notebook/pull/6791) ([@JasonWeill](https://github.com/JasonWeill))

### Maintenance and upkeep improvements

- Add missing singleton packages for RTC [#6816](https://github.com/jupyter/notebook/pull/6816) ([@jtpio](https://github.com/jtpio))

### Documentation improvements

- Improve the documentation for Notebook 7 [#6813](https://github.com/jupyter/notebook/pull/6813) ([@jtpio](https://github.com/jtpio))
- fix typo in the migration guide [#6812](https://github.com/jupyter/notebook/pull/6812) ([@Tiksagol](https://github.com/Tiksagol))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-03-24&to=2023-04-04&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-03-24..2023-04-04&type=Issues) | [@j-publius](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aj-publius+updated%3A2023-03-24..2023-04-04&type=Issues) | [@JasonWeill](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3AJasonWeill+updated%3A2023-03-24..2023-04-04&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-03-24..2023-04-04&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Apre-commit-ci+updated%3A2023-03-24..2023-04-04&type=Issues) | [@Tiksagol](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ATiksagol+updated%3A2023-03-24..2023-04-04&type=Issues)

## 7.0.0a18

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0a17...253efe279f8c8005f016f3dfe28c22233ee1d2dd))

### Enhancements made

- Add back the `csvviewer-extension` [#6799](https://github.com/jupyter/notebook/pull/6799) ([@jtpio](https://github.com/jtpio))
- Fix JSON setting editor not opening issue [#6795](https://github.com/jupyter/notebook/pull/6795) ([@yumyumqing](https://github.com/yumyumqing))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-03-20&to=2023-03-24&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-03-20..2023-03-24&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-03-20..2023-03-24&type=Issues) | [@yumyumqing](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ayumyumqing+updated%3A2023-03-20..2023-03-24&type=Issues)

## 7.0.0a17

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0a16...7903de83e83a6ce342d71895dc1e8c2ec8128174))

### Highlights

This major change in this release is the update to the latest JupyterLab `4.0.0a37`.

Check out the [JupyterLab `4.0.0a37` release notes](https://github.com/jupyterlab/jupyterlab/releases/tag/v4.0.0a37) for more details.

### Enhancements made

- Update to JupyterLab 4.0.0a37 [#6777](https://github.com/jupyter/notebook/pull/6777) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Replace the use of `toArray` by `Array.from` [#6775](https://github.com/jupyter/notebook/pull/6775) (`@tarunsamanta2k20`)

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-03-15&to=2023-03-20&type=c))

[@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-03-15..2023-03-20&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-03-15..2023-03-20&type=Issues) | [@tarunsamanta2k20](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Atarunsamanta2k20+updated%3A2023-03-15..2023-03-20&type=Issues)

## 7.0.0a16

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0a15...0faa88c8b65e0302f1904e4ca9cd2e551525f352))

### Enhancements made

- Update to JupyterLab 4.0.0a36 [#6773](https://github.com/jupyter/notebook/pull/6773) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Clean up interface switcher plugin in preparation for release [#6766](https://github.com/jupyter/notebook/pull/6766) ([@afshin](https://github.com/afshin))
- Remove empty `py.test` file [#6764](https://github.com/jupyter/notebook/pull/6764) ([@frenzymadness](https://github.com/frenzymadness))

### Documentation improvements

- Add documentation for contributing to the docs [#6771](https://github.com/jupyter/notebook/pull/6771) ([@jtpio](https://github.com/jtpio))
- Convert docs to Markdown [#6770](https://github.com/jupyter/notebook/pull/6770) ([@jtpio](https://github.com/jtpio))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-03-08&to=2023-03-15&type=c))

[@afshin](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Aafshin+updated%3A2023-03-08..2023-03-15&type=Issues) | [@frenzymadness](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Afrenzymadness+updated%3A2023-03-08..2023-03-15&type=Issues) | [@github-actions](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2023-03-08..2023-03-15&type=Issues) | [@jtpio](https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2023-03-08..2023-03-15&type=Issues)

## 7.0.0a15

([Full Changelog](https://github.com/jupyter/notebook/compare/v7.0.0a14...1ccb8f15d6bf3557eed2405438a9df3c1d6cd040))

### Enhancements made

- Update to JupyterLab 4.0.0a35 [#6757](https://github.com/jupyter/notebook/pull/6757) ([@jtpio](https://github.com/jtpio))

### Maintenance and upkeep improvements

- Bump vega from 5.22.1 to 5.23.0 in /ui-tests [#6756](https://github.com/jupyter/notebook/pull/6756) ([@dependabot](https://github.com/dependabot))
- Bump vega-functions from 5.13.0 to 5.13.1 in /ui-tests [#6754](https://github.com/jupyter/notebook/pull/6754) ([@dependabot](https://github.com/dependabot))

### Contributors to this release

([GitHub contributors page for this release](https://github.com/jupyter/notebook/graphs/contributors?from=2023-03-01&to=2023-03-08&type=c))

[@dependabot](https://github.com/sear
Download .txt
gitextract_d_lj9zim/

├── .devcontainer/
│   ├── Dockerfile
│   └── devcontainer.json
├── .git-blame-ignore-revs
├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── actions/
│   │   └── build-dist/
│   │       └── action.yml
│   ├── answered.yml
│   ├── dependabot.yml
│   ├── jupyterlab-probot.yml
│   ├── pull_request_template.md
│   └── workflows/
│       ├── auto_author_assign.yml
│       ├── binder.yml
│       ├── build.yml
│       ├── buildutils.yml
│       ├── check-release.yml
│       ├── enforce-label.yml
│       ├── lock.yml
│       ├── playwright-update.yml
│       ├── prep-release.yml
│       ├── publish-changelog.yml
│       ├── publish-release.yml
│       ├── ui-tests.yml
│       └── upgrade-jupyterlab-dependencies.yml
├── .gitignore
├── .pre-commit-config.yaml
├── .prettierignore
├── .prettierrc
├── .readthedocs.yaml
├── .yarnrc.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── RELEASE.md
├── app/
│   ├── index.template.js
│   ├── package.json
│   ├── publicpath.js
│   ├── rspack.config.js
│   ├── rspack.config.watch.js
│   ├── rspack.prod.config.js
│   ├── style.js
│   └── templates/
│       ├── consoles_template.html
│       ├── edit_template.html
│       ├── error_template.html
│       ├── notebooks_template.html
│       ├── terminals_template.html
│       └── tree_template.html
├── binder/
│   ├── environment.yml
│   ├── example.ipynb
│   └── postBuild
├── buildutils/
│   ├── package.json
│   ├── src/
│   │   ├── develop.ts
│   │   ├── ensure-repo.ts
│   │   ├── get-latest-lab-version.ts
│   │   ├── release-bump.ts
│   │   ├── release-patch.ts
│   │   ├── upgrade-lab-dependencies.ts
│   │   └── utils.ts
│   └── tsconfig.json
├── docs/
│   ├── Makefile
│   ├── jsdoc_config.json
│   ├── jsdoc_plugin.js
│   ├── make.bat
│   ├── resources/
│   │   ├── Info.plist.example
│   │   ├── generate_icons.sh
│   │   └── ipynb.icns
│   └── source/
│       ├── _static/
│       │   └── .gitkeep
│       ├── conf.py
│       ├── configuration.md
│       ├── configuring/
│       │   ├── config_overview.md
│       │   ├── interface_customization.md
│       │   └── plugins.md
│       ├── contributor.md
│       ├── custom_css.md
│       ├── development_faq.md
│       ├── examples/
│       │   ├── Notebook/
│       │   │   ├── Connecting with the Qt Console.ipynb
│       │   │   ├── Custom Keyboard Shortcuts.ipynb
│       │   │   ├── Importing Notebooks.ipynb
│       │   │   ├── Notebook Basics.ipynb
│       │   │   ├── Running Code.ipynb
│       │   │   ├── Typesetting Equations.ipynb
│       │   │   ├── What is the Jupyter Notebook.ipynb
│       │   │   ├── Working With Markdown Cells.ipynb
│       │   │   ├── examples_index.rst
│       │   │   └── nbpackage/
│       │   │       ├── __init__.py
│       │   │       ├── mynotebook.ipynb
│       │   │       └── nbs/
│       │   │           ├── __init__.py
│       │   │           └── other.ipynb
│       │   ├── images/
│       │   │   ├── FrontendKernel.graffle/
│       │   │   │   └── data.plist
│       │   │   └── animation.m4v
│       │   └── utils/
│       │       ├── list_pyfiles.ipy
│       │       └── list_subdirs.ipy
│       ├── extending/
│       │   ├── frontend_extensions.md
│       │   └── index.md
│       ├── index.md
│       ├── ipython_security.asc
│       ├── links.txt
│       ├── migrate_to_notebook7.md
│       ├── migrating/
│       │   ├── custom-themes.md
│       │   ├── frontend-extensions.md
│       │   ├── multiple-interfaces.md
│       │   ├── server-extensions.md
│       │   └── server-imports.md
│       ├── notebook.md
│       ├── notebook_7_features.md
│       ├── spelling_wordlist.txt
│       ├── template.tpl
│       ├── troubleshooting.md
│       ├── ui_components.md
│       └── user-documentation.md
├── eslint.config.mjs
├── jupyter-config/
│   └── jupyter_server_config.d/
│       └── notebook.json
├── jupyter-notebook.desktop
├── jupyter_config.json
├── lerna.json
├── notebook/
│   ├── __init__.py
│   ├── __main__.py
│   ├── _version.py
│   ├── app.py
│   └── custom/
│       └── custom.css
├── nx.json
├── package.json
├── packages/
│   ├── _metapackage/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   └── tsconfig.json
│   ├── application/
│   │   ├── babel.config.js
│   │   ├── jest.config.js
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── app.ts
│   │   │   ├── index.ts
│   │   │   ├── panelhandler.ts
│   │   │   ├── pathopener.ts
│   │   │   ├── shell.ts
│   │   │   └── tokens.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   ├── index.js
│   │   │   └── sidepanel.css
│   │   ├── test/
│   │   │   └── shell.spec.ts
│   │   ├── tsconfig.json
│   │   └── tsconfig.test.json
│   ├── application-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── menus.json
│   │   │   ├── pages.json
│   │   │   ├── shell.json
│   │   │   ├── shortcuts.json
│   │   │   ├── title.json
│   │   │   ├── top.json
│   │   │   └── zen.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── console-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   └── scratchpad-console.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── docmanager-extension/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── documentsearch-extension/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── help-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   └── open.json
│   │   ├── src/
│   │   │   └── index.tsx
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── lab-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── interface-switcher.json
│   │   │   └── launch-tree.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── notebook-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── checkpoints.json
│   │   │   ├── edit-notebook-metadata.json
│   │   │   ├── full-width-notebook.json
│   │   │   ├── kernel-logo.json
│   │   │   ├── menu-override.json
│   │   │   └── scroll-output.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   └── trusted.tsx
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   ├── index.js
│   │   │   └── variables.css
│   │   └── tsconfig.json
│   ├── terminal-extension/
│   │   ├── package.json
│   │   ├── src/
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── tree/
│   │   ├── package.json
│   │   ├── src/
│   │   │   ├── index.ts
│   │   │   ├── notebook-tree.ts
│   │   │   └── token.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   ├── tree-extension/
│   │   ├── package.json
│   │   ├── schema/
│   │   │   ├── file-actions.json
│   │   │   └── widget.json
│   │   ├── src/
│   │   │   ├── fileactions.tsx
│   │   │   └── index.ts
│   │   ├── style/
│   │   │   ├── base.css
│   │   │   ├── index.css
│   │   │   └── index.js
│   │   └── tsconfig.json
│   └── ui-components/
│       ├── babel.config.js
│       ├── jest.config.js
│       ├── package.json
│       ├── src/
│       │   ├── icon/
│       │   │   ├── iconimports.ts
│       │   │   └── index.ts
│       │   ├── index.ts
│       │   └── svg.d.ts
│       ├── style/
│       │   ├── base.css
│       │   ├── index.css
│       │   └── index.js
│       ├── test/
│       │   └── foo.spec.ts
│       ├── tsconfig.json
│       └── tsconfig.test.json
├── pyproject.toml
├── setup.py
├── tests/
│   ├── conftest.py
│   └── test_app.py
├── tsconfig.eslint.json
├── tsconfigbase.json
├── tsconfigbase.test.json
└── ui-tests/
    ├── package.json
    ├── playwright.config.ts
    ├── test/
    │   ├── console.spec.ts
    │   ├── editor.spec.ts
    │   ├── filebrowser.spec.ts
    │   ├── fixtures.ts
    │   ├── general.spec.ts
    │   ├── jupyter_server_config.py
    │   ├── layout.spec.ts
    │   ├── links.spec.ts
    │   ├── menus.spec.ts
    │   ├── mobile.spec.ts
    │   ├── notebook.spec.ts
    │   ├── notebooks/
    │   │   ├── autoscroll.ipynb
    │   │   ├── empty.ipynb
    │   │   ├── local_links.ipynb
    │   │   ├── simple.ipynb
    │   │   └── simple_toc.ipynb
    │   ├── settings.spec.ts
    │   ├── smoke.spec.ts
    │   ├── tree.spec.ts
    │   └── utils.ts
    └── tsconfig.test.json
Download .txt
SYMBOL INDEX (196 symbols across 34 files)

FILE: app/index.template.js
  function loadScript (line 13) | function loadScript(url) {
  function loadComponent (line 23) | async function loadComponent(url, scope) {
  function createModule (line 35) | async function createModule(scope, module) {

FILE: app/publicpath.js
  function getOption (line 23) | function getOption(name) {

FILE: app/rspack.config.js
  function createShared (line 99) | function createShared(packageData) {

FILE: buildutils/src/ensure-repo.ts
  function ensureResolutions (line 10) | function ensureResolutions(): string[] {

FILE: buildutils/src/get-latest-lab-version.ts
  function convertPythonVersion (line 4) | function convertPythonVersion(version: string): string {
  function extractVersionFromReleases (line 11) | function extractVersionFromReleases(
  function extractCurrentJupyterLabVersion (line 37) | function extractCurrentJupyterLabVersion(): string {
  function findVersion (line 46) | async function findVersion(versionTag: string): Promise<string> {
  function getLatestLabVersion (line 69) | async function getLatestLabVersion(): Promise<void> {

FILE: buildutils/src/upgrade-lab-dependencies.ts
  constant PACKAGE_JSON_PATHS (line 4) | const PACKAGE_JSON_PATHS: string[] = [
  constant DEPENDENCY_GROUP (line 23) | const DEPENDENCY_GROUP = '@jupyterlab';
  type IVersion (line 25) | interface IVersion {
  function parseVersion (line 32) | function parseVersion(version: string): IVersion {
  function getVersionRange (line 55) | function getVersionRange(version: IVersion): string {
  function updateVersionInFile (line 62) | function updateVersionInFile(
  function updatePackageJson (line 73) | async function updatePackageJson(newVersion: string): Promise<void> {
  function updateDependencyVersion (line 112) | function updateDependencyVersion(existingJson: any, newJson: any): void {
  function absoluteVersion (line 144) | function absoluteVersion(version: string): string {
  constant FILES_TO_UPDATE (line 153) | const FILES_TO_UPDATE = ['pyproject.toml', '.pre-commit-config.yaml'];
  function upgradeLabDependencies (line 155) | async function upgradeLabDependencies(): Promise<void> {

FILE: buildutils/src/utils.ts
  function getPythonVersion (line 6) | function getPythonVersion(): string {
  function postbump (line 12) | function postbump(commit = true): void {

FILE: docs/source/conf.py
  function setup (line 405) | def setup(app):

FILE: notebook/__init__.py
  function _jupyter_server_extension_paths (line 8) | def _jupyter_server_extension_paths() -> list[dict[str, str]]:
  function _jupyter_server_extension_points (line 12) | def _jupyter_server_extension_points() -> list[dict[str, Any]]:
  function _jupyter_labextension_paths (line 18) | def _jupyter_labextension_paths() -> list[dict[str, str]]:

FILE: notebook/app.py
  class NotebookBaseHandler (line 50) | class NotebookBaseHandler(ExtensionHandlerJinjaMixin, ExtensionHandlerMi...
    method custom_css (line 54) | def custom_css(self) -> t.Any:
    method get_page_config (line 57) | def get_page_config(self) -> dict[str, t.Any]:
  class TreeHandler (line 133) | class TreeHandler(NotebookBaseHandler):
    method get (line 137) | async def get(self, path: str = "") -> None:
  class ConsoleHandler (line 173) | class ConsoleHandler(NotebookBaseHandler):
    method get (line 177) | def get(self, path: str | None = None) -> t.Any:  # noqa: ARG002
  class TerminalHandler (line 183) | class TerminalHandler(NotebookBaseHandler):
    method get (line 187) | def get(self, path: str | None = None) -> t.Any:  # noqa: ARG002
  class FileHandler (line 193) | class FileHandler(NotebookBaseHandler):
    method get (line 197) | def get(self, path: str | None = None) -> t.Any:  # noqa: ARG002
  class NotebookHandler (line 203) | class NotebookHandler(NotebookBaseHandler):
    method get (line 207) | async def get(self, path: str = "") -> t.Any:
  class CustomCssHandler (line 221) | class CustomCssHandler(NotebookBaseHandler):
    method get (line 225) | def get(self) -> t.Any:
  class JupyterNotebookApp (line 245) | class JupyterNotebookApp(NotebookConfigShimMixin, LabServerApp):  # type...
    method _default_static_dir (line 286) | def _default_static_dir(self) -> str:
    method _default_templates_dir (line 290) | def _default_templates_dir(self) -> str:
    method _default_app_settings_dir (line 294) | def _default_app_settings_dir(self) -> str:
    method _default_schemas_dir (line 298) | def _default_schemas_dir(self) -> str:
    method _default_themes_dir (line 302) | def _default_themes_dir(self) -> str:
    method _default_user_settings_dir (line 306) | def _default_user_settings_dir(self) -> str:
    method _default_workspaces_dir (line 310) | def _default_workspaces_dir(self) -> str:
    method _prepare_templates (line 313) | def _prepare_templates(self) -> None:
    method server_extension_is_enabled (line 317) | def server_extension_is_enabled(self, extension: str) -> bool:
    method initialize_handlers (line 329) | def initialize_handlers(self) -> None:
    method initialize (line 361) | def initialize(self, argv: list[str] | None = None) -> None:  # noqa: ...

FILE: packages/application-extension/src/index.ts
  constant TREE_PATTERN (line 71) | const TREE_PATTERN = new RegExp('/(notebooks|edit)/(.*)');
  constant STRIP_IPYNB (line 76) | const STRIP_IPYNB = /\.ipynb$/;
  constant JUPYTERLAB_DOCMANAGER_PLUGIN_ID (line 81) | const JUPYTERLAB_DOCMANAGER_PLUGIN_ID =
  function updateTreePath (line 1095) | function updateTreePath(treePath: string) {

FILE: packages/application/src/app.ts
  class NotebookApp (line 27) | class NotebookApp extends JupyterFrontEnd<INotebookShell> {
    method constructor (line 33) | constructor(options: NotebookApp.IOptions = { shell: new NotebookShell...
    method info (line 89) | get info(): JupyterLab.IInfo {
    method paths (line 96) | get paths(): JupyterFrontEnd.IPaths {
    method handleEvent (line 130) | override handleEvent(event: Event): void {
    method registerPluginModule (line 142) | registerPluginModule(mod: NotebookApp.IPluginModule): void {
    method registerPluginModules (line 165) | registerPluginModules(mods: NotebookApp.IPluginModule[]): void {
  type IOptions (line 184) | interface IOptions
  type IInfo (line 191) | interface IInfo {
  type IPluginModule (line 207) | interface IPluginModule {
  function setFormat (line 229) | function setFormat(app: NotebookApp): void {

FILE: packages/application/src/panelhandler.ts
  class PanelHandler (line 15) | class PanelHandler {
    method constructor (line 16) | constructor() {
    method panel (line 23) | get panel(): Panel {
    method addWidget (line 32) | addWidget(widget: Widget, rank: number): void {
  class SidePanelHandler (line 67) | class SidePanelHandler extends PanelHandler {
    method constructor (line 71) | constructor(area: SidePanel.Area) {
    method currentWidget (line 103) | get currentWidget(): Widget | null {
    method area (line 114) | get area(): SidePanel.Area {
    method isVisible (line 121) | get isVisible(): boolean {
    method panel (line 128) | override get panel(): Panel {
    method widgets (line 135) | get widgets(): Readonly<Widget[]> {
    method widgetAdded (line 142) | get widgetAdded(): ISignal<SidePanelHandler, Widget> {
    method widgetRemoved (line 149) | get widgetRemoved(): ISignal<SidePanelHandler, Widget> {
    method closeButton (line 156) | get closeButton(): HTMLButtonElement {
    method expand (line 167) | expand(id?: string): void {
    method activate (line 187) | activate(id: string): void {
    method has (line 199) | has(id: string): boolean {
    method collapse (line 206) | collapse(): void {
    method addWidget (line 216) | override addWidget(widget: Widget, rank: number): void {
    method hide (line 232) | hide(): void {
    method show (line 240) | show(): void {
    method _findInsertIndex (line 248) | private _findInsertIndex(item: Private.IRankItem): number {
    method _findWidgetIndex (line 255) | private _findWidgetIndex(widget: Widget): number {
    method _findWidgetByID (line 262) | private _findWidgetByID(id: string): Widget | null {
    method _refreshVisibility (line 269) | private _refreshVisibility(): void {
    method _onWidgetRemoved (line 276) | private _onWidgetRemoved(sender: StackedPanel, widget: Widget): void {
  type Area (line 304) | type Area = 'left' | 'right';
  class SidePanelPalette (line 310) | class SidePanelPalette {
    method constructor (line 314) | constructor(options: SidePanelPaletteOption) {
    method getItem (line 322) | getItem(
    method addItem (line 336) | addItem(widget: Readonly<Widget>, area: 'left' | 'right'): void {
    method removeItem (line 365) | removeItem(widget: Readonly<Widget>, area: 'left' | 'right'): void {
  type SidePanelPaletteItem (line 377) | type SidePanelPaletteItem = {
  type SidePanelPaletteOption (line 397) | type SidePanelPaletteOption = {
  type IRankItem (line 422) | interface IRankItem {
  function itemCmp (line 436) | function itemCmp(first: IRankItem, second: IRankItem): number {

FILE: packages/application/src/pathopener.ts
  class DefaultNotebookPathOpener (line 11) | class DefaultNotebookPathOpener implements INotebookPathOpener {
    method open (line 15) | open(options: INotebookPathOpener.IOpenOptions): WindowProxy | null {

FILE: packages/application/src/shell.ts
  type INotebookShell (line 33) | interface INotebookShell extends NotebookShell {}
  type Area (line 42) | type Area = 'main' | 'top' | 'menu' | 'left' | 'right' | 'down';
  type IWidgetPosition (line 47) | interface IWidgetPosition {
  type IUserLayout (line 61) | interface IUserLayout {
  constant DEFAULT_RANK (line 72) | const DEFAULT_RANK = 900;
  class NotebookShell (line 77) | class NotebookShell extends Widget implements JupyterFrontEnd.IShell {
    method constructor (line 78) | constructor() {
    method currentChanged (line 199) | get currentChanged(): ISignal<
    method currentWidget (line 209) | get currentWidget(): Widget | null {
    method top (line 216) | get top(): Widget {
    method menu (line 223) | get menu(): Widget {
    method leftHandler (line 230) | get leftHandler(): SidePanelHandler {
    method rightHandler (line 237) | get rightHandler(): SidePanelHandler {
    method leftCollapsed (line 244) | get leftCollapsed(): boolean {
    method rightCollapsed (line 251) | get rightCollapsed(): boolean {
    method restored (line 260) | get restored(): Promise<void> {
    method translator (line 267) | get translator(): ITranslator {
    method translator (line 270) | set translator(value: ITranslator) {
    method userLayout (line 288) | get userLayout() {
    method activateById (line 295) | activateById(id: string): void {
    method add (line 328) | add(
    method isSidePanelVisible (line 385) | isSidePanelVisible(area: string): boolean {
    method getWidgetArea (line 400) | getWidgetArea(id: string): string | null {
    method expand (line 416) | expand(area: string): void {
    method collapse (line 432) | collapse(area: string): void {
    method collapseTop (line 448) | collapseTop(): void {
    method expandTop (line 456) | expandTop(): void {
    method widgets (line 466) | *widgets(area: INotebookShell.Area): IterableIterator<Widget> {
    method expandLeft (line 495) | expandLeft(id?: string): void {
    method collapseLeft (line 503) | collapseLeft(): void {
    method expandRight (line 511) | expandRight(id?: string): void {
    method collapseRight (line 519) | collapseRight(): void {
    method restoreLayout (line 527) | async restoreLayout(
    method _onTabPanelChanged (line 536) | private _onTabPanelChanged(): void {
  class SkipLinkWidgetHandler (line 562) | class SkipLinkWidgetHandler {
    method constructor (line 566) | constructor(shell: INotebookShell) {
    method handleEvent (line 579) | handleEvent(event: Event): void {
    method _focusMain (line 587) | private _focusMain() {
    method skipLinkWidget (line 598) | get skipLinkWidget(): Widget {
    method dispose (line 605) | dispose(): void {
    method hide (line 617) | hide(): void {
    method show (line 624) | show(): void {
    method isDisposed (line 631) | get isDisposed(): boolean {

FILE: packages/application/src/tokens.ts
  type INotebookPathOpener (line 6) | interface INotebookPathOpener {
  type IOpenOptions (line 19) | interface IOpenOptions {

FILE: packages/docmanager-extension/src/index.ts
  method open (line 43) | async open(
  method opened (line 103) | get opened() {

FILE: packages/documentsearch-extension/src/index.ts
  constant SEARCHABLE_CLASS (line 12) | const SEARCHABLE_CLASS = 'jp-mod-searchable';

FILE: packages/help-extension/src/index.tsx
  constant RESOURCES (line 22) | const RESOURCES = [

FILE: packages/lab-extension/src/index.ts
  type ISwitcherChoice (line 57) | interface ISwitcherChoice {

FILE: packages/notebook-extension/src/index.ts
  constant KERNEL_STATUS_ERROR_CLASS (line 53) | const KERNEL_STATUS_ERROR_CLASS = 'jp-NotebookKernelStatus-error';
  constant KERNEL_STATUS_WARN_CLASS (line 58) | const KERNEL_STATUS_WARN_CLASS = 'jp-NotebookKernelStatus-warn';
  constant KERNEL_STATUS_INFO_CLASS (line 63) | const KERNEL_STATUS_INFO_CLASS = 'jp-NotebookKernelStatus-info';
  constant KERNEL_STATUS_FADE_OUT_CLASS (line 68) | const KERNEL_STATUS_FADE_OUT_CLASS = 'jp-NotebookKernelStatus-fade';
  constant SCROLLED_OUTPUTS_CLASS (line 73) | const SCROLLED_OUTPUTS_CLASS = 'jp-mod-outputsScrolled';
  constant FULL_WIDTH_NOTEBOOK_CLASS (line 78) | const FULL_WIDTH_NOTEBOOK_CLASS = 'jp-mod-fullwidth';

FILE: packages/tree-extension/src/fileactions.tsx
  class FilesActionButtons (line 19) | class FilesActionButtons {
    method constructor (line 24) | constructor(options: {
    method widgets (line 68) | get widgets(): IterableIterator<ReactWidget> {

FILE: packages/tree-extension/src/index.ts
  constant FILE_BROWSER_FACTORY (line 51) | const FILE_BROWSER_FACTORY = 'FileBrowser';
  constant FILE_BROWSER_PLUGIN_ID (line 56) | const FILE_BROWSER_PLUGIN_ID = '@jupyterlab/filebrowser-extension:browser';
  function onSettingsChanged (line 207) | function onSettingsChanged(settings: ISettingRegistry.ISettings): void {
  method activate (line 252) | activate(app: JupyterFrontEnd, settingRegistry: ISettingRegistry) {

FILE: packages/tree/src/notebook-tree.ts
  class NotebookTreeWidget (line 10) | class NotebookTreeWidget extends TabPanel implements INotebookTree {
    method constructor (line 14) | constructor() {

FILE: packages/tree/src/token.ts
  type INotebookTree (line 7) | interface INotebookTree extends TabPanel {}

FILE: tests/conftest.py
  function mkdir (line 16) | def mkdir(tmp_path, *parts):
  function make_notebook_app (line 31) | def make_notebook_app(  # PLR0913
  function notebookapp (line 130) | def notebookapp(jp_serverapp, make_notebook_app):

FILE: tests/test_app.py
  function notebooks (line 10) | def notebooks(jp_create_notebook, notebookapp):
  function test_notebook_handler (line 21) | async def test_notebook_handler(notebooks, jp_fetch):
  function test_tree_handler (line 46) | async def test_tree_handler(notebooks, notebookapp, jp_fetch):
  function test_console_handler (line 75) | async def test_console_handler(notebookapp, jp_fetch):
  function test_terminals_handler (line 82) | async def test_terminals_handler(notebookapp, jp_fetch):
  function test_edit_handler (line 89) | async def test_edit_handler(notebooks, jp_fetch):
  function test_app (line 96) | async def test_app(notebookapp):

FILE: ui-tests/test/console.spec.ts
  constant NOTEBOOK (line 14) | const NOTEBOOK = 'empty.ipynb';

FILE: ui-tests/test/editor.spec.ts
  constant FILE (line 10) | const FILE = 'environment.yml';

FILE: ui-tests/test/links.spec.ts
  constant NOTEBOOK (line 10) | const NOTEBOOK = 'local_links.ipynb';
  constant SUBFOLDER (line 11) | const SUBFOLDER = 'test';

FILE: ui-tests/test/menus.spec.ts
  constant NOTEBOOK (line 11) | const NOTEBOOK = 'empty.ipynb';
  constant MENU_PATHS (line 13) | const MENU_PATHS = [

FILE: ui-tests/test/notebook.spec.ts
  constant NOTEBOOK (line 12) | const NOTEBOOK = 'example.ipynb';

FILE: ui-tests/test/tree.spec.ts
  constant SUBFOLDER (line 8) | const SUBFOLDER = 'subfolder';

FILE: ui-tests/test/utils.ts
  function runAndAdvance (line 8) | async function runAndAdvance(
  function waitForKernelReady (line 17) | async function waitForKernelReady(page: Page): Promise<void> {
  function hideAddCellButton (line 44) | async function hideAddCellButton(page: Page): Promise<void> {
  function waitForNotebook (line 53) | async function waitForNotebook(
Condensed preview — 270 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,774K chars).
[
  {
    "path": ".devcontainer/Dockerfile",
    "chars": 461,
    "preview": "FROM mcr.microsoft.com/devcontainers/base:jammy\n\nARG PIXI_VERSION=v0.42.1\n\nRUN curl -L -o /usr/local/bin/pixi -fsSL --co"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 604,
    "preview": "{\n  \"name\": \"Jupyter Notebook\",\n  \"build\": {\n    \"dockerfile\": \"Dockerfile\",\n    \"context\": \"..\"\n  },\n  \"forwardPorts\": "
  },
  {
    "path": ".git-blame-ignore-revs",
    "chars": 110,
    "preview": "# Run auto-formatters: https://github.com/jupyter/notebook/pull/6335\na7717d90f128368296fe3434deba5acd6031edab\n"
  },
  {
    "path": ".gitattributes",
    "chars": 122,
    "preview": "# SCM syntax highlighting & preventing 3-way merges\npixi.lock merge=binary linguist-language=YAML linguist-generated=tru"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 3360,
    "preview": "---\nname: \"\\U0001F41B Bug report\"\nabout: Create a report to help us repair something that is currently broken\nlabels: bu"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 1028,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Is this a common issue? See our Docs.\n    url: https://jupyter-note"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 1448,
    "preview": "---\nname: \"\\U0001F680 Feature Request\"\nabout: Suggest a new feature or a change\nlabels: enhancement, status:Needs Triage"
  },
  {
    "path": ".github/actions/build-dist/action.yml",
    "chars": 1038,
    "preview": "name: 'Build Jupyter Notebook'\ndescription: 'Build Jupyter Notebook from source'\nruns:\n  using: 'composite'\n  steps:\n   "
  },
  {
    "path": ".github/answered.yml",
    "chars": 658,
    "preview": "# This action automatically schedules issues to be closed that have been\n# labeled as answered if there is no activity o"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 266,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: 'github-actions'\n    directory: '/'\n    schedule:\n      interval: 'weekly'\n  "
  },
  {
    "path": ".github/jupyterlab-probot.yml",
    "chars": 56,
    "preview": "addBinderLink: false\ntriageLabel: 'status:Needs Triage'\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 884,
    "preview": "<!--\nThanks for contributing to Jupyter Notebook!\nPlease fill out the following items to submit a pull request.\nSee the "
  },
  {
    "path": ".github/workflows/auto_author_assign.yml",
    "chars": 332,
    "preview": "# https://github.com/marketplace/actions/auto-author-assign\nname: 'Auto Author Assign'\n\non:\n  pull_request_target:\n    t"
  },
  {
    "path": ".github/workflows/binder.yml",
    "chars": 360,
    "preview": "name: Binder Badge\non:\n  pull_request_target:\n    types: [opened]\n\npermissions:\n  contents: read\n\njobs:\n  binder:\n    ru"
  },
  {
    "path": ".github/workflows/build.yml",
    "chars": 6380,
    "preview": "name: Build\n\non:\n  push:\n    branches: ['main']\n  pull_request:\n  schedule:\n    - cron: '0 0 * * *'\n\npermissions:\n  cont"
  },
  {
    "path": ".github/workflows/buildutils.yml",
    "chars": 1935,
    "preview": "name: Build Utilities\n\non:\n  push:\n    branches: ['main']\n  pull_request:\n\ndefaults:\n  run:\n    shell: bash -l {0}\n\nconc"
  },
  {
    "path": ".github/workflows/check-release.yml",
    "chars": 875,
    "preview": "name: Check Release\non:\n  push:\n    branches: ['main']\n  pull_request:\n\npermissions:\n  contents: read\n\nconcurrency:\n  gr"
  },
  {
    "path": ".github/workflows/enforce-label.yml",
    "chars": 351,
    "preview": "name: Enforce PR label\n\npermissions:\n  contents: read\n\non:\n  pull_request:\n    types: [labeled, unlabeled, opened, edite"
  },
  {
    "path": ".github/workflows/lock.yml",
    "chars": 499,
    "preview": "name: 'Lock Closed Threads'\n\non:\n  schedule:\n    - cron: '0 0 * * *'\n\npermissions:\n  contents: read\n\njobs:\n  lock:\n    r"
  },
  {
    "path": ".github/workflows/playwright-update.yml",
    "chars": 1685,
    "preview": "name: Update Playwright Snapshots\n\non:\n  issue_comment:\n    types: [created, edited]\n\npermissions:\n  contents: read\n\njob"
  },
  {
    "path": ".github/workflows/prep-release.yml",
    "chars": 1689,
    "preview": "name: \"Step 1: Prep Release\"\non:\n  workflow_dispatch:\n    inputs:\n      version_spec:\n        description: \"New Version "
  },
  {
    "path": ".github/workflows/publish-changelog.yml",
    "chars": 928,
    "preview": "name: \"Publish Changelog\"\non:\n  release:\n    types: [published]\n\n  workflow_dispatch:\n    inputs:\n      branch:\n        "
  },
  {
    "path": ".github/workflows/publish-release.yml",
    "chars": 1857,
    "preview": "name: \"Step 2: Publish Release\"\non:\n  workflow_dispatch:\n    inputs:\n      branch:\n        description: \"The target bran"
  },
  {
    "path": ".github/workflows/ui-tests.yml",
    "chars": 2225,
    "preview": "name: UI Tests\n\non:\n  push:\n    branches: ['main']\n  pull_request:\n\nconcurrency:\n  group: ${{ github.workflow }}-${{ git"
  },
  {
    "path": ".github/workflows/upgrade-jupyterlab-dependencies.yml",
    "chars": 3654,
    "preview": "name: Check for latest JupyterLab releases\n\non:\n  # schedule:\n  #   - cron: 30 17 * * *\n  workflow_dispatch:\n    inputs:"
  },
  {
    "path": ".gitignore",
    "chars": 1945,
    "preview": "*.bundle.*\nlib/\nnode_modules/\n*.egg-info/\n.ipynb_checkpoints\n*.tsbuildinfo\n\n# Created by https://www.gitignore.io/api/py"
  },
  {
    "path": ".pre-commit-config.yaml",
    "chars": 2546,
    "preview": "ci:\n  autoupdate_schedule: monthly\n  autoupdate_commit_msg: 'chore: update pre-commit hooks'\n\nrepos:\n  - repo: https://g"
  },
  {
    "path": ".prettierignore",
    "chars": 149,
    "preview": "node_modules\n.mypy_cache\n.ruff_cache\n**/node_modules\n**/lib\n**/package.json\n**/static\n**/labextension\nbuild\nCHANGELOG.md"
  },
  {
    "path": ".prettierrc",
    "chars": 26,
    "preview": "{\n  \"singleQuote\": true\n}\n"
  },
  {
    "path": ".readthedocs.yaml",
    "chars": 216,
    "preview": "version: 2\nsphinx:\n  configuration: docs/source/conf.py\nbuild:\n  os: ubuntu-22.04\n  tools:\n    python: '3.10'\n    nodejs"
  },
  {
    "path": ".yarnrc.yml",
    "chars": 124,
    "preview": "enableImmutableInstalls: false\nenableInlineBuilds: false\nenableTelemetry: false\nhttpTimeout: 60000\nnodeLinker: node-modu"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 285679,
    "preview": "# Changelog\n\nA summary of changes in the Jupyter notebook. For more detailed\ninformation, see [GitHub](https://github.co"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 9293,
    "preview": "# Contributing to Jupyter Notebook\n\nThanks for contributing to Jupyter Notebook!\n\nMake sure to follow [Project Jupyter's"
  },
  {
    "path": "LICENSE",
    "chars": 1588,
    "preview": "BSD 3-Clause License\n\n- Copyright (c) 2001-2015, IPython Development Team\n- Copyright (c) 2015-, Jupyter Development Tea"
  },
  {
    "path": "README.md",
    "chars": 5946,
    "preview": "# Jupyter Notebook\n\n![Github Actions Status](https://github.com/jupyter/notebook/workflows/Build/badge.svg)\n[![Documenta"
  },
  {
    "path": "RELEASE.md",
    "chars": 738,
    "preview": "# Releasing Jupyter Notebook\n\n## Using `jupyter_releaser`\n\nThe recommended way to make a release is to use [`jupyter_rel"
  },
  {
    "path": "app/index.template.js",
    "chars": 6869,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n// Inspired by: "
  },
  {
    "path": "app/package.json",
    "chars": 19618,
    "preview": "{\n  \"name\": \"@jupyter-notebook/app\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"private\": true,\n  \"scripts\": {\n    \"build\": \"rspac"
  },
  {
    "path": "app/publicpath.js",
    "chars": 1345,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n// We dynamicall"
  },
  {
    "path": "app/rspack.config.js",
    "chars": 8200,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n// Heavily inspi"
  },
  {
    "path": "app/rspack.config.watch.js",
    "chars": 254,
    "preview": "/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\nconst bas"
  },
  {
    "path": "app/rspack.prod.config.js",
    "chars": 839,
    "preview": "/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\nconst mer"
  },
  {
    "path": "app/style.js",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "app/templates/consoles_template.html",
    "chars": 1477,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, init"
  },
  {
    "path": "app/templates/edit_template.html",
    "chars": 1327,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, init"
  },
  {
    "path": "app/templates/error_template.html",
    "chars": 1216,
    "preview": "<!DOCTYPE html>\n<!--\nCopyright (c) Jupyter Development Team.\nDistributed under the terms of the Modified BSD License.\n--"
  },
  {
    "path": "app/templates/notebooks_template.html",
    "chars": 1497,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, init"
  },
  {
    "path": "app/templates/terminals_template.html",
    "chars": 1471,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, init"
  },
  {
    "path": "app/templates/tree_template.html",
    "chars": 1420,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\" />\n    <meta name=\"viewport\" content=\"width=device-width, init"
  },
  {
    "path": "binder/environment.yml",
    "chars": 203,
    "preview": "name: notebook\nchannels:\n  - conda-forge\ndependencies:\n  - ipywidgets=8\n  - jupyterlab=4\n  - jupyterlab-language-pack-fr"
  },
  {
    "path": "binder/example.ipynb",
    "chars": 770907,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Welcome to Jupyter Notebook v7! 👋"
  },
  {
    "path": "binder/postBuild",
    "chars": 83,
    "preview": "#!/bin/bash\nset -euo pipefail\n\npython -m pip install -e \".[dev,test]\"\njlpm develop\n"
  },
  {
    "path": "buildutils/package.json",
    "chars": 1061,
    "preview": "{\n  \"name\": \"@jupyter-notebook/buildutils\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"private\": true,\n  \"description\": \"Jupyter N"
  },
  {
    "path": "buildutils/src/develop.ts",
    "chars": 1479,
    "preview": "/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Tea"
  },
  {
    "path": "buildutils/src/ensure-repo.ts",
    "chars": 1224,
    "preview": "import * as path from 'path';\n\nimport * as fs from 'fs-extra';\n\nimport { writePackageData } from '@jupyterlab/buildutils"
  },
  {
    "path": "buildutils/src/get-latest-lab-version.ts",
    "chars": 2663,
    "preview": "import * as fs from 'fs-extra';\nimport * as semver from 'semver';\n\nfunction convertPythonVersion(version: string): strin"
  },
  {
    "path": "buildutils/src/release-bump.ts",
    "chars": 4318,
    "preview": "/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Tea"
  },
  {
    "path": "buildutils/src/release-patch.ts",
    "chars": 1481,
    "preview": "/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Tea"
  },
  {
    "path": "buildutils/src/upgrade-lab-dependencies.ts",
    "chars": 4935,
    "preview": "import fs from 'fs';\nimport path from 'path';\n\nconst PACKAGE_JSON_PATHS: string[] = [\n  'app/package.json',\n  'buildutil"
  },
  {
    "path": "buildutils/src/utils.ts",
    "chars": 543,
    "preview": "import { run } from '@jupyterlab/buildutils';\n\n/**\n * Get the current version of notebook\n */\nexport function getPythonV"
  },
  {
    "path": "buildutils/tsconfig.json",
    "chars": 175,
    "preview": "{\n  \"extends\": \"../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\",\n    \"module\": \"commo"
  },
  {
    "path": "docs/Makefile",
    "chars": 7740,
    "preview": "# Makefile for Sphinx documentation\n#\n\n# You can set these variables from the command line.\nSPHINXOPTS    =\nSPHINXBUILD "
  },
  {
    "path": "docs/jsdoc_config.json",
    "chars": 301,
    "preview": "{\n  \"markdown\": {\n    \"parser\": \"gfm\"\n  },\n  \"plugins\": [\"plugins/markdown\", \"jsdoc_plugin.js\"],\n  \"source\": {\n    \"incl"
  },
  {
    "path": "docs/jsdoc_plugin.js",
    "chars": 424,
    "preview": "exports.handlers = {\n  newDoclet: function (e) {\n    // e.doclet will refer to the newly created doclet\n    // you can r"
  },
  {
    "path": "docs/make.bat",
    "chars": 7271,
    "preview": "@ECHO OFF\r\n\r\nREM Command file for Sphinx documentation\r\n\r\nif \"%SPHINXBUILD%\" == \"\" (\r\n\tset SPHINXBUILD=sphinx-build\r\n)\r\n"
  },
  {
    "path": "docs/resources/Info.plist.example",
    "chars": 703,
    "preview": "    # Add this into the info.plist file of an application\n    # and the icns icon in Contents/Resources\n    # then move "
  },
  {
    "path": "docs/resources/generate_icons.sh",
    "chars": 921,
    "preview": "#!/bin/bash\nINKSCAPE=inkscape\n\n${INKSCAPE} -z -C --file=ipynb_icon_16x16.svg  --export-png=ipynb_icon_16x16_uncrush.png\n"
  },
  {
    "path": "docs/source/_static/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/source/conf.py",
    "chars": 13174,
    "preview": "# Jupyter Notebook documentation build configuration file, created by\n# sphinx-quickstart on Mon Apr 13 09:51:11 2015.\n#"
  },
  {
    "path": "docs/source/configuration.md",
    "chars": 203,
    "preview": "# Configuration\n\n```{toctree}\n:caption: Configuration\n:maxdepth: 1\n\nconfiguring/config_overview\nSecurity <https://jupyte"
  },
  {
    "path": "docs/source/configuring/config_overview.md",
    "chars": 3203,
    "preview": "(configuration-overview)=\n\n# Configuration Overview\n\nBeyond the default configuration settings, you can configure a rich"
  },
  {
    "path": "docs/source/configuring/interface_customization.md",
    "chars": 2564,
    "preview": "# Interface Customization\n\nMultiple elements in the Notebook interface can be customized via the Settings Editor.\n\n## La"
  },
  {
    "path": "docs/source/configuring/plugins.md",
    "chars": 791,
    "preview": "# Managing plugins\n\nNotebook 7 uses the same extension system as JupyterLab. An extension can provide multiple plugins.\n"
  },
  {
    "path": "docs/source/contributor.md",
    "chars": 112,
    "preview": "# Contributing\n\n```{toctree}\n:caption: Contributor Documentation\n:maxdepth: 1\n\ncontributing\ndevelopment_faq\n```\n"
  },
  {
    "path": "docs/source/custom_css.md",
    "chars": 1723,
    "preview": "# Applying Custom CSS\n\nTo apply custom CSS, you can add a `/custom/custom.css` file in the jupyter `config` directory. Y"
  },
  {
    "path": "docs/source/development_faq.md",
    "chars": 545,
    "preview": "(development-faq)=\n\n# Developer FAQ\n\n1. How do I install a prerelease version such as a beta or release candidate?\n\nYou "
  },
  {
    "path": "docs/source/examples/Notebook/Connecting with the Qt Console.ipynb",
    "chars": 3578,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Connecting to an existing IPython"
  },
  {
    "path": "docs/source/examples/Notebook/Custom Keyboard Shortcuts.ipynb",
    "chars": 1148,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Keyboard Shortcut Customization\"\n"
  },
  {
    "path": "docs/source/examples/Notebook/Importing Notebooks.ipynb",
    "chars": 13552,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Importing Jupyter Notebooks as Mo"
  },
  {
    "path": "docs/source/examples/Notebook/Notebook Basics.ipynb",
    "chars": 9899,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Notebook Basics\"\n   ]\n  },\n  {\n  "
  },
  {
    "path": "docs/source/examples/Notebook/Running Code.ipynb",
    "chars": 52012,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Running Code\"\n   ]\n  },\n  {\n   \"c"
  },
  {
    "path": "docs/source/examples/Notebook/Typesetting Equations.ipynb",
    "chars": 8369,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"The Markdown parser included in the"
  },
  {
    "path": "docs/source/examples/Notebook/What is the Jupyter Notebook.ipynb",
    "chars": 7541,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {\n    \"slideshow\": {\n     \"slide_type\": \"slide\"\n    }\n   },"
  },
  {
    "path": "docs/source/examples/Notebook/Working With Markdown Cells.ipynb",
    "chars": 42817,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# Markdown Cells\"\n   ]\n  },\n  {\n   "
  },
  {
    "path": "docs/source/examples/Notebook/examples_index.rst",
    "chars": 508,
    "preview": "=================\nNotebook Examples\n=================\n\nThe pages in this section are all converted notebook files. You c"
  },
  {
    "path": "docs/source/examples/Notebook/nbpackage/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/source/examples/Notebook/nbpackage/mynotebook.ipynb",
    "chars": 1145,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"# My Notebook\"\n   ]\n  },\n  {\n   \"ce"
  },
  {
    "path": "docs/source/examples/Notebook/nbpackage/nbs/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "docs/source/examples/Notebook/nbpackage/nbs/other.ipynb",
    "chars": 786,
    "preview": "{\n \"cells\": [\n  {\n   \"cell_type\": \"markdown\",\n   \"metadata\": {},\n   \"source\": [\n    \"### Other notebook\\n\",\n    \"\\n\",\n  "
  },
  {
    "path": "docs/source/examples/images/FrontendKernel.graffle/data.plist",
    "chars": 10212,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "docs/source/examples/utils/list_pyfiles.ipy",
    "chars": 183,
    "preview": "# A simple IPython script that provides Notebook links to .py files in the cwd\n\nfrom IPython.display import FileLink, di"
  },
  {
    "path": "docs/source/examples/utils/list_subdirs.ipy",
    "chars": 195,
    "preview": "# A simple IPython script that lists files in all subdirs\n\nfrom IPython.display import FileLinks, display\ndirs =!ls -d *"
  },
  {
    "path": "docs/source/extending/frontend_extensions.md",
    "chars": 1014,
    "preview": "(frontend-extensions)=\n\n# Custom front-end extensions\n\nThis describes the basic steps to write a TypeScript extension fo"
  },
  {
    "path": "docs/source/extending/index.md",
    "chars": 1045,
    "preview": "# Extending the Notebook\n\n```{warning}\nPlease note that the extension system for Notebook 7 is radically different\nfrom "
  },
  {
    "path": "docs/source/index.md",
    "chars": 1719,
    "preview": "# Jupyter Notebook Documentation\n\nWelcome to the **Jupyter Notebook** documentation site. **Jupyter Notebook**\nis a simp"
  },
  {
    "path": "docs/source/ipython_security.asc",
    "chars": 3121,
    "preview": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v2.0.22 (GNU/Linux)\n\nmQINBFMx2LoBEAC9xU8JiKI1VlCJ4PT9zqhU5nChQZ06/bj"
  },
  {
    "path": "docs/source/links.txt",
    "chars": 1954,
    "preview": ".. This (-*- rst -*-) format file contains commonly used link targets\n   and name substitutions.  It may be included in "
  },
  {
    "path": "docs/source/migrate_to_notebook7.md",
    "chars": 3293,
    "preview": "# Migrating\n\n_Updated 2023-05-17_\n\n```{warning}\nVersion 7 of the Jupyter Notebook application might break your\nextension"
  },
  {
    "path": "docs/source/migrating/custom-themes.md",
    "chars": 1811,
    "preview": "# Custom themes in Notebook 7\n\nIn Notebook 7, the way to create custom themes has changed. This means that custom themes"
  },
  {
    "path": "docs/source/migrating/frontend-extensions.md",
    "chars": 1507,
    "preview": "# Frontend Extensions in Notebook 7\n\n```{warning}\nAny extension developed for Notebook \\< 7 or NbClassic will not be\ncom"
  },
  {
    "path": "docs/source/migrating/multiple-interfaces.md",
    "chars": 4049,
    "preview": "# Simultaneous usage of different versions of Notebook 7 and the Classic Notebook UI\n\nWith the release of Notebook 7, th"
  },
  {
    "path": "docs/source/migrating/server-extensions.md",
    "chars": 780,
    "preview": "# Server Extensions in Notebook 7\n\nNotebook 7 is now based on Jupyter Server, which is a new server application that all"
  },
  {
    "path": "docs/source/migrating/server-imports.md",
    "chars": 968,
    "preview": "# Server Imports in Notebook 7\n\nNotebook 7 is now based on Jupyter Server, which lets users run multiple Jupyter fronten"
  },
  {
    "path": "docs/source/notebook.md",
    "chars": 17801,
    "preview": "(htmlnotebook)=\n\n# The Jupyter Notebook\n\n## Introduction\n\n**Jupyter Notebook** is a notebook authoring application, unde"
  },
  {
    "path": "docs/source/notebook_7_features.md",
    "chars": 7129,
    "preview": "# New features in Notebook 7\n\nThis document describes the new features in Notebook 7 as originally mentioned in the rela"
  },
  {
    "path": "docs/source/spelling_wordlist.txt",
    "chars": 608,
    "preview": "AMS\nAPI\napi\nargs\nasync\nauth\nautodetect\nBroullón\nchangelog\nconfig\ncoroutines\ncss\nCSS\ndockerfile\nDockerfile\ndrop-down\nfile"
  },
  {
    "path": "docs/source/template.tpl",
    "chars": 542,
    "preview": "{%- extends 'rst.tpl' -%}\n\n{% macro notebooklink() -%}\n\n`View the original notebook on nbviewer <https://nbviewer.jupyte"
  },
  {
    "path": "docs/source/troubleshooting.md",
    "chars": 11295,
    "preview": "# What to do when things go wrong\n\nFirst, have a look at the common problems listed below. If you can figure it out\nfrom"
  },
  {
    "path": "docs/source/ui_components.md",
    "chars": 1948,
    "preview": "# User interface components\n\nWhen opening bug reports or sending emails to the Jupyter mailing list, it is\nuseful to kno"
  },
  {
    "path": "docs/source/user-documentation.md",
    "chars": 294,
    "preview": "# Documentation\n\nUse this page to navigate to different parts of the user documentation.\n\n```{toctree}\n:maxdepth: 2\n\nnot"
  },
  {
    "path": "eslint.config.mjs",
    "chars": 2196,
    "preview": "import js from '@eslint/js';\nimport { defineConfig } from 'eslint/config';\nimport tseslint from 'typescript-eslint';\nimp"
  },
  {
    "path": "jupyter-config/jupyter_server_config.d/notebook.json",
    "chars": 83,
    "preview": "{\n  \"ServerApp\": {\n    \"jpserver_extensions\": {\n      \"notebook\": true\n    }\n  }\n}\n"
  },
  {
    "path": "jupyter-notebook.desktop",
    "chars": 242,
    "preview": "[Desktop Entry]\nName=Jupyter Notebook\nComment=Run Jupyter Notebook\nExec=jupyter-notebook %f\nTerminal=true\nType=Applicati"
  },
  {
    "path": "jupyter_config.json",
    "chars": 109,
    "preview": "{\n  \"LabApp\": { \"expose_app_in_browser\": true },\n  \"JupyterNotebookApp\": { \"expose_app_in_browser\": true }\n}\n"
  },
  {
    "path": "lerna.json",
    "chars": 92,
    "preview": "{\n  \"$schema\": \"node_modules/lerna/schemas/lerna-schema.json\",\n  \"version\": \"independent\"\n}\n"
  },
  {
    "path": "notebook/__init__.py",
    "chars": 534,
    "preview": "from __future__ import annotations\n\nfrom typing import Any\n\nfrom ._version import __version__, version_info  # noqa: F40"
  },
  {
    "path": "notebook/__main__.py",
    "chars": 129,
    "preview": "\"\"\"CLI entry point for notebook.\"\"\"\n\nimport sys\n\nfrom notebook.app import main\n\nsys.exit(main())  # type:ignore[no-untyp"
  },
  {
    "path": "notebook/_version.py",
    "chars": 988,
    "preview": "\"\"\"Version info for notebook.\"\"\"\n\n# Copyright (c) Jupyter Development Team.\n# Distributed under the terms of the Modifie"
  },
  {
    "path": "notebook/app.py",
    "chars": 13733,
    "preview": "\"\"\"Jupyter notebook application.\"\"\"\n\nfrom __future__ import annotations\n\nimport os\nimport re\nimport typing as t\nfrom pat"
  },
  {
    "path": "notebook/custom/custom.css",
    "chars": 134,
    "preview": "/*\nPlaceholder for custom user CSS\n\nmainly to be overridden in profile/static/custom/custom.css\n\nThis will always be an "
  },
  {
    "path": "nx.json",
    "chars": 786,
    "preview": "{\n  \"$schema\": \"./node_modules/nx/schemas/nx-schema.json\",\n  \"tasksRunnerOptions\": {\n    \"default\": {\n      \"runner\": \"n"
  },
  {
    "path": "package.json",
    "chars": 2557,
    "preview": "{\n  \"name\": \"@jupyter-notebook/root\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"homepage\": \"https://github.com/jupyter"
  },
  {
    "path": "packages/_metapackage/package.json",
    "chars": 1366,
    "preview": "{\n  \"name\": \"@jupyter-notebook/metapackage\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"private\": true,\n  \"description\": \"Jupyter "
  },
  {
    "path": "packages/_metapackage/src/index.ts",
    "chars": 535,
    "preview": "import '@jupyter-notebook/application';\nimport '@jupyter-notebook/application-extension';\nimport '@jupyter-notebook/cons"
  },
  {
    "path": "packages/_metapackage/tsconfig.json",
    "chars": 620,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/application/babel.config.js",
    "chars": 68,
    "preview": "module.exports = require('@jupyterlab/testutils/lib/babel.config');\n"
  },
  {
    "path": "packages/application/jest.config.js",
    "chars": 505,
    "preview": "const func = require('@jupyterlab/testutils/lib/jest-config');\nconst upstream = func(__dirname);\n\nconst esModules = ['li"
  },
  {
    "path": "packages/application/package.json",
    "chars": 2067,
    "preview": "{\n  \"name\": \"@jupyter-notebook/application\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook - Applicat"
  },
  {
    "path": "packages/application/src/app.ts",
    "chars": 6413,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  Jupyt"
  },
  {
    "path": "packages/application/src/index.ts",
    "chars": 240,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nexport * from '."
  },
  {
    "path": "packages/application/src/panelhandler.ts",
    "chars": 10514,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { IComman"
  },
  {
    "path": "packages/application/src/pathopener.ts",
    "chars": 864,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { URLExt "
  },
  {
    "path": "packages/application/src/shell.ts",
    "chars": 16522,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { Jupyter"
  },
  {
    "path": "packages/application/src/tokens.ts",
    "chars": 1556,
    "preview": "import { Token } from '@lumino/coreutils';\n\n/**\n * The INotebookPathOpener interface.\n */\nexport interface INotebookPath"
  },
  {
    "path": "packages/application/style/base.css",
    "chars": 2506,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/application/style/index.css",
    "chars": 492,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/application/style/index.js",
    "chars": 456,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/application/style/sidepanel.css",
    "chars": 1246,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/application/test/shell.spec.ts",
    "chars": 5694,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport { INotebo"
  },
  {
    "path": "packages/application/tsconfig.json",
    "chars": 135,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/application/tsconfig.test.json",
    "chars": 136,
    "preview": "{\n  \"extends\": \"../../tsconfigbase.test\",\n  \"include\": [\"src/**/*\", \"test/**/*\"],\n  \"references\": [\n    {\n      \"path\": "
  },
  {
    "path": "packages/application-extension/package.json",
    "chars": 1947,
    "preview": "{\n  \"name\": \"@jupyter-notebook/application-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook "
  },
  {
    "path": "packages/application-extension/schema/menus.json",
    "chars": 1902,
    "preview": "{\n  \"title\": \"Jupyter Notebook Menu Entries\",\n  \"description\": \"Jupyter Notebook Menu Entries\",\n  \"jupyter.lab.menus\": {"
  },
  {
    "path": "packages/application-extension/schema/pages.json",
    "chars": 473,
    "preview": "{\n  \"title\": \"Jupyter Notebook Pages\",\n  \"description\": \"Jupyter Notebook Pages\",\n  \"jupyter.lab.menus\": {\n    \"main\": ["
  },
  {
    "path": "packages/application-extension/schema/shell.json",
    "chars": 912,
    "preview": "{\n  \"$schema\": \"http://json-schema.org/draft-07/schema\",\n  \"title\": \"Notebook Shell\",\n  \"description\": \"Notebook Shell l"
  },
  {
    "path": "packages/application-extension/schema/shortcuts.json",
    "chars": 503,
    "preview": "{\n  \"jupyter.lab.setting-icon\": \"notebook-ui-components:jupyter\",\n  \"jupyter.lab.setting-icon-label\": \"Jupyter Notebook "
  },
  {
    "path": "packages/application-extension/schema/title.json",
    "chars": 223,
    "preview": "{\n  \"title\": \"Title widget\",\n  \"description\": \"Title widget\",\n  \"jupyter.lab.toolbars\": {\n    \"TopBar\": [{ \"name\": \"widg"
  },
  {
    "path": "packages/application-extension/schema/top.json",
    "chars": 832,
    "preview": "{\n  \"jupyter.lab.setting-icon\": \"notebook-ui-components:jupyter\",\n  \"jupyter.lab.setting-icon-label\": \"Jupyter Notebook "
  },
  {
    "path": "packages/application-extension/schema/zen.json",
    "chars": 386,
    "preview": "{\n  \"title\": \"Jupyter Notebook Zen Mode\",\n  \"description\": \"Jupyter Notebook Zen Mode\",\n  \"jupyter.lab.menus\": {\n    \"ma"
  },
  {
    "path": "packages/application-extension/src/index.ts",
    "chars": 35776,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  ILabS"
  },
  {
    "path": "packages/application-extension/style/base.css",
    "chars": 900,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/application-extension/style/index.css",
    "chars": 140,
    "preview": "@import url('~@jupyter-notebook/application/style/index.css');\n@import url('~@lumino/widgets/style/index.css');\n\n@import"
  },
  {
    "path": "packages/application-extension/style/index.js",
    "chars": 118,
    "preview": "import '@jupyter-notebook/application/style/index.js';\nimport '@lumino/widgets/style/index.js';\n\nimport './base.css';\n"
  },
  {
    "path": "packages/application-extension/tsconfig.json",
    "chars": 247,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/console-extension/package.json",
    "chars": 1686,
    "preview": "{\n  \"name\": \"@jupyter-notebook/console-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook - Co"
  },
  {
    "path": "packages/console-extension/schema/scratchpad-console.json",
    "chars": 836,
    "preview": "{\n  \"title\": \"Jupyter Notebook Scratchpad Console\",\n  \"description\": \"Jupyter Notebook Scratchpad Console\",\n  \"jupyter.l"
  },
  {
    "path": "packages/console-extension/src/index.ts",
    "chars": 7320,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  IRout"
  },
  {
    "path": "packages/console-extension/style/base.css",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "packages/console-extension/style/index.css",
    "chars": 27,
    "preview": "@import url('./base.css');\n"
  },
  {
    "path": "packages/console-extension/style/index.js",
    "chars": 21,
    "preview": "import './base.css';\n"
  },
  {
    "path": "packages/console-extension/tsconfig.json",
    "chars": 201,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/docmanager-extension/package.json",
    "chars": 1544,
    "preview": "{\n  \"name\": \"@jupyter-notebook/docmanager-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook -"
  },
  {
    "path": "packages/docmanager-extension/src/index.ts",
    "chars": 3563,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  Jupyt"
  },
  {
    "path": "packages/docmanager-extension/style/base.css",
    "chars": 33,
    "preview": ".jp-Document {\n  height: 100%;\n}\n"
  },
  {
    "path": "packages/docmanager-extension/style/index.css",
    "chars": 27,
    "preview": "@import url('./base.css');\n"
  },
  {
    "path": "packages/docmanager-extension/style/index.js",
    "chars": 21,
    "preview": "import './base.css';\n"
  },
  {
    "path": "packages/docmanager-extension/tsconfig.json",
    "chars": 201,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/documentsearch-extension/package.json",
    "chars": 1399,
    "preview": "{\n  \"name\": \"@jupyter-notebook/documentsearch-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebo"
  },
  {
    "path": "packages/documentsearch-extension/src/index.ts",
    "chars": 1944,
    "preview": "import {\n  JupyterFrontEnd,\n  JupyterFrontEndPlugin,\n} from '@jupyterlab/application';\n\nimport { ISearchProviderRegistry"
  },
  {
    "path": "packages/documentsearch-extension/style/base.css",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "packages/documentsearch-extension/style/index.css",
    "chars": 27,
    "preview": "@import url('./base.css');\n"
  },
  {
    "path": "packages/documentsearch-extension/style/index.js",
    "chars": 21,
    "preview": "import './base.css';\n"
  },
  {
    "path": "packages/documentsearch-extension/tsconfig.json",
    "chars": 135,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/help-extension/package.json",
    "chars": 1488,
    "preview": "{\n  \"name\": \"@jupyter-notebook/help-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook - Help "
  },
  {
    "path": "packages/help-extension/schema/open.json",
    "chars": 472,
    "preview": "{\n  \"title\": \"Jupyter Notebook Help Menu Entries\",\n  \"description\": \"Jupyter Notebook Help Menu Entries\",\n  \"jupyter.lab"
  },
  {
    "path": "packages/help-extension/src/index.tsx",
    "chars": 4490,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  Jupyt"
  },
  {
    "path": "packages/help-extension/style/base.css",
    "chars": 1055,
    "preview": ".jp-AboutNotebook .jp-Dialog-header {\n  justify-content: center;\n  padding: 0;\n}\n\n.jp-AboutNotebook-header {\n  display: "
  },
  {
    "path": "packages/help-extension/style/index.css",
    "chars": 27,
    "preview": "@import url('./base.css');\n"
  },
  {
    "path": "packages/help-extension/style/index.js",
    "chars": 21,
    "preview": "import './base.css';\n"
  },
  {
    "path": "packages/help-extension/tsconfig.json",
    "chars": 203,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/lab-extension/package.json",
    "chars": 2830,
    "preview": "{\n  \"name\": \"@jupyter-notebook/lab-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook - Lab Ex"
  },
  {
    "path": "packages/lab-extension/schema/interface-switcher.json",
    "chars": 891,
    "preview": "{\n  \"title\": \"Interface Switcher\",\n  \"description\": \"Interface Switcher settings.\",\n  \"jupyter.lab.toolbars\": {\n    \"Not"
  },
  {
    "path": "packages/lab-extension/schema/launch-tree.json",
    "chars": 375,
    "preview": "{\n  \"title\": \"Launch Shortcuts\",\n  \"description\": \"Launch Shortcuts.\",\n  \"jupyter.lab.menus\": {\n    \"main\": [\n      {\n  "
  },
  {
    "path": "packages/lab-extension/src/index.ts",
    "chars": 7089,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  ILabS"
  },
  {
    "path": "packages/lab-extension/style/base.css",
    "chars": 663,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/lab-extension/style/index.css",
    "chars": 27,
    "preview": "@import url('./base.css');\n"
  },
  {
    "path": "packages/lab-extension/style/index.js",
    "chars": 21,
    "preview": "import './base.css';\n"
  },
  {
    "path": "packages/lab-extension/tsconfig.json",
    "chars": 201,
    "preview": "{\n  \"extends\": \"../../tsconfigbase\",\n  \"compilerOptions\": {\n    \"outDir\": \"lib\",\n    \"rootDir\": \"src\"\n  },\n  \"include\": "
  },
  {
    "path": "packages/notebook-extension/package.json",
    "chars": 1825,
    "preview": "{\n  \"name\": \"@jupyter-notebook/notebook-extension\",\n  \"version\": \"7.6.0-alpha.4\",\n  \"description\": \"Jupyter Notebook - N"
  },
  {
    "path": "packages/notebook-extension/schema/checkpoints.json",
    "chars": 522,
    "preview": "{\n  \"title\": \"Notebook checkpoint indicator\",\n  \"description\": \"Notebook checkpoint indicator\",\n  \"jupyter.lab.toolbars\""
  },
  {
    "path": "packages/notebook-extension/schema/edit-notebook-metadata.json",
    "chars": 735,
    "preview": "{\n  \"title\": \"Jupyter Notebook Menu Entries\",\n  \"description\": \"Jupyter Notebook Menu Entries\",\n  \"jupyter.lab.menus\": {"
  },
  {
    "path": "packages/notebook-extension/schema/full-width-notebook.json",
    "chars": 634,
    "preview": "{\n  \"title\": \"Jupyter Notebook Full Width Notebook\",\n  \"description\": \"Jupyter Notebook Notebook With settings\",\n  \"jupy"
  },
  {
    "path": "packages/notebook-extension/schema/kernel-logo.json",
    "chars": 237,
    "preview": "{\n  \"title\": \"Kernel logo\",\n  \"description\": \"Kernel logo in the top area\",\n  \"jupyter.lab.toolbars\": {\n    \"TopBar\": [{"
  },
  {
    "path": "packages/notebook-extension/schema/menu-override.json",
    "chars": 657,
    "preview": "{\n  \"title\": \"Menu override\",\n  \"description\": \"Override some menu items\",\n  \"jupyter.lab.menus\": {\n    \"main\": [\n      "
  },
  {
    "path": "packages/notebook-extension/schema/scroll-output.json",
    "chars": 517,
    "preview": "{\n  \"jupyter.lab.setting-icon\": \"notebook-ui-components:jupyter\",\n  \"jupyter.lab.setting-icon-label\": \"Jupyter Notebook "
  },
  {
    "path": "packages/notebook-extension/src/index.ts",
    "chars": 25930,
    "preview": "// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\nimport {\n  Jupyt"
  },
  {
    "path": "packages/notebook-extension/src/trusted.tsx",
    "chars": 2565,
    "preview": "import { ReactWidget } from '@jupyterlab/apputils';\n\nimport { Notebook, NotebookActions } from '@jupyterlab/notebook';\n\n"
  },
  {
    "path": "packages/notebook-extension/style/base.css",
    "chars": 6631,
    "preview": "/*-----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team"
  },
  {
    "path": "packages/notebook-extension/style/index.css",
    "chars": 27,
    "preview": "@import url('./base.css');\n"
  },
  {
    "path": "packages/notebook-extension/style/index.js",
    "chars": 21,
    "preview": "import './base.css';\n"
  }
]

// ... and 70 more files (download for full content)

About this extraction

This page contains the full source code of the jupyter/notebook GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 270 files (1.6 MB), approximately 793.8k tokens, and a symbol index with 196 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!