aboutsummaryrefslogtreecommitdiff
path: root/development/jupyter_server
diff options
context:
space:
mode:
authorIsaac Yu <isaacyu1@isaacyu1.com>2023-03-06 13:16:14 -0800
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2023-03-12 08:48:17 +0700
commit7d8b399f2ce65d279eae96ee6958ce0c344a8894 (patch)
treeb87d0eb05d17fc6f14d5752eac734a9a034dd7cd /development/jupyter_server
parentd5230922fad02be9260eb2ab6f4f19fdb3d7aa79 (diff)
development/jupyter_server: Updated for version 2.4.0.
Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/jupyter_server')
-rw-r--r--development/jupyter_server/fix_get_loader.patch89
-rw-r--r--development/jupyter_server/jupyter_server.SlackBuild10
-rw-r--r--development/jupyter_server/jupyter_server.info6
-rw-r--r--development/jupyter_server/redact_tokens_from_logs.patch60
4 files changed, 6 insertions, 159 deletions
diff --git a/development/jupyter_server/fix_get_loader.patch b/development/jupyter_server/fix_get_loader.patch
deleted file mode 100644
index eb0fb99979ec..000000000000
--- a/development/jupyter_server/fix_get_loader.patch
+++ /dev/null
@@ -1,89 +0,0 @@
---- a/jupyter_server/extension/utils.py
-+++ b/jupyter_server/extension/utils.py
-@@ -36,20 +36,24 @@
- underscore prefix.
- """
- try:
-- func = getattr(obj, "_load_jupyter_server_extension") # noqa B009
-+ return getattr(obj, "_load_jupyter_server_extension") # noqa B009
-+ except AttributeError:
-+ pass
-+
-+ try:
-+ func = getattr(obj, "load_jupyter_server_extension") # noqa B009
- except AttributeError:
-- func = getattr(obj, "load_jupyter_server_extension", None)
-- warnings.warn(
-- "A `_load_jupyter_server_extension` function was not "
-- "found in {name!s}. Instead, a `load_jupyter_server_extension` "
-- "function was found and will be used for now. This function "
-- "name will be deprecated in future releases "
-- "of Jupyter Server.".format(name=obj),
-- DeprecationWarning,
-- )
-- except Exception:
- msg = "_load_jupyter_server_extension function was not found."
- raise ExtensionLoadingError(msg) from None
-+
-+ warnings.warn(
-+ "A `_load_jupyter_server_extension` function was not "
-+ "found in {name!s}. Instead, a `load_jupyter_server_extension` "
-+ "function was found and will be used for now. This function "
-+ "name will be deprecated in future releases "
-+ "of Jupyter Server.".format(name=obj),
-+ DeprecationWarning,
-+ )
- return func
-
-
---- a/tests/extension/mockextensions/mockext_deprecated.py
-+++ b/tests/extension/mockextensions/mockext_deprecated.py
-@@ -0,0 +1,12 @@
-+"""A mock extension named `mockext_py` for testing purposes.
-+"""
-+# Function that makes these extensions discoverable
-+# by the test functions.
-+
-+
-+def _jupyter_server_extension_paths():
-+ return [{"module": "tests.extension.mockextensions.mockext_deprecated"}]
-+
-+
-+def load_jupyter_server_extension(serverapp):
-+ pass
---- a/tests/extension/test_utils.py
-+++ b/tests/extension/test_utils.py
-@@ -1,10 +1,14 @@
- import logging
--import warnings
-
- import pytest
-
--from jupyter_server.extension.utils import get_loader, get_metadata, validate_extension
--from tests.extension.mockextensions import mockext_sys
-+from jupyter_server.extension.utils import (
-+ ExtensionLoadingError,
-+ get_loader,
-+ get_metadata,
-+ validate_extension,
-+)
-+from tests.extension.mockextensions import mockext_deprecated, mockext_sys
-
- # Use ServerApps environment because it monkeypatches
- # jupyter_core.paths and provides a config directory
-@@ -24,10 +28,11 @@
-
-
- def test_get_loader():
-- get_loader(mockext_sys)
-- with warnings.catch_warnings():
-- warnings.simplefilter("ignore")
-- assert get_loader(object()) is None
-+ assert get_loader(mockext_sys) == mockext_sys._load_jupyter_server_extension
-+ with pytest.deprecated_call():
-+ assert get_loader(mockext_deprecated) == mockext_deprecated.load_jupyter_server_extension
-+ with pytest.raises(ExtensionLoadingError):
-+ get_loader(object())
-
-
- def test_get_metadata():
diff --git a/development/jupyter_server/jupyter_server.SlackBuild b/development/jupyter_server/jupyter_server.SlackBuild
index 0318f295ddc5..186d74ebdf49 100644
--- a/development/jupyter_server/jupyter_server.SlackBuild
+++ b/development/jupyter_server/jupyter_server.SlackBuild
@@ -25,8 +25,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=jupyter_server
-VERSION=${VERSION:-2.2.1}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-2.4.0}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -76,10 +76,6 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-# Backports from jupyter-server 2.3.0
-patch -p1 < $CWD/redact_tokens_from_logs.patch # Redact tokens in url parameters from request logs. See upstream PR #1212
-patch -p1 < $CWD/fix_get_loader.patch # See upstream PR #1193
-
python3 -m build --no-isolation
python3 -m installer -d "$PKG" dist/*.whl
@@ -87,7 +83,7 @@ find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | gr
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a CHANGELOG.md COPYING.md README.md RELEASE.md CONTRIBUTING.rst $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGELOG.md LICENSE README.md RELEASE.md CONTRIBUTING.rst $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
diff --git a/development/jupyter_server/jupyter_server.info b/development/jupyter_server/jupyter_server.info
index 046b9645e065..ac17cf3722c7 100644
--- a/development/jupyter_server/jupyter_server.info
+++ b/development/jupyter_server/jupyter_server.info
@@ -1,8 +1,8 @@
PRGNAM="jupyter_server"
-VERSION="2.2.1"
+VERSION="2.4.0"
HOMEPAGE="https://jupyter.org/"
-DOWNLOAD="https://files.pythonhosted.org/packages/source/j/jupyter_server/jupyter_server-2.2.1.tar.gz"
-MD5SUM="819787cf2ffdd040145d351eaf692de0"
+DOWNLOAD="https://files.pythonhosted.org/packages/source/j/jupyter_server/jupyter_server-2.4.0.tar.gz"
+MD5SUM="0b8c5c5d279f39fd71b65f2bf57f22c4"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="argon2-cffi jsonpointer jupyter_events jupyter-nbconvert jupyter_packaging jupyter_server_terminals python3-anyio python3-hatch_jupyter_builder python3-prometheus_client python3-requests-unixsocket send2trash python3-fqdn python3-isoduration python3-uri_template python3-webcolors python3-websocket-client"
diff --git a/development/jupyter_server/redact_tokens_from_logs.patch b/development/jupyter_server/redact_tokens_from_logs.patch
deleted file mode 100644
index 74ac1b919634..000000000000
--- a/development/jupyter_server/redact_tokens_from_logs.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- a/jupyter_server/log.py
-+++ b/jupyter_server/log.py
-@@ -6,12 +6,39 @@
- # the file COPYING, distributed as part of this software.
- # -----------------------------------------------------------------------------
- import json
-+from urllib.parse import urlparse, urlunparse
-
- from tornado.log import access_log
-
- from .auth import User
- from .prometheus.log_functions import prometheus_log_method
-
-+# url params to be scrubbed if seen
-+# any url param that *contains* one of these
-+# will be scrubbed from logs
-+_SCRUB_PARAM_KEYS = {"token", "auth", "key", "code", "state", "xsrf"}
-+
-+
-+def _scrub_uri(uri: str) -> str:
-+ """scrub auth info from uri"""
-+ parsed = urlparse(uri)
-+ if parsed.query:
-+ # check for potentially sensitive url params
-+ # use manual list + split rather than parsing
-+ # to minimally perturb original
-+ parts = parsed.query.split("&")
-+ changed = False
-+ for i, s in enumerate(parts):
-+ key, sep, value = s.partition("=")
-+ for substring in _SCRUB_PARAM_KEYS:
-+ if substring in key:
-+ parts[i] = f"{key}{sep}[secret]"
-+ changed = True
-+ if changed:
-+ parsed = parsed._replace(query="&".join(parts))
-+ return urlunparse(parsed)
-+ return uri
-+
-
- def log_request(handler):
- """log a bit more information about each request than tornado's default
-@@ -43,7 +70,7 @@
- "status": status,
- "method": request.method,
- "ip": request.remote_ip,
-- "uri": request.uri,
-+ "uri": _scrub_uri(request.uri),
- "request_time": request_time,
- }
- # log username
-@@ -59,7 +86,7 @@
- msg = "{status} {method} {uri} ({username}@{ip}) {request_time:.2f}ms"
- if status >= 400: # noqa[PLR2004]
- # log bad referers
-- ns["referer"] = request.headers.get("Referer", "None")
-+ ns["referer"] = _scrub_uri(request.headers.get("Referer", "None"))
- msg = msg + " referer={referer}"
- if status >= 500 and status != 502: # noqa[PLR2004]
- # Log a subset of the headers if it caused an error.