Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package jupyter-jupyterlab-server for 
openSUSE:Factory checked in at 2022-10-27 13:54:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jupyter-jupyterlab-server (Old)
 and      /work/SRC/openSUSE:Factory/.jupyter-jupyterlab-server.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "jupyter-jupyterlab-server"

Thu Oct 27 13:54:13 2022 rev:12 rq:1031373 version:2.16.1

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/jupyter-jupyterlab-server/jupyter-jupyterlab-server.changes
      2022-10-14 15:42:51.779950831 +0200
+++ 
/work/SRC/openSUSE:Factory/.jupyter-jupyterlab-server.new.2275/jupyter-jupyterlab-server.changes
    2022-10-27 13:54:52.072780379 +0200
@@ -1,0 +2,13 @@
+Wed Oct 26 15:46:16 UTC 2022 - Ben Greiner <[email protected]>
+
+- Update to 2.16.1
+  * Prep for using releaser #327 (@blink1073)
+  * Maintenance cleanup #325 (@blink1073)
+  * Fix workflows and add new ones #318 (@fcollonval)
+- Release 2.16.0
+  * raise jupyter_server pin to include 2.x #302 (@Zsailer)
+  * CI Cleanup #316 (@blink1073)
+  * Ignore warnings in prerelease test #312 (@blink1073)
+- Drop jupyterlab-server-fix-testing.patch
+
+-------------------------------------------------------------------

Old:
----
  jupyterlab-server-fix-testing.patch
  jupyterlab_server-2.15.2.tar.gz

New:
----
  jupyterlab_server-2.16.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ jupyter-jupyterlab-server.spec ++++++
--- /var/tmp/diff_new_pack.10QQOK/_old  2022-10-27 13:54:52.628783216 +0200
+++ /var/tmp/diff_new_pack.10QQOK/_new  2022-10-27 13:54:52.636783257 +0200
@@ -19,23 +19,21 @@
 %define oldpython python
 %bcond_with openapitests
 Name:           jupyter-jupyterlab-server
-Version:        2.15.2
+Version:        2.16.1
 Release:        0
 Summary:        Server components for JupyterLab and JupyterLab-like 
applications
 License:        BSD-3-Clause
 URL:            https://github.com/jupyterlab/jupyterlab_server
 Source:         
https://files.pythonhosted.org/packages/source/j/jupyterlab_server/jupyterlab_server-%{version}.tar.gz
 Source100:      jupyter-jupyterlab-server-rpmlintrc
-# PATCH-FIX-OPENSUSE jupyterlab-server-fix-testing.patch [email protected] -- 
remove color, failing deprecation warnings, and used nbconvert vendored mistune
-Patch0:         jupyterlab-server-fix-testing.patch
 BuildRequires:  %{python_module Babel}
 BuildRequires:  %{python_module Jinja2 >= 3.0.3}
 BuildRequires:  %{python_module base >= 3.7}
-BuildRequires:  %{python_module hatchling >= 0.25}
-BuildRequires:  %{python_module importlib-metadata >= 3.6 if %python-base < 
3.10}
+BuildRequires:  %{python_module hatchling >= 1.5}
+BuildRequires:  %{python_module importlib-metadata >= 4.8.3 if %python-base < 
3.10}
 BuildRequires:  %{python_module json5}
 BuildRequires:  %{python_module jsonschema >= 3.0.1}
-BuildRequires:  %{python_module jupyter_server >= 1.4}
+BuildRequires:  %{python_module jupyter_server >= 1.4 with 
%python-jupyter_server < 3}
 BuildRequires:  %{python_module packaging > 0.9}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module requests}
@@ -47,9 +45,9 @@
 Requires:       python-jsonschema >= 3.0.1
 Requires:       python-packaging
 Requires:       python-requests
-Requires:       (python-jupyter-server >= 1.8 with python-jupyter-server < 2)
+Requires:       (python-jupyter-server >= 1.8 with python-jupyter-server < 3)
 %if 0%{?python_version_nodots} < 310
-Requires:       python-importlib-metadata >= 3.6
+Requires:       python-importlib-metadata >= 4.8.3
 %endif
 Provides:       python-jupyterlab-server = %{version}-%{release}
 Obsoletes:      python-jupyterlab-server < %{version}-%{release}
@@ -84,7 +82,7 @@
 BuildRequires:  %{python_module openapi-core >= 0.14.2 with 
%python-openapi-core < 0.15}
 BuildRequires:  %{python_module openapi-spec-validator < 0.5}
 %endif
-BuildRequires:  %{python_module pytest >= 5.3.2}
+BuildRequires:  %{python_module pytest >= 7}
 BuildRequires:  %{python_module pytest-console-scripts}
 BuildRequires:  %{python_module ruamel.yaml}
 BuildRequires:  %{python_module strict-rfc3339}
@@ -130,6 +128,7 @@
 
 %prep
 %autosetup -p1 -n jupyterlab_server-%{version}
+sed -i 's/--color=yes//' pyproject.toml
 
 %build
 %pyproject_wheel

++++++ jupyterlab_server-2.15.2.tar.gz -> jupyterlab_server-2.16.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/.flake8 
new/jupyterlab_server-2.16.1/.flake8
--- old/jupyterlab_server-2.15.2/.flake8        2020-02-02 01:00:00.000000000 
+0100
+++ new/jupyterlab_server-2.16.1/.flake8        1970-01-01 01:00:00.000000000 
+0100
@@ -1,17 +0,0 @@
-[flake8]
-ignore = E501, W503, E402
-builtins = c, get_config
-exclude =
-    .cache,
-    .github,
-    docs,
-    setup.py
-enable-extensions = G
-extend-ignore =
-    G001, G002, G004, G200, G201, G202,
-    # black adds spaces around ':'
-    E203,
-per-file-ignores =
-    # B011: Do not call assert False since python -O removes these calls
-    # F841 local variable 'foo' is assigned to but never used
-    tests/*: B011, F841
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/.github/codeql/codeql-config.yml 
new/jupyterlab_server-2.16.1/.github/codeql/codeql-config.yml
--- old/jupyterlab_server-2.15.2/.github/codeql/codeql-config.yml       
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/codeql/codeql-config.yml       
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,7 @@
+name: "My CodeQL config"
+
+queries:
+  - uses: security-and-quality
+
+paths-ignore:
+  - docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/.github/dependabot.yml 
new/jupyterlab_server-2.16.1/.github/dependabot.yml
--- old/jupyterlab_server-2.15.2/.github/dependabot.yml 1970-01-01 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/dependabot.yml 2020-02-02 
01:00:00.000000000 +0100
@@ -0,0 +1,8 @@
+version: 2
+updates:
+  # Set update schedule for GitHub Actions
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      # Check for updates to GitHub Actions every weekday
+      interval: "weekly"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/.github/workflows/codeql-analysis.yml 
new/jupyterlab_server-2.16.1/.github/workflows/codeql-analysis.yml
--- old/jupyterlab_server-2.15.2/.github/workflows/codeql-analysis.yml  
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/workflows/codeql-analysis.yml  
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,72 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+name: "CodeQL"
+
+on:
+  push:
+    branches: [main]
+  pull_request:
+    # The branches below must be a subset of the branches above
+    branches: [main]
+  schedule:
+    - cron: '0 8 * * 3'
+
+permissions:
+  security-events:
+    write
+
+jobs:
+  analyze:
+    name: Analyze
+    runs-on: ubuntu-20.04
+
+    strategy:
+      fail-fast: false
+      matrix:
+        # Override automatic language detection by changing the below list
+        # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 
'python']
+        language: ['python']
+        # Learn more...
+        # 
https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v3
+      with:
+        # We must fetch at least the immediate parents so that if this is
+        # a pull request then we can checkout the head.
+        fetch-depth: 2
+
+    # Initializes the CodeQL tools for scanning.
+    - name: Initialize CodeQL
+      uses: github/codeql-action/init@v2
+      with:
+        languages: ${{ matrix.language }}
+        config-file: ./.github/codeql/codeql-config.yml
+
+        # If you wish to specify custom queries, you can do so here or in a 
config file.
+        # By default, queries listed here will override any specified in a 
config file.
+        # Prefix the list here with "+" to use these queries and those in the 
config file.
+        # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+    # Autobuild attempts to build any compiled languages  (C/C++, C#, or Java).
+    # If this step fails, then you should remove it and run the build manually 
(see below)
+    - name: Autobuild
+      uses: github/codeql-action/autobuild@v2
+
+    # ?????? Command-line programs to run using the OS shell.
+    # ???? https://git.io/JvXDl
+
+    # ?????? If the Autobuild fails above, remove it and uncomment the 
following three lines
+    #    and modify them (or add more) to build your code if your project
+    #    uses a compiled language
+
+    #- run: |
+    #   make bootstrap
+    #   make release
+
+    - name: Perform CodeQL Analysis
+      uses: github/codeql-action/analyze@v2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/.github/workflows/downstream.yml 
new/jupyterlab_server-2.16.1/.github/workflows/downstream.yml
--- old/jupyterlab_server-2.15.2/.github/workflows/downstream.yml       
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/workflows/downstream.yml       
2020-02-02 01:00:00.000000000 +0100
@@ -12,7 +12,7 @@
 
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
 
       - name: Base Setup
         uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/.github/workflows/fix-license-header.yml 
new/jupyterlab_server-2.16.1/.github/workflows/fix-license-header.yml
--- old/jupyterlab_server-2.15.2/.github/workflows/fix-license-header.yml       
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/workflows/fix-license-header.yml       
2020-02-02 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
 name: Fix License Headers
 
 on:
-  pull_request:
+  pull_request_target:
 
 permissions:
   contents: write
@@ -31,7 +31,7 @@
 
       - name: Get modified files in the staging directory
         id: changed-files
-        uses: tj-actions/changed-files@v24
+        uses: tj-actions/changed-files@v32
 
       - name: Apply Changes
         if: steps.changed-files.outputs.any_changed == 'true'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/.github/workflows/prep-release.yml 
new/jupyterlab_server-2.16.1/.github/workflows/prep-release.yml
--- old/jupyterlab_server-2.15.2/.github/workflows/prep-release.yml     
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/workflows/prep-release.yml     
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,42 @@
+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
+      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
+    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.ADMIN_GITHUB_TOKEN }}
+          version_spec: ${{ github.event.inputs.version_spec }}
+          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 }}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/.github/workflows/publish-release.yml 
new/jupyterlab_server-2.16.1/.github/workflows/publish-release.yml
--- old/jupyterlab_server-2.15.2/.github/workflows/publish-release.yml  
1970-01-01 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/workflows/publish-release.yml  
2020-02-02 01:00:00.000000000 +0100
@@ -0,0 +1,54 @@
+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
+    steps:
+      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+
+      - name: Populate Release
+        id: populate-release
+        uses: 
jupyter-server/jupyter_releaser/.github/actions/populate-release@v2
+        with:
+          token: ${{ secrets.ADMIN_GITHUB_TOKEN }}
+          target: ${{ github.event.inputs.target }}
+          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:
+          PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
+          PYPI_TOKEN_MAP: ${{ secrets.PYPI_TOKEN_MAP }}
+          TWINE_USERNAME: __token__
+          NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+        uses: 
jupyter-server/jupyter-releaser/.github/actions/finalize-release@v2
+        with:
+          token: ${{ secrets.ADMIN_GITHUB_TOKEN }}
+          target: ${{ github.event.inputs.target }}
+          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 }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/.github/workflows/tests.yml 
new/jupyterlab_server-2.16.1/.github/workflows/tests.yml
--- old/jupyterlab_server-2.15.2/.github/workflows/tests.yml    2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.github/workflows/tests.yml    2020-02-02 
01:00:00.000000000 +0100
@@ -7,6 +7,10 @@
   schedule:
     - cron: "0 8 * * *"
 
+defaults:
+  run:
+    shell: bash -eux {0}
+
 jobs:
   test:
     name: ${{ matrix.os }} ${{ matrix.python-version }}
@@ -18,17 +22,19 @@
       fail-fast: false
       matrix:
         os: [ubuntu-latest, windows-latest, macos-latest]
-        python_version: ["3.7", "3.10"]
+        python-version: ["3.7", "3.10"]
         include:
           - os: windows-latest
             python-version: "3.9"
           - os: ubuntu-latest
             python-version: "pypy-3.7"
+          - os: ubuntu-latest
+            python-version: "3.11-dev"
           - os: macos-latest
             python-version: "3.8"
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - name: Base Setup
         uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
       - name: Install project dependencies
@@ -37,88 +43,53 @@
       - name: Run the tests
         if: ${{ !startsWith(matrix.python-version, 'pypy') && 
!startsWith(matrix.os, 'windows') }}
         run: |
-          args="-vv -raXs --cov jupyterlab_server --cov-branch --cov-report 
term-missing:skip-covered --durations 10 --color=yes --cov-fail-under 65"
-          python -m pytest $args || python -m pytest $args --lf
+          hatch run cov:test || hatch run test:test --lf
       - name: Run the tests on pypy and windows
-        if: ${{ startsWith(matrix.python_version, 'pypy') || 
startsWith(matrix.os, 'windows') }}
+        if: ${{ startsWith(matrix.python-version, 'pypy') || 
startsWith(matrix.os, 'windows') }}
         run: |
-          python -m pytest -vv -raXs || python -m pytest -vv -raXs --lf
+          hatch run test:test || hatch run test:test --lf
       - name: Upload coverage
         run: |
+          pip install codecov
           codecov
 
-  pre-commit:
-    name: Run pre-commit hook
+  pre_commit:
     runs-on: ubuntu-latest
     timeout-minutes: 5
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
-      - name: Run pre-commit
-        uses: pre-commit/[email protected]
-      - name: Help message if pre-commit fail
-        if: ${{ failure() }}
-        run: |
-          echo "You can install pre-commit hooks to automatically run 
formatting"
-          echo "on each commit with:"
-          echo "    pre-commit install"
-          echo "or you can run by hand on staged files with"
-          echo "    pre-commit run"
-          echo "or after-the-fact on already committed files with"
-          echo "    pre-commit run --all-files --hook-stage=manual"
+      - uses: jupyterlab/maintainer-tools/.github/actions/pre-commit@v1
 
   docs:
-    name: Docs Build
     runs-on: ubuntu-latest
     steps:
-      - name: Checkout
-        uses: actions/checkout@v2
-      - name: Base Setup
-        uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
-      - uses: conda-incubator/setup-miniconda@v2
-        with:
-          auto-update-conda: true
-          activate-environment: jupyterlab_server_documentation
-          environment-file: docs/environment.yml
-      - name: Install lib
-        shell: bash -l {0}
-        run: |
-          pip install .
-      - name: Build docs
-        shell: bash -l {0}
-        run: |
-          pushd docs
-          make html SPHINXOPTS="-W"
+      - uses: actions/checkout@v3
+      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+      - run: hatch run docs:build
 
   check_release:
     runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        group: [check_release, link_check]
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - name: Base Setup
         uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
       - name: Install Dependencies
         run: |
           pip install -e .
       - name: Check Release
-        if: ${{ matrix.group == 'check_release' }}
-        uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v1
+        uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2
         with:
           token: ${{ secrets.GITHUB_TOKEN }}
-      - name: Run Link Check
-        if: ${{ matrix.group == 'link_check' }}
-        uses: jupyter-server/jupyter_releaser/.github/actions/check-links@v1
 
   test_miniumum_verisons:
     name: Test Minimum Versions
     timeout-minutes: 20
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Base Setup
         uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
         with:
@@ -126,7 +97,7 @@
       - name: Install miniumum versions
         uses: jupyterlab/maintainer-tools/.github/actions/install-minimums@v1
       - name: Run the unit tests
-        run: python -m pytest -vv -raXs || python -m pytest -vv -raXs --lf
+        run: pytest -vv -W default || pytest -vv -W default --lf
 
   test_prereleases:
     name: Test Prereleases
@@ -134,7 +105,7 @@
     timeout-minutes: 20
     steps:
       - name: Checkout
-        uses: actions/checkout@v2
+        uses: actions/checkout@v3
       - name: Base Setup
         uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
       - name: Install the Python dependencies
@@ -145,24 +116,16 @@
           pip freeze
           pip check
       - name: Run the tests
-        run: python -m pytest -vv -raXs || python -m pytest -vv -raXs --lf
+        run: pytest -W default || pytest -W default --lf
 
   make_sdist:
     name: Make SDist
     runs-on: ubuntu-latest
-    timeout-minutes: 20
+    timeout-minutes: 10
     steps:
       - uses: actions/checkout@v2
-      - name: Base Setup
-        uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
-      - name: Build SDist
-        run: |
-          pip install build
-          python -m build --sdist
-      - uses: actions/upload-artifact@v2
-        with:
-          name: "sdist"
-          path: dist/*.tar.gz
+      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+      - uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1
 
   test_sdist:
     runs-on: ubuntu-latest
@@ -170,21 +133,37 @@
     name: Install from SDist and Test
     timeout-minutes: 20
     steps:
-      - name: Base Setup
-        uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
-      - name: Download sdist
-        uses: actions/download-artifact@v2
-      - name: Install From SDist
-        run: |
-          set -ex
-          cd sdist
-          mkdir test
-          tar --strip-components=1 -zxvf *.tar.gz -C ./test
-          cd test
-          pip install .[test]
-      - name: Run Test
-        run: |
-          cd sdist/test
-          python -m pytest -vv -raXs || python -m pytest -vv -raXs --lf
+      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+      - uses: jupyterlab/maintainer-tools/.github/actions/test-sdist@v1
+        with:
+          package_spec: .
+          test_command: hatch run test:test || hatch run test:test --lf
+      - run:
           # Ensure that the pytest plugin is importable.
           python -c "from jupyterlab_server import pytest_plugin"
+
+  check_links:
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+    steps:
+      - uses: actions/checkout@v3
+      - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
+      - uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1
+
+  tests_check: # This job does nothing and is only used for the branch 
protection
+    if: always()
+    needs:
+      - test
+      - pre_commit
+      - check_links
+      - docs
+      - check_release
+      - test_miniumum_verisons
+      - test_prereleases
+      - test_sdist
+    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) }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/.pre-commit-config.yaml 
new/jupyterlab_server-2.16.1/.pre-commit-config.yaml
--- old/jupyterlab_server-2.15.2/.pre-commit-config.yaml        2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.pre-commit-config.yaml        2020-02-02 
01:00:00.000000000 +0100
@@ -16,7 +16,7 @@
       - id: trailing-whitespace
 
   - repo: https://github.com/psf/black
-    rev: 22.8.0
+    rev: 22.10.0
     hooks:
       - id: black
         args: ["--line-length", "100"]
@@ -28,14 +28,19 @@
         files: \.py$
         args: [--profile=black]
 
-  - repo: https://github.com/pre-commit/mirrors-prettier
-    rev: v2.7.1
+  - repo: https://github.com/abravalheri/validate-pyproject
+    rev: v0.10.1
     hooks:
-      - id: prettier
-        exclude: "jupyterlab_server/templates/.*.html"
+      - id: validate-pyproject
+        stages: [manual]
+
+  - repo: https://github.com/executablebooks/mdformat
+    rev: 0.7.16
+    hooks:
+      - id: mdformat
 
   - repo: https://github.com/asottile/pyupgrade
-    rev: v2.37.3
+    rev: v3.1.0
     hooks:
       - id: pyupgrade
         args: [--py37-plus]
@@ -47,20 +52,17 @@
         args: [--max-line-length=200]
         stages: [manual]
 
-  - repo: https://github.com/pycqa/flake8
-    rev: 5.0.4
+  - repo: https://github.com/john-hen/Flake8-pyproject
+    rev: 1.1.0.post0
     hooks:
-      - id: flake8
+      - id: Flake8-pyproject
+        alias: flake8
         additional_dependencies:
-          [
-            "flake8-bugbear==20.1.4",
-            "flake8-logging-format==0.6.0",
-            "flake8-implicit-str-concat==0.2.0",
-          ]
+          ["flake8-bugbear==22.6.22", "flake8-implicit-str-concat==0.2.0"]
         stages: [manual]
 
   - repo: https://github.com/sirosen/check-jsonschema
-    rev: 0.18.2
+    rev: 0.18.3
     hooks:
       - id: check-jsonschema
         name: "Check GitHub Workflows"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/.readthedocs.yaml 
new/jupyterlab_server-2.16.1/.readthedocs.yaml
--- old/jupyterlab_server-2.15.2/.readthedocs.yaml      1970-01-01 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/.readthedocs.yaml      2020-02-02 
01:00:00.000000000 +0100
@@ -0,0 +1,11 @@
+version: 2
+sphinx:
+  configuration: docs/source/conf.py
+python:
+  version: 3.8
+  install:
+    # install itself with pip install .
+    - method: pip
+      path: .
+      extra_requirements:
+        - docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/CHANGELOG.md 
new/jupyterlab_server-2.16.1/CHANGELOG.md
--- old/jupyterlab_server-2.15.2/CHANGELOG.md   2020-02-02 01:00:00.000000000 
+0100
+++ new/jupyterlab_server-2.16.1/CHANGELOG.md   2020-02-02 01:00:00.000000000 
+0100
@@ -1,27 +1,68 @@
----
-github_url: 
"https://github.com/jupyterlab/jupyterlab_server/blob/master/CHANGELOG.md";
----
-
 # Change Log
 
 <!-- <START NEW CHANGELOG ENTRY> -->
 
-## 2.15.2
+## 2.16.1
 
-([Full 
Changelog](https://github.com/jupyterlab/jupyterlab_server/compare/v2.15.1...256028a107fd5cbc52304366074e175d3a43796c))
+([Full 
Changelog](https://github.com/jupyterlab/jupyterlab_server/compare/v2.16.0...11e0bb82dbaeb0cb45d16e18d80220003a15d459))
 
-### Bugs fixed
+### Maintenance and upkeep improvements
 
-- Pin openapi_core dependency 
[#308](https://github.com/jupyterlab/jupyterlab_server/pull/308) 
([@blink1073](https://github.com/blink1073))
+- Prep for using releaser 
[#327](https://github.com/jupyterlab/jupyterlab_server/pull/327) 
([@blink1073](https://github.com/blink1073))
+- Maintenance cleanup 
[#325](https://github.com/jupyterlab/jupyterlab_server/pull/325) 
([@blink1073](https://github.com/blink1073))
+- Bump actions/upload-artifact from 2 to 3 
[#322](https://github.com/jupyterlab/jupyterlab_server/pull/322) 
([@dependabot](https://github.com/dependabot))
+- Bump actions/download-artifact from 2 to 3 
[#321](https://github.com/jupyterlab/jupyterlab_server/pull/321) 
([@dependabot](https://github.com/dependabot))
+- Bump actions/checkout from 2 to 3 
[#320](https://github.com/jupyterlab/jupyterlab_server/pull/320) 
([@dependabot](https://github.com/dependabot))
+- Bump tj-actions/changed-files from 24 to 32 
[#319](https://github.com/jupyterlab/jupyterlab_server/pull/319) 
([@dependabot](https://github.com/dependabot))
+- Fix workflows and add new ones 
[#318](https://github.com/jupyterlab/jupyterlab_server/pull/318) 
([@fcollonval](https://github.com/fcollonval))
 
 ### Contributors to this release
 
-([GitHub contributors page for this 
release](https://github.com/jupyterlab/jupyterlab_server/graphs/contributors?from=2022-08-23&to=2022-09-26&type=c))
+([GitHub contributors page for this 
release](https://github.com/jupyterlab/jupyterlab_server/graphs/contributors?from=2022-10-13&to=2022-10-19&type=c))
 
-[@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Ablink1073+updated%3A2022-08-23..2022-09-26&type=Issues)
 | 
[@codecov-commenter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Acodecov-commenter+updated%3A2022-08-23..2022-09-26&type=Issues)
+[@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Ablink1073+updated%3A2022-10-13..2022-10-19&type=Issues)
 | 
[@codecov-commenter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Acodecov-commenter+updated%3A2022-10-13..2022-10-19&type=Issues)
 | 
[@dependabot](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Adependabot+updated%3A2022-10-13..2022-10-19&type=Issues)
 | 
[@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Afcollonval+updated%3A2022-10-13..2022-10-19&type=Issues)
 | 
[@pre-commit-ci](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Apre-commit-ci+updated%3A2022-10-13..2022-10-19&type=Issues)
 
 <!-- <END NEW CHANGELOG ENTRY> -->
 
+## 2.16.0
+
+([Full 
Changelog](https://github.com/jupyterlab/jupyterlab_server/compare/v2.15.1...c278cb9bbda81a2730d1198f0a5fc708a18506d9))
+
+### Enhancements made
+
+- raise jupyter_server pin to include 2.x 
[#302](https://github.com/jupyterlab/jupyterlab_server/pull/302) 
([@Zsailer](https://github.com/Zsailer))
+
+### Maintenance and upkeep improvements
+
+- CI Cleanup [#316](https://github.com/jupyterlab/jupyterlab_server/pull/316) 
([@blink1073](https://github.com/blink1073))
+- Ignore warnings in prerelease test 
[#312](https://github.com/jupyterlab/jupyterlab_server/pull/312) 
([@blink1073](https://github.com/blink1073))
+- Clean up pyproject and ci 
[#306](https://github.com/jupyterlab/jupyterlab_server/pull/306) 
([@blink1073](https://github.com/blink1073))
+
+### Contributors to this release
+
+([GitHub contributors page for this 
release](https://github.com/jupyterlab/jupyterlab_server/graphs/contributors?from=2022-08-23&to=2022-10-13&type=c))
+
+[@blink1073](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Ablink1073+updated%3A2022-08-23..2022-10-13&type=Issues)
 | 
[@codecov-commenter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Acodecov-commenter+updated%3A2022-08-23..2022-10-13&type=Issues)
 | 
[@fcollonval](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Afcollonval+updated%3A2022-08-23..2022-10-13&type=Issues)
 | 
[@pre-commit-ci](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Apre-commit-ci+updated%3A2022-08-23..2022-10-13&type=Issues)
 | 
[@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3AZsailer+updated%3A2022-08-23..2022-10-13&type=Issues)
+
+## 2.16.0rc0
+
+([Full 
Changelog](https://github.com/jupyterlab/jupyterlab_server/compare/v2.15.1...7d83684f3f94724c977692c2785d5ad81fac231e))
+
+### Enhancements made
+
+- raise jupyter_server pin to include 2.x 
[#302](https://github.com/jupyterlab/jupyterlab_server/pull/302) 
([@Zsailer](https://github.com/Zsailer))
+
+### Maintenance and upkeep improvements
+
+- \[pre-commit.ci\] pre-commit autoupdate 
[#301](https://github.com/jupyterlab/jupyterlab_server/pull/301) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#300](https://github.com/jupyterlab/jupyterlab_server/pull/300) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+
+### Contributors to this release
+
+([GitHub contributors page for this 
release](https://github.com/jupyterlab/jupyterlab_server/graphs/contributors?from=2022-08-23&to=2022-09-09&type=c))
+
+[@codecov-commenter](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Acodecov-commenter+updated%3A2022-08-23..2022-09-09&type=Issues)
 | 
[@pre-commit-ci](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3Apre-commit-ci+updated%3A2022-08-23..2022-09-09&type=Issues)
 | 
[@Zsailer](https://github.com/search?q=repo%3Ajupyterlab%2Fjupyterlab_server+involves%3AZsailer+updated%3A2022-08-23..2022-09-09&type=Issues)
+
 ## 2.15.1
 
 ([Full 
Changelog](https://github.com/jupyterlab/jupyterlab_server/compare/v2.15.0...6de991c68abad7041581dd5a7c292194d3b2dea7))
@@ -29,13 +70,13 @@
 ### Maintenance and upkeep improvements
 
 - Add fix license header job 
[#298](https://github.com/jupyterlab/jupyterlab_server/pull/298) 
([@fcollonval](https://github.com/fcollonval))
-- [pre-commit.ci] pre-commit autoupdate 
[#297](https://github.com/jupyterlab/jupyterlab_server/pull/297) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#297](https://github.com/jupyterlab/jupyterlab_server/pull/297) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Ignore deprecationwarning from jsonschema 
[#295](https://github.com/jupyterlab/jupyterlab_server/pull/295) 
([@blink1073](https://github.com/blink1073))
-- [pre-commit.ci] pre-commit autoupdate 
[#294](https://github.com/jupyterlab/jupyterlab_server/pull/294) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#293](https://github.com/jupyterlab/jupyterlab_server/pull/293) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#291](https://github.com/jupyterlab/jupyterlab_server/pull/291) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#290](https://github.com/jupyterlab/jupyterlab_server/pull/290) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#289](https://github.com/jupyterlab/jupyterlab_server/pull/289) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#294](https://github.com/jupyterlab/jupyterlab_server/pull/294) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#293](https://github.com/jupyterlab/jupyterlab_server/pull/293) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#291](https://github.com/jupyterlab/jupyterlab_server/pull/291) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#290](https://github.com/jupyterlab/jupyterlab_server/pull/290) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#289](https://github.com/jupyterlab/jupyterlab_server/pull/289) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 
 ### Documentation improvements
 
@@ -53,15 +94,15 @@
 
 ### Maintenance and upkeep improvements
 
-- [pre-commit.ci] pre-commit autoupdate 
[#287](https://github.com/jupyterlab/jupyterlab_server/pull/287) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#286](https://github.com/jupyterlab/jupyterlab_server/pull/286) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#287](https://github.com/jupyterlab/jupyterlab_server/pull/287) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#286](https://github.com/jupyterlab/jupyterlab_server/pull/286) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Suppress tornado 6.2 beta warnings 
[#285](https://github.com/jupyterlab/jupyterlab_server/pull/285) 
([@blink1073](https://github.com/blink1073))
-- [pre-commit.ci] pre-commit autoupdate 
[#284](https://github.com/jupyterlab/jupyterlab_server/pull/284) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#283](https://github.com/jupyterlab/jupyterlab_server/pull/283) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#284](https://github.com/jupyterlab/jupyterlab_server/pull/284) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#283](https://github.com/jupyterlab/jupyterlab_server/pull/283) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Add compat for openapi-core 0.15 
[#281](https://github.com/jupyterlab/jupyterlab_server/pull/281) 
([@blink1073](https://github.com/blink1073))
-- [pre-commit.ci] pre-commit autoupdate 
[#280](https://github.com/jupyterlab/jupyterlab_server/pull/280) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#279](https://github.com/jupyterlab/jupyterlab_server/pull/279) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#277](https://github.com/jupyterlab/jupyterlab_server/pull/277) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#280](https://github.com/jupyterlab/jupyterlab_server/pull/280) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#279](https://github.com/jupyterlab/jupyterlab_server/pull/279) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#277](https://github.com/jupyterlab/jupyterlab_server/pull/277) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 
 ### Contributors to this release
 
@@ -79,9 +120,9 @@
 
 ### Maintenance and upkeep improvements
 
-- [pre-commit.ci] pre-commit autoupdate 
[#275](https://github.com/jupyterlab/jupyterlab_server/pull/275) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#275](https://github.com/jupyterlab/jupyterlab_server/pull/275) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Switch to hatch backend 
[#274](https://github.com/jupyterlab/jupyterlab_server/pull/274) 
([@blink1073](https://github.com/blink1073))
-- [pre-commit.ci] pre-commit autoupdate 
[#272](https://github.com/jupyterlab/jupyterlab_server/pull/272) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#272](https://github.com/jupyterlab/jupyterlab_server/pull/272) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Switch to flit build backend 
[#271](https://github.com/jupyterlab/jupyterlab_server/pull/271) 
([@blink1073](https://github.com/blink1073))
 - Allow bot PRs to be automatically labeled 
[#270](https://github.com/jupyterlab/jupyterlab_server/pull/270) 
([@blink1073](https://github.com/blink1073))
 
@@ -101,11 +142,11 @@
 
 ### Maintenance and upkeep improvements
 
-- [pre-commit.ci] pre-commit autoupdate 
[#266](https://github.com/jupyterlab/jupyterlab_server/pull/266) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
-- [pre-commit.ci] pre-commit autoupdate 
[#265](https://github.com/jupyterlab/jupyterlab_server/pull/265) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#266](https://github.com/jupyterlab/jupyterlab_server/pull/266) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#265](https://github.com/jupyterlab/jupyterlab_server/pull/265) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Switch to importlib.metadata to list entry points 
[#264](https://github.com/jupyterlab/jupyterlab_server/pull/264) 
([@fcollonval](https://github.com/fcollonval))
 - Make some pre-commit hooks manual 
[#263](https://github.com/jupyterlab/jupyterlab_server/pull/263) 
([@blink1073](https://github.com/blink1073))
-- [pre-commit.ci] pre-commit autoupdate 
[#262](https://github.com/jupyterlab/jupyterlab_server/pull/262) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
+- \[pre-commit.ci\] pre-commit autoupdate 
[#262](https://github.com/jupyterlab/jupyterlab_server/pull/262) 
([@pre-commit-ci](https://github.com/pre-commit-ci))
 - Add flake8 and handle warnings in tests 
[#259](https://github.com/jupyterlab/jupyterlab_server/pull/259) 
([@blink1073](https://github.com/blink1073))
 - Add git-blame-ignore-revs 
[#258](https://github.com/jupyterlab/jupyterlab_server/pull/258) 
([@blink1073](https://github.com/blink1073))
 - Apply Autoformats 
[#257](https://github.com/jupyterlab/jupyterlab_server/pull/257) 
([@blink1073](https://github.com/blink1073))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/PKG-INFO 
new/jupyterlab_server-2.16.1/PKG-INFO
--- old/jupyterlab_server-2.15.2/PKG-INFO       2020-02-02 01:00:00.000000000 
+0100
+++ new/jupyterlab_server-2.16.1/PKG-INFO       2020-02-02 01:00:00.000000000 
+0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: jupyterlab_server
-Version: 2.15.2
+Version: 2.16.1
 Summary: A set of server components for JupyterLab and JupyterLab like 
applications.
 Project-URL: Homepage, https://jupyterlab-server.readthedocs.io
 Project-URL: Documentation, https://jupyterlab-server.readthedocs.io
@@ -51,13 +51,23 @@
 Classifier: Programming Language :: Python :: 3.10
 Requires-Python: >=3.7
 Requires-Dist: babel
-Requires-Dist: importlib-metadata>=3.6; python_version < '3.10'
+Requires-Dist: importlib-metadata>=4.8.3; python_version < '3.10'
 Requires-Dist: jinja2>=3.0.3
 Requires-Dist: json5
 Requires-Dist: jsonschema>=3.0.1
-Requires-Dist: jupyter-server<2,>=1.8
+Requires-Dist: jupyter-server<3,>=1.8
 Requires-Dist: packaging
 Requires-Dist: requests
+Provides-Extra: docs
+Requires-Dist: autodoc-traits; extra == 'docs'
+Requires-Dist: docutils<0.19; extra == 'docs'
+Requires-Dist: jinja2<3.1.0; extra == 'docs'
+Requires-Dist: mistune<1; extra == 'docs'
+Requires-Dist: myst-parser; extra == 'docs'
+Requires-Dist: pydata-sphinx-theme; extra == 'docs'
+Requires-Dist: sphinx; extra == 'docs'
+Requires-Dist: sphinx-copybutton; extra == 'docs'
+Requires-Dist: sphinxcontrib-openapi; extra == 'docs'
 Provides-Extra: openapi
 Requires-Dist: openapi-core>=0.14.2; extra == 'openapi'
 Requires-Dist: ruamel-yaml; extra == 'openapi'
@@ -69,7 +79,7 @@
 Requires-Dist: openapi-spec-validator<0.5; extra == 'test'
 Requires-Dist: pytest-console-scripts; extra == 'test'
 Requires-Dist: pytest-cov; extra == 'test'
-Requires-Dist: pytest>=5.3.2; extra == 'test'
+Requires-Dist: pytest>=7.0; extra == 'test'
 Requires-Dist: ruamel-yaml; extra == 'test'
 Requires-Dist: strict-rfc3339; extra == 'test'
 Description-Content-Type: text/markdown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/RELEASE.md 
new/jupyterlab_server-2.16.1/RELEASE.md
--- old/jupyterlab_server-2.15.2/RELEASE.md     2020-02-02 01:00:00.000000000 
+0100
+++ new/jupyterlab_server-2.16.1/RELEASE.md     2020-02-02 01:00:00.000000000 
+0100
@@ -2,14 +2,14 @@
 
 ## Using `jupyter_releaser`
 
-The recommended way to make a release is to use 
[`jupyter_releaser`](https://github.com/jupyter-server/jupyter_releaser#checklist-for-adoption).
+The recommended way to make a release is to use 
[`jupyter_releaser`](https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html)
 
 ## Manual Release
 
 ### Set up
 
 ```
-pip install tbump twine build
+pip install pipx
 git pull origin $(git branch --show-current)
 git clean -dffx
 ```
@@ -19,19 +19,20 @@
 ```
 echo "Enter new version"
 read script_version
-tbump ${script_version}
+pipx run hatch version ${script_version}
+git tag -a ${script_version} -m ${script_version}
 ```
 
 ### Build the artifacts
 
 ```
 rm -rf dist
-python -m build .
+pipx run build .
 ```
 
 ### Publish the artifacts to pypi
 
 ```
-twine check dist/*
-twine upload dist/*
+pipx run twine check dist/*
+pipx run twine upload dist/*
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/docs/environment.yml 
new/jupyterlab_server-2.16.1/docs/environment.yml
--- old/jupyterlab_server-2.15.2/docs/environment.yml   2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/docs/environment.yml   1970-01-01 
01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-name: jupyterlab_server_documentation
-channels:
-  - conda-forge
-  - nodefaults
-dependencies:
-  - python=3.9
-  - sphinx<4.0
-  - sphinx-copybutton
-  - pip
-  - myst-parser
-  - mistune<1
-  - jinja2<3.1.0
-  - pip:
-      - autodoc-traits
-      - mistune<1.0.0
-      - pydata_sphinx_theme
-      - sphinxcontrib-openapi
-      - numpydoc
-      - ..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/docs/source/conf.py 
new/jupyterlab_server-2.16.1/docs/source/conf.py
--- old/jupyterlab_server-2.15.2/docs/source/conf.py    2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/docs/source/conf.py    2020-02-02 
01:00:00.000000000 +0100
@@ -15,8 +15,10 @@
 # sys.path.insert(0, os.path.abspath('.'))
 import os.path as osp
 import shutil
+import sys
 
 HERE = osp.abspath(osp.dirname(__file__))
+sys.path.insert(0, osp.join(HERE, "..", ".."))
 
 # -- Project information -----------------------------------------------------
 
@@ -43,7 +45,6 @@
 # ones.
 extensions = [
     "myst_parser",
-    "numpydoc",
     "autodoc_traits",
     "sphinx.ext.autodoc",
     "sphinx.ext.intersphinx",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/__init__.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/__init__.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/__init__.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/__init__.py  2020-02-02 
01:00:00.000000000 +0100
@@ -17,7 +17,6 @@
     "LabHandler",
     "LabServerApp",
     "LicensesApp",
-    "SETTINGS_EXTENSION",
     "slugify",
     "translator",
     "WORKSPACE_EXTENSION",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/_version.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/_version.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/_version.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/_version.py  2020-02-02 
01:00:00.000000000 +0100
@@ -4,7 +4,7 @@
 """
 import re
 
-__version__ = "2.15.2"
+__version__ = "2.16.1"
 
 # Build up version_info tuple for backwards compatibility
 pattern = r"(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/handlers.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/handlers.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/handlers.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/handlers.py  2020-02-02 
01:00:00.000000000 +0100
@@ -63,7 +63,7 @@
 class LabHandler(ExtensionHandlerJinjaMixin, ExtensionHandlerMixin, 
JupyterHandler):
     """Render the JupyterLab View."""
 
-    @lru_cache()
+    @lru_cache()  # noqa
     def get_page_config(self):
         """Construct the page config object"""
         self.application.store_id = getattr(self.application, "store_id", 0)
@@ -160,7 +160,7 @@
 
 
 class NotFoundHandler(LabHandler):
-    @lru_cache()
+    @lru_cache()  # noqa
     def get_page_config(self):
         page_config = super().get_page_config()
         page_config["notFoundUrl"] = self.request.path
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/licenses_handler.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/licenses_handler.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/licenses_handler.py  
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/licenses_handler.py  
2020-02-02 01:00:00.000000000 +0100
@@ -85,6 +85,8 @@
                 "text/markdown",
             )
 
+        raise ValueError(f"Unsupported report format {report_format}.")
+
     def report_json(self, bundles):
         """create a JSON report
         TODO: SPDX
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/process.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/process.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/process.py   2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/process.py   2020-02-02 
01:00:00.000000000 +0100
@@ -89,7 +89,7 @@
         if kill_event and kill_event.is_set():
             raise ValueError("Process aborted")
 
-        self.logger = logger = logger or self.get_log()
+        self.logger = logger or self.get_log()
         self._last_line = ""
         if not quiet:
             self.logger.info(f"> {list2cmdline(cmd)}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/settings_utils.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/settings_utils.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/settings_utils.py    
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/settings_utils.py    
2020-02-02 01:00:00.000000000 +0100
@@ -239,7 +239,6 @@
     parent directory for the calculated path if it does not exist.
     """
 
-    parent_dir = root_dir
     notfound_error = "Settings not found (%s)"
     write_error = "Failed writing settings (%s): %s"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/test_utils.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/test_utils.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/test_utils.py        
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/test_utils.py        
2020-02-02 01:00:00.000000000 +0100
@@ -108,7 +108,6 @@
     """a windows 3.8+ patch for the asyncio loop"""
     if sys.platform.startswith("win") and tornado.version_info < (6, 1):
         if sys.version_info >= (3, 8):
-            import asyncio
 
             try:
                 from asyncio import (
@@ -119,10 +118,12 @@
                 pass
                 # not affected
             else:
-                if type(asyncio.get_event_loop_policy()) is 
WindowsProactorEventLoopPolicy:
+                from asyncio import get_event_loop_policy, 
set_event_loop_policy
+
+                if type(get_event_loop_policy()) is 
WindowsProactorEventLoopPolicy:
                     # WindowsProactorEventLoopPolicy is not compatible with 
tornado 6
                     # fallback to the pre-3.8 default of Selector
-                    
asyncio.set_event_loop_policy(WindowsSelectorEventLoopPolicy())
+                    set_event_loop_policy(WindowsSelectorEventLoopPolicy())
 
 
 def expected_http_error(error, expected_code, expected_message=None):
@@ -148,6 +149,8 @@
                 return False
         return True
 
+    return False
+
 
 @contextmanager
 def assert_http_error(status, msg=None):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/translation_utils.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/translation_utils.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/translation_utils.py 
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/translation_utils.py 
2020-02-02 01:00:00.000000000 +0100
@@ -182,8 +182,10 @@
         babel.Locale.parse(locale)
         valid = True
     except babel.core.UnknownLocaleError:
+        # no-op
         pass
     except ValueError:
+        # no-op
         pass
 
     return valid
@@ -433,6 +435,7 @@
                 mod = importlib.import_module(language_pack_module)
                 localedir = os.path.join(os.path.dirname(mod.__file__), 
LOCALE_DIR)
             except Exception:
+                # no-op
                 pass
 
         gettext.bindtextdomain(self._domain, localedir=localedir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/jupyterlab_server/workspaces_handler.py 
new/jupyterlab_server-2.16.1/jupyterlab_server/workspaces_handler.py
--- old/jupyterlab_server-2.15.2/jupyterlab_server/workspaces_handler.py        
2020-02-02 01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/jupyterlab_server/workspaces_handler.py        
2020-02-02 01:00:00.000000000 +0100
@@ -63,7 +63,7 @@
     return workspace
 
 
-def slugify(raw, base="", sign=True, max_length=128 - 
len(WORKSPACE_EXTENSION)):
+def slugify(raw, base="", sign=True, max_length=128 - 
len(WORKSPACE_EXTENSION)):  # noqa
     """
     Use the common superset of raw and base values to build a slug shorter
     than max_length. By default, base value is an empty string.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/pyproject.toml 
new/jupyterlab_server-2.16.1/pyproject.toml
--- old/jupyterlab_server-2.15.2/pyproject.toml 2020-02-02 01:00:00.000000000 
+0100
+++ new/jupyterlab_server-2.16.1/pyproject.toml 2020-02-02 01:00:00.000000000 
+0100
@@ -1,10 +1,10 @@
 [build-system]
-requires = ["hatchling>=0.25"]
+requires = ["hatchling>=1.5"]
 build-backend = "hatchling.build"
 
 [project]
 name = "jupyterlab_server"
-version = "2.15.2"
+dynamic = ["version"]
 license = { file = "LICENSE" }
 description = "A set of server components for JupyterLab and JupyterLab like 
applications."
 keywords = ["jupyter", "jupyterlab"]
@@ -24,11 +24,11 @@
 requires-python = ">=3.7"
 dependencies = [
   "babel",
-  "importlib_metadata>=3.6;python_version<\"3.10\"",
+  "importlib_metadata>=4.8.3;python_version<\"3.10\"",
   "jinja2>=3.0.3",
   "json5",
   "jsonschema>=3.0.1",
-  "jupyter_server>=1.8,<2",
+  "jupyter_server>=1.8,<3",
   "packaging",
   "requests",
 ]
@@ -49,6 +49,17 @@
 Tracker = "https://github.com/jupyterlab/jupyterlab_server/issues";
 
 [project.optional-dependencies]
+docs = [
+  "autodoc-traits",
+  "docutils<0.19",
+  "pydata_sphinx_theme",
+  "sphinx",
+  "sphinx-copybutton",
+  "sphinxcontrib-openapi",
+  "myst-parser",
+  "mistune<1",
+  "jinja2<3.1.0"
+]
 openapi = [
   "openapi_core>=0.14.2",
   "ruamel.yaml",
@@ -57,35 +68,38 @@
   "codecov",
   "ipykernel",
   "jupyter_server[test]",
-  # openapi_core 0.15.0 is not working
+  # openapi_core 0.15.0 alpha is not working
   "openapi_core~=0.14.2",
   "openapi-spec-validator<0.5",
-  "pytest>=5.3.2",
+  "pytest>=7.0",
   "pytest-console-scripts",
   "pytest-cov",
   "ruamel.yaml",
   "strict-rfc3339"
 ]
 
-[tool.jupyter-releaser]
-skip = ["check-links"]
-
-[tool.tbump.version]
-current = "2.15.2"
-regex = '''
-  (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)
-  ((?P<channel>a|b|rc|.dev)(?P<release>\d+))?
-'''
-
-[tool.tbump.git]
-message_template = "Bump to {new_version}"
-tag_template = "v{new_version}"
-
-[[tool.tbump.file]]
-src = "jupyterlab_server/_version.py"
-
-[[tool.tbump.file]]
-src = "pyproject.toml"
+[tool.hatch.version]
+path = "jupyterlab_server/_version.py"
+validate-bump = false
+
+[tool.hatch.envs.docs]
+features = ["docs"]
+[tool.hatch.envs.docs.scripts]
+build = "make -C docs html SPHINXOPTS='-W'"
+
+[tool.hatch.envs.test]
+features = ["test"]
+[tool.hatch.envs.test.scripts]
+test = "python -m pytest -vv {args}"
+nowarn = "python -m pytest -vv -W default {args}"
+
+[tool.hatch.envs.cov]
+features = ["test"]
+dependencies = ["coverage", "pytest-cov"]
+[tool.hatch.envs.cov.env-vars]
+ARGS = "-vv --cov jupyterlab_server --cov-branch --cov-report 
term-missing:skip-covered"
+[tool.hatch.envs.cov.scripts]
+test = "python -m pytest $ARGS --cov-fail-under 65 {args}"
 
 [tool.pytest.ini_options]
 addopts = "-raXs --durations 10 --color=yes --doctest-modules"
@@ -103,3 +117,24 @@
   "ignore:Passing a schema to Validator.iter_errors:DeprecationWarning",
   "module:Subclassing validator classes is not intended to be part of their 
public API:DeprecationWarning"
 ]
+
+[tool.flake8]
+ignore = "E501, W503, E402"
+builtins = "c, get_config"
+exclude = [
+    ".cache",
+    ".github",
+    "docs",
+    "setup.py",
+]
+enable-extensions = "G"
+extend-ignore = [
+    "G001", "G002", "G004", "G200", "G201", "G202",
+    # black adds spaces around ':'
+    "E203",
+]
+per-file-ignores = [
+    # B011: Do not call assert False since python -O removes these calls
+    # F841 local variable 'foo' is assigned to but never used
+    "tests/*: B011", "F841",
+]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/readthedocs.yml 
new/jupyterlab_server-2.16.1/readthedocs.yml
--- old/jupyterlab_server-2.15.2/readthedocs.yml        2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/readthedocs.yml        1970-01-01 
01:00:00.000000000 +0100
@@ -1,5 +0,0 @@
-version: 2
-sphinx:
-  configuration: docs/source/conf.py
-conda:
-  environment: docs/environment.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jupyterlab_server-2.15.2/tests/test_licenses_api.py 
new/jupyterlab_server-2.16.1/tests/test_licenses_api.py
--- old/jupyterlab_server-2.15.2/tests/test_licenses_api.py     2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/tests/test_licenses_api.py     2020-02-02 
01:00:00.000000000 +0100
@@ -139,13 +139,11 @@
 )
 async def test_malformed_license_report(
     license_json,
-    mime_format_parser,
     jp_fetch,
     labserverapp,
     tmp_path,
 ):
     _make_static_dir(labserverapp, tmp_path, license_json=license_json)
-    mime, fmt, parse = mime_format_parser
     r = await jp_fetch("lab", "api", "licenses/")
     assert r.code == 200
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/jupyterlab_server-2.15.2/tests/test_translation_api.py 
new/jupyterlab_server-2.16.1/tests/test_translation_api.py
--- old/jupyterlab_server-2.15.2/tests/test_translation_api.py  2020-02-02 
01:00:00.000000000 +0100
+++ new/jupyterlab_server-2.16.1/tests/test_translation_api.py  2020-02-02 
01:00:00.000000000 +0100
@@ -122,7 +122,7 @@
 # ------------------------------------------------------------------------
 async def test_backend_locale(jp_fetch):
     locale = "es_CO"
-    r = await jp_fetch("lab", "api", "translations", locale)
+    await jp_fetch("lab", "api", "translations", locale)
     trans = translator.load("jupyterlab")
     result = trans.__("MORE ABOUT PROJECT JUPYTER")
     assert result == "M??s sobre el proyecto jupyter"
@@ -130,7 +130,7 @@
 
 async def test_backend_locale_extension(jp_fetch):
     locale = "es_CO"
-    r = await jp_fetch("lab", "api", "translations", locale)
+    await jp_fetch("lab", "api", "translations", locale)
     trans = translator.load("jupyterlab_some_package")
     result = trans.__("BOOM")
     assert result == "Foo bar 2"

Reply via email to