Github messages for voidlinux
 help / color / mirror / Atom feed
From: tornaria <tornaria@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] [RFC] [WIP] updates to jupyter,  jupyterlab, notebook, etc.
Date: Mon, 09 Oct 2023 23:10:48 +0200	[thread overview]
Message-ID: <20231009211048.hnsiy_Fs9k34_DQU1GinLItLMVvWgrHg-itz5J9yjq0@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-44160@inbox.vuxu.org>

[-- Attachment #1: Type: text/plain, Size: 1282 bytes --]

There is an updated pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages jupyter
https://github.com/void-linux/void-packages/pull/44160

[RFC] [WIP] updates to jupyter,  jupyterlab, notebook, etc.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/44160.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-jupyter-44160.patch --]
[-- Type: text/x-diff, Size: 80503 bytes --]

From 4cbd0121fe02e8c3c8d591f8b0e0336cda9e1986 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 26 Sep 2023 12:31:11 -0300
Subject: [PATCH 01/27] python3-send2trash: update to 1.8.2.

---
 srcpkgs/python3-send2trash/template | 22 +++++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/python3-send2trash/template b/srcpkgs/python3-send2trash/template
index a77d479475365..34c635ff1e178 100644
--- a/srcpkgs/python3-send2trash/template
+++ b/srcpkgs/python3-send2trash/template
@@ -1,17 +1,25 @@
 # Template file for 'python3-send2trash'
 pkgname=python3-send2trash
-version=1.8.0
-revision=3
-build_style=python3-module
-hostmakedepends="python3-setuptools python3-pytest"
+version=1.8.2
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-setuptools python3-wheel"
 depends="python3"
+checkdepends="python3-pytest"
 short_desc="Python3 library to natively send files to trash"
 maintainer="Eloi Torrents <eloitor@disroot.org>"
 license="BSD-3-Clause"
 homepage="https://github.com/hsoft/send2trash"
-distfiles="https://github.com/hsoft/send2trash/archive/${version}.tar.gz"
-checksum=937b038abd9f1e7b8c5d7a116be5dc4663beb71df74dcccffe56cacf992c7a9c
-make_check=ci-skip # fails "test_trash_topdir_failure" due to root
+changelog="https://raw.githubusercontent.com/arsenetar/send2trash/master/CHANGES.rst"
+distfiles="${PYPI_SITE}/S/Send2Trash/Send2Trash-${version}.tar.gz"
+checksum=c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312
+
+if [ "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ]; then
+	# this test fails on CI (due to root)
+	make_check_args="
+	 --deselect=tests/test_plat_other.py::test_trash_topdir_failure
+	 "
+fi
 
 post_install() {
 	vlicense LICENSE

From 52116a2379442e2afae1efdf5519039bcceeb113 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 26 Sep 2023 10:30:14 -0300
Subject: [PATCH 02/27] python3-comm: update to 0.1.4.

---
 srcpkgs/python3-comm/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/python3-comm/template b/srcpkgs/python3-comm/template
index 2e07727855022..13ad0328ee940 100644
--- a/srcpkgs/python3-comm/template
+++ b/srcpkgs/python3-comm/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-comm'
 pkgname=python3-comm
-version=0.1.3
-revision=2
+version=0.1.4
+revision=1
 build_style=python3-pep517
 hostmakedepends="hatchling"
 depends="python3-traitlets"
@@ -12,7 +12,7 @@ license="BSD-3-Clause"
 homepage="https://github.com/ipython/comm/"
 changelog="https://raw.githubusercontent.com/ipython/comm/main/CHANGELOG.md"
 distfiles="https://github.com/ipython/comm/archive/refs/tags/v$version.tar.gz"
-checksum=9bdea650a6194bf1628b17c2668bf74bf5295c87a7528a8aa4fe4472904b26f2
+checksum=4b7c0b56439d6835c1f4abf31b81c931fd6a6eba9e38f11f74ac80d1a720bed7
 
 post_install() {
 	vlicense LICENSE

From c716956c18ca3044c1f40f059d70fb4e8b03d2cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 26 Sep 2023 10:30:19 -0300
Subject: [PATCH 03/27] python3-traitlets: update to 5.11.2.

---
 srcpkgs/python3-traitlets/template | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/srcpkgs/python3-traitlets/template b/srcpkgs/python3-traitlets/template
index 0949220e9ae0b..f48119dadca32 100644
--- a/srcpkgs/python3-traitlets/template
+++ b/srcpkgs/python3-traitlets/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-traitlets'
 pkgname=python3-traitlets
-version=5.10.0
-revision=2
+version=5.11.2
+revision=1
 build_style=python3-pep517
 hostmakedepends="hatchling"
 depends="python3"
@@ -10,9 +10,9 @@ short_desc="Configuration system for Python applications"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/ipython/traitlets"
-changelog="https://github.com/ipython/traitlets/raw/main/CHANGELOG.md"
+changelog="https://raw.githubusercontent.com/ipython/traitlets/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/t/traitlets/traitlets-${version}.tar.gz"
-checksum=f584ea209240466e66e91f3c81aa7d004ba4cf794990b0c775938a1544217cd1
+checksum=7564b5bf8d38c40fa45498072bf4dc5e8346eb087bbf1e2ae2d8774f6a0f078e
 
 post_install() {
 	vlicense LICENSE

From 69dec4368791880838dd0c7c46e5191b17ec4907 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Fri, 29 Sep 2023 22:50:26 -0300
Subject: [PATCH 04/27] python3-QtPy: update to 2.4.0, adopt.

---
 srcpkgs/python3-QtPy/patches/fix-test.patch | 11 +++++++
 srcpkgs/python3-QtPy/template               | 36 +++++++++++----------
 2 files changed, 30 insertions(+), 17 deletions(-)
 create mode 100644 srcpkgs/python3-QtPy/patches/fix-test.patch

diff --git a/srcpkgs/python3-QtPy/patches/fix-test.patch b/srcpkgs/python3-QtPy/patches/fix-test.patch
new file mode 100644
index 0000000000000..23987e260c928
--- /dev/null
+++ b/srcpkgs/python3-QtPy/patches/fix-test.patch
@@ -0,0 +1,11 @@
+--- a/qtpy/tests/test_main.py	2023-08-29 13:07:50.000000000 -0300
++++ b/qtpy/tests/test_main.py	2023-09-29 22:04:52.945280612 -0300
+@@ -115,7 +115,7 @@
+     pytest.importorskip(mod, reason=f"Requires {api}")
+     # clean env
+     env = os.environ.copy()
+-    for key in ("QT_API", "USE_QT_API"):
++    for key in ("QT_API", "USE_QT_API", "FORCE_QT_API"):
+         if key in env:
+             del env[key]
+     cmd = f"""
diff --git a/srcpkgs/python3-QtPy/template b/srcpkgs/python3-QtPy/template
index 10563bde6b23d..4f545f6a6e4df 100644
--- a/srcpkgs/python3-QtPy/template
+++ b/srcpkgs/python3-QtPy/template
@@ -1,36 +1,38 @@
 # Template file for 'python3-QtPy'
 pkgname=python3-QtPy
-version=2.3.1
+version=2.4.0
 revision=1
 build_style=python3-pep517
 hostmakedepends="python3-setuptools python3-wheel"
 # depends on either of PyQt5, PyQt6
 depends="python3"
-# Packages common to both PyQt5 and PyQt6
-_qtcommon="python3-PyQt5-sql python3-PyQt5-svg python3-PyQt5-webengine
- python3-PyQt5-websockets python3-PyQt5-multimedia python3-PyQt5-tools"
-checkdepends="python3-pytest python3-mock python3-pyqt6-declarative
- python3-pyqt6-widgets python3-pyqt6-gui python3-pyqt6-opengl-widgets
- python3-pyqt6-printsupport python3-pyqt6-network python3-pyqt6-devel-tools
- python3-pyqt6-test python3-pyqt6-webchannel python3-pyqt6-xml
- qt6-plugin-sqlite python3-PyQt5-quick python3-PyQt5-xmlpatterns
- python3-PyQt5-location python3-PyQt5-opengl qt5-plugin-sqlite ${_qtcommon}
- ${_qtcommon//PyQt5/pyqt6}"
+# check dependencies common to both PyQt5 and PyQt6
+_qtcommon=":connectivity :multimedia :sensors :serialport :sql :svg :tools
+ :webchannel :webengine :websockets"
+# check dependencies only for PyQt5
+_qt5check="${_qtcommon} :location :opengl :quick :x11extras :xmlpatterns
+ qt5-plugin-sqlite"
+# check dependencies only for PyQt6
+_qt6check="${_qtcommon} :dbus :declarative :devel-tools :gui :network
+ :opengl-widgets :printsupport :quick3d :remoteobjects :test :widgets :xml
+ qt6-plugin-sqlite"
+checkdepends="python3-pytest-cov python3-pytest-qt font-liberation-ttf
+ ${_qt5check//:/python3-PyQt5-} ${_qt6check//:/python3-pyqt6-}"
 short_desc="Abstraction layer on top of various Python Qt bindings"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="MIT"
 homepage="https://github.com/spyder-ide/qtpy"
+changelog="https://raw.githubusercontent.com/spyder-ide/qtpy/master/CHANGELOG.md"
 distfiles="${PYPI_SITE}/Q/QtPy/QtPy-${version}.tar.gz"
-checksum=a8c74982d6d172ce124d80cafd39653df78989683f760f2281ba91a6e7b9de8b
+checksum=db2d508167aa6106781565c8da5c6f1487debacba33519cedc35fa8997d424d4
 
 do_check() {
 	local qtapi
 
-	rm -f pytest.ini
-
 	for qtapi in pyqt5 pyqt6; do
-		CI=1 USE_QT_API="${qtapi}" QT_API="${qtapi}" \
-		python3 -m pytest -k 'not test_qttexttospeech' qtpy/tests
+		msg_normal "... running pytest with QT_API=$qtapi\n"
+		FORCE_QT_API=1 QT_API="${qtapi}" \
+		python3 -m pytest -k 'not test_qttexttospeech'
 	done
 }
 

From 05448d241d58b1c1ba6fcc5c007b4b1657ece05a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sat, 7 Oct 2023 14:23:56 -0300
Subject: [PATCH 05/27] python3-dateutil: fix deprecation warning

---
 .../avoid-deprecated-utcfromtimestamp.patch   | 25 +++++++++++++++++++
 srcpkgs/python3-dateutil/template             |  2 +-
 2 files changed, 26 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/python3-dateutil/patches/avoid-deprecated-utcfromtimestamp.patch

diff --git a/srcpkgs/python3-dateutil/patches/avoid-deprecated-utcfromtimestamp.patch b/srcpkgs/python3-dateutil/patches/avoid-deprecated-utcfromtimestamp.patch
new file mode 100644
index 0000000000000..9ac4acc89947d
--- /dev/null
+++ b/srcpkgs/python3-dateutil/patches/avoid-deprecated-utcfromtimestamp.patch
@@ -0,0 +1,25 @@
+Taken from https://github.com/dateutil/dateutil/pull/1285
+
+From f2293200747fb03d56c6c5997bfebeabe703576f Mon Sep 17 00:00:00 2001
+From: Thomas Grainger <tagrain@gmail.com>
+Date: Fri, 2 Jun 2023 14:06:41 +0100
+Subject: [PATCH 1/2] avoid deprecated utcfromtimestamp
+
+Fixes #1284
+---
+ src/dateutil/tz/tz.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/dateutil/tz/tz.py b/src/dateutil/tz/tz.py
+index c67f56d46..617591446 100644
+--- a/dateutil/tz/tz.py
++++ b/dateutil/tz/tz.py
+@@ -34,7 +34,7 @@
+ from warnings import warn
+ 
+ ZERO = datetime.timedelta(0)
+-EPOCH = datetime.datetime.utcfromtimestamp(0)
++EPOCH = datetime.datetime(1970, 1, 1, 0, 0)
+ EPOCHORDINAL = EPOCH.toordinal()
+ 
+ 
diff --git a/srcpkgs/python3-dateutil/template b/srcpkgs/python3-dateutil/template
index 1d86829608a45..c5b2ad5b03e6e 100644
--- a/srcpkgs/python3-dateutil/template
+++ b/srcpkgs/python3-dateutil/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-dateutil'
 pkgname=python3-dateutil
 version=2.8.2
-revision=3
+revision=4
 build_style=python3-module
 hostmakedepends="python3-setuptools_scm"
 depends="python3-six tzdata"

From 8dd5ff13bea0c6528b728ad5f6f86f4a6c94aed6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sat, 7 Oct 2023 22:11:00 -0300
Subject: [PATCH 06/27] python3-tornado: update to 6.3.3.

---
 .../patches/3288-utcnow-deprecation.patch     | 378 ++++++++++++++++++
 .../patches/3335-utcnow-deprecation.patch     |  81 ++++
 srcpkgs/python3-tornado/template              |   6 +-
 3 files changed, 462 insertions(+), 3 deletions(-)
 create mode 100644 srcpkgs/python3-tornado/patches/3288-utcnow-deprecation.patch
 create mode 100644 srcpkgs/python3-tornado/patches/3335-utcnow-deprecation.patch

diff --git a/srcpkgs/python3-tornado/patches/3288-utcnow-deprecation.patch b/srcpkgs/python3-tornado/patches/3288-utcnow-deprecation.patch
new file mode 100644
index 0000000000000..19e7ff9714e5d
--- /dev/null
+++ b/srcpkgs/python3-tornado/patches/3288-utcnow-deprecation.patch
@@ -0,0 +1,378 @@
+Taken from https://github.com/tornadoweb/tornado/pull/3288
+
+From 4d4d80c1d076dcb4e051c969ae4b66557d3856b8 Mon Sep 17 00:00:00 2001
+From: Ben Darnell <ben@bendarnell.com>
+Date: Thu, 8 Jun 2023 22:52:19 -0400
+Subject: [PATCH] *: Adapt to deprecation of datetime utc methods
+
+Python 3.12 deprecates the utcnow and utcfromtimestamp methods and
+discourages the use of naive datetimes to represent UTC. This was
+previously the main way that Tornado used datetimes (since it was
+the only option available in Python 2 before the introduction
+of datetime.timezone.utc in Python 3.2).
+
+- httpclient_test: Test-only change to test that both kinds of datetimes
+  are supported in If-Modified-Since (this just calls
+  httputil.format_timestamp)
+- httputil: No functional changes, but format_timestamp's
+  support for both naive and aware datetimes is now tested.
+- locale: format_timestamp now supports aware datetimes (in
+  addition to the existing support for naive datetimes).
+- web: Cookie expirations internally use aware datetimes.
+  StaticFileHandler.get_modified_time now supports both and the
+  standard implementation returns aware.
+
+It feels fragile that "naive" and "aware" datetimes are not distinct
+types but subject to data-dependent behavior. This change uses
+"aware" datetimes throughout Tornado, but some operations (comparisons
+and subtraction) fail with mixed datetime types and if I missed any
+in this change may cause errors if naive datetimes were used (where
+previously naive datetimes would have been required). But that's
+apparently the API we have to work with.
+---
+ tornado/httputil.py             |  3 +-
+ tornado/locale.py               | 12 +++--
+ tornado/test/httpclient_test.py | 12 ++++-
+ tornado/test/httputil_test.py   | 26 +++++++++-
+ tornado/test/locale_test.py     | 88 ++++++++++++++++++---------------
+ tornado/test/web_test.py        | 25 +++++-----
+ tornado/web.py                  | 28 +++++++----
+ 7 files changed, 126 insertions(+), 68 deletions(-)
+
+diff --git a/tornado/httputil.py b/tornado/httputil.py
+index 9c341d47cc..b21d8046c4 100644
+--- a/tornado/httputil.py
++++ b/tornado/httputil.py
+@@ -856,7 +856,8 @@ def format_timestamp(
+ 
+     The argument may be a numeric timestamp as returned by `time.time`,
+     a time tuple as returned by `time.gmtime`, or a `datetime.datetime`
+-    object.
++    object. Naive `datetime.datetime` objects are assumed to represent
++    UTC; aware objects are converted to UTC before formatting.
+ 
+     >>> format_timestamp(1359312200)
+     'Sun, 27 Jan 2013 18:43:20 GMT'
+diff --git a/tornado/locale.py b/tornado/locale.py
+index 55072af28d..c5526703b1 100644
+--- a/tornado/locale.py
++++ b/tornado/locale.py
+@@ -333,7 +333,7 @@ def format_date(
+         shorter: bool = False,
+         full_format: bool = False,
+     ) -> str:
+-        """Formats the given date (which should be GMT).
++        """Formats the given date.
+ 
+         By default, we return a relative time (e.g., "2 minutes ago"). You
+         can return an absolute date string with ``relative=False``.
+@@ -343,10 +343,16 @@ def format_date(
+ 
+         This method is primarily intended for dates in the past.
+         For dates in the future, we fall back to full format.
++
++        .. versionchanged:: 6.4
++           Aware `datetime.datetime` objects are now supported (naive
++           datetimes are still assumed to be UTC).
+         """
+         if isinstance(date, (int, float)):
+-            date = datetime.datetime.utcfromtimestamp(date)
+-        now = datetime.datetime.utcnow()
++            date = datetime.datetime.fromtimestamp(date, datetime.timezone.utc)
++        if date.tzinfo is None:
++            date = date.replace(tzinfo=datetime.timezone.utc)
++        now = datetime.datetime.now(datetime.timezone.utc)
+         if date > now:
+             if relative and (date - now).seconds < 60:
+                 # Due to click skew, things are some things slightly
+diff --git a/tornado/test/httpclient_test.py b/tornado/test/httpclient_test.py
+index a71ec0afb6..a41040e64a 100644
+--- a/tornado/test/httpclient_test.py
++++ b/tornado/test/httpclient_test.py
+@@ -28,7 +28,7 @@
+ from tornado.log import gen_log, app_log
+ from tornado import netutil
+ from tornado.testing import AsyncHTTPTestCase, bind_unused_port, gen_test, ExpectLog
+-from tornado.test.util import skipOnTravis
++from tornado.test.util import skipOnTravis, ignore_deprecation
+ from tornado.web import Application, RequestHandler, url
+ from tornado.httputil import format_timestamp, HTTPHeaders
+ 
+@@ -887,7 +887,15 @@ def test_body_setter(self):
+         self.assertEqual(request.body, utf8("foo"))
+ 
+     def test_if_modified_since(self):
+-        http_date = datetime.datetime.utcnow()
++        http_date = datetime.datetime.now(datetime.timezone.utc)
++        request = HTTPRequest("http://example.com", if_modified_since=http_date)
++        self.assertEqual(
++            request.headers, {"If-Modified-Since": format_timestamp(http_date)}
++        )
++
++    def test_if_modified_since_naive_deprecated(self):
++        with ignore_deprecation():
++            http_date = datetime.datetime.utcnow()
+         request = HTTPRequest("http://example.com", if_modified_since=http_date)
+         self.assertEqual(
+             request.headers, {"If-Modified-Since": format_timestamp(http_date)}
+diff --git a/tornado/test/httputil_test.py b/tornado/test/httputil_test.py
+index 8424491d87..aa9b6ee253 100644
+--- a/tornado/test/httputil_test.py
++++ b/tornado/test/httputil_test.py
+@@ -13,6 +13,7 @@
+ from tornado.escape import utf8, native_str
+ from tornado.log import gen_log
+ from tornado.testing import ExpectLog
++from tornado.test.util import ignore_deprecation
+ 
+ import copy
+ import datetime
+@@ -412,8 +413,29 @@ def test_time_tuple(self):
+         self.assertEqual(9, len(tup))
+         self.check(tup)
+ 
+-    def test_datetime(self):
+-        self.check(datetime.datetime.utcfromtimestamp(self.TIMESTAMP))
++    def test_utc_naive_datetime(self):
++        self.check(
++            datetime.datetime.fromtimestamp(
++                self.TIMESTAMP, datetime.timezone.utc
++            ).replace(tzinfo=None)
++        )
++
++    def test_utc_naive_datetime_deprecated(self):
++        with ignore_deprecation():
++            self.check(datetime.datetime.utcfromtimestamp(self.TIMESTAMP))
++
++    def test_utc_aware_datetime(self):
++        self.check(
++            datetime.datetime.fromtimestamp(self.TIMESTAMP, datetime.timezone.utc)
++        )
++
++    def test_other_aware_datetime(self):
++        # Other timezones are ignored; the timezone is always printed as GMT
++        self.check(
++            datetime.datetime.fromtimestamp(
++                self.TIMESTAMP, datetime.timezone(datetime.timedelta(hours=-4))
++            )
++        )
+ 
+ 
+ # HTTPServerRequest is mainly tested incidentally to the server itself,
+diff --git a/tornado/test/locale_test.py b/tornado/test/locale_test.py
+index ee74cb05e8..a2e0872b8f 100644
+--- a/tornado/test/locale_test.py
++++ b/tornado/test/locale_test.py
+@@ -91,45 +91,55 @@ def test_format_date(self):
+             locale.format_date(date, full_format=True), "April 28, 2013 at 6:35 pm"
+         )
+ 
+-        now = datetime.datetime.utcnow()
+-
+-        self.assertEqual(
+-            locale.format_date(now - datetime.timedelta(seconds=2), full_format=False),
+-            "2 seconds ago",
+-        )
+-        self.assertEqual(
+-            locale.format_date(now - datetime.timedelta(minutes=2), full_format=False),
+-            "2 minutes ago",
+-        )
+-        self.assertEqual(
+-            locale.format_date(now - datetime.timedelta(hours=2), full_format=False),
+-            "2 hours ago",
+-        )
+-
+-        self.assertEqual(
+-            locale.format_date(
+-                now - datetime.timedelta(days=1), full_format=False, shorter=True
+-            ),
+-            "yesterday",
+-        )
+-
+-        date = now - datetime.timedelta(days=2)
+-        self.assertEqual(
+-            locale.format_date(date, full_format=False, shorter=True),
+-            locale._weekdays[date.weekday()],
+-        )
+-
+-        date = now - datetime.timedelta(days=300)
+-        self.assertEqual(
+-            locale.format_date(date, full_format=False, shorter=True),
+-            "%s %d" % (locale._months[date.month - 1], date.day),
+-        )
+-
+-        date = now - datetime.timedelta(days=500)
+-        self.assertEqual(
+-            locale.format_date(date, full_format=False, shorter=True),
+-            "%s %d, %d" % (locale._months[date.month - 1], date.day, date.year),
+-        )
++        aware_dt = datetime.datetime.now(datetime.timezone.utc)
++        naive_dt = aware_dt.replace(tzinfo=None)
++        for name, now in {"aware": aware_dt, "naive": naive_dt}.items():
++            with self.subTest(dt=name):
++                self.assertEqual(
++                    locale.format_date(
++                        now - datetime.timedelta(seconds=2), full_format=False
++                    ),
++                    "2 seconds ago",
++                )
++                self.assertEqual(
++                    locale.format_date(
++                        now - datetime.timedelta(minutes=2), full_format=False
++                    ),
++                    "2 minutes ago",
++                )
++                self.assertEqual(
++                    locale.format_date(
++                        now - datetime.timedelta(hours=2), full_format=False
++                    ),
++                    "2 hours ago",
++                )
++
++                self.assertEqual(
++                    locale.format_date(
++                        now - datetime.timedelta(days=1),
++                        full_format=False,
++                        shorter=True,
++                    ),
++                    "yesterday",
++                )
++
++                date = now - datetime.timedelta(days=2)
++                self.assertEqual(
++                    locale.format_date(date, full_format=False, shorter=True),
++                    locale._weekdays[date.weekday()],
++                )
++
++                date = now - datetime.timedelta(days=300)
++                self.assertEqual(
++                    locale.format_date(date, full_format=False, shorter=True),
++                    "%s %d" % (locale._months[date.month - 1], date.day),
++                )
++
++                date = now - datetime.timedelta(days=500)
++                self.assertEqual(
++                    locale.format_date(date, full_format=False, shorter=True),
++                    "%s %d, %d" % (locale._months[date.month - 1], date.day, date.year),
++                )
+ 
+     def test_friendly_number(self):
+         locale = tornado.locale.get("en_US")
+diff --git a/tornado/test/web_test.py b/tornado/test/web_test.py
+index 56900d9a00..fb9c3417b9 100644
+--- a/tornado/test/web_test.py
++++ b/tornado/test/web_test.py
+@@ -404,10 +404,10 @@ def test_set_cookie_expires_days(self):
+         match = re.match("foo=bar; expires=(?P<expires>.+); Path=/", header)
+         assert match is not None
+ 
+-        expires = datetime.datetime.utcnow() + datetime.timedelta(days=10)
+-        parsed = email.utils.parsedate(match.groupdict()["expires"])
+-        assert parsed is not None
+-        header_expires = datetime.datetime(*parsed[:6])
++        expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
++            days=10
++        )
++        header_expires = email.utils.parsedate_to_datetime(match.groupdict()["expires"])
+         self.assertTrue(abs((expires - header_expires).total_seconds()) < 10)
+ 
+     def test_set_cookie_false_flags(self):
+@@ -1697,11 +1697,10 @@ def get(self):
+ 
+     def test_date_header(self):
+         response = self.fetch("/")
+-        parsed = email.utils.parsedate(response.headers["Date"])
+-        assert parsed is not None
+-        header_date = datetime.datetime(*parsed[:6])
++        header_date = email.utils.parsedate_to_datetime(response.headers["Date"])
+         self.assertTrue(
+-            header_date - datetime.datetime.utcnow() < datetime.timedelta(seconds=2)
++            header_date - datetime.datetime.now(datetime.timezone.utc)
++            < datetime.timedelta(seconds=2)
+         )
+ 
+ 
+@@ -3010,10 +3009,12 @@ def test_xsrf_httponly(self):
+         match = re.match(".*; expires=(?P<expires>.+);.*", header)
+         assert match is not None
+ 
+-        expires = datetime.datetime.utcnow() + datetime.timedelta(days=2)
+-        parsed = email.utils.parsedate(match.groupdict()["expires"])
+-        assert parsed is not None
+-        header_expires = datetime.datetime(*parsed[:6])
++        expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
++            days=2
++        )
++        header_expires = email.utils.parsedate_to_datetime(match.groupdict()["expires"])
++        if header_expires.tzinfo is None:
++            header_expires = header_expires.replace(tzinfo=datetime.timezone.utc)
+         self.assertTrue(abs((expires - header_expires).total_seconds()) < 10)
+ 
+ 
+diff --git a/tornado/web.py b/tornado/web.py
+index 565140493e..439e02c47b 100644
+--- a/tornado/web.py
++++ b/tornado/web.py
+@@ -647,7 +647,9 @@ def set_cookie(
+         if domain:
+             morsel["domain"] = domain
+         if expires_days is not None and not expires:
+-            expires = datetime.datetime.utcnow() + datetime.timedelta(days=expires_days)
++            expires = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(
++                days=expires_days
++            )
+         if expires:
+             morsel["expires"] = httputil.format_timestamp(expires)
+         if path:
+@@ -698,7 +700,9 @@ def clear_cookie(self, name: str, **kwargs: Any) -> None:
+                 raise TypeError(
+                     f"clear_cookie() got an unexpected keyword argument '{excluded_arg}'"
+                 )
+-        expires = datetime.datetime.utcnow() - datetime.timedelta(days=365)
++        expires = datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(
++            days=365
++        )
+         self.set_cookie(name, value="", expires=expires, **kwargs)
+ 
+     def clear_all_cookies(self, **kwargs: Any) -> None:
+@@ -2812,12 +2816,12 @@ def should_return_304(self) -> bool:
+         # content has not been modified
+         ims_value = self.request.headers.get("If-Modified-Since")
+         if ims_value is not None:
+-            date_tuple = email.utils.parsedate(ims_value)
+-            if date_tuple is not None:
+-                if_since = datetime.datetime(*date_tuple[:6])
+-                assert self.modified is not None
+-                if if_since >= self.modified:
+-                    return True
++            if_since = email.utils.parsedate_to_datetime(ims_value)
++            if if_since.tzinfo is None:
++                if_since = if_since.replace(tzinfo=datetime.timezone.utc)
++            assert self.modified is not None
++            if if_since >= self.modified:
++                return True
+ 
+         return False
+ 
+@@ -2981,6 +2985,10 @@ def get_modified_time(self) -> Optional[datetime.datetime]:
+         object or None.
+ 
+         .. versionadded:: 3.1
++
++        .. versionchanged:: 6.4
++           Now returns an aware datetime object instead of a naive one.
++           Subclasses that override this method may return either kind.
+         """
+         stat_result = self._stat()
+         # NOTE: Historically, this used stat_result[stat.ST_MTIME],
+@@ -2991,7 +2999,9 @@ def get_modified_time(self) -> Optional[datetime.datetime]:
+         # consistency with the past (and because we have a unit test
+         # that relies on this), we truncate the float here, although
+         # I'm not sure that's the right thing to do.
+-        modified = datetime.datetime.utcfromtimestamp(int(stat_result.st_mtime))
++        modified = datetime.datetime.fromtimestamp(
++            int(stat_result.st_mtime), datetime.timezone.utc
++        )
+         return modified
+ 
+     def get_content_type(self) -> str:
diff --git a/srcpkgs/python3-tornado/patches/3335-utcnow-deprecation.patch b/srcpkgs/python3-tornado/patches/3335-utcnow-deprecation.patch
new file mode 100644
index 0000000000000..23c210d12f689
--- /dev/null
+++ b/srcpkgs/python3-tornado/patches/3335-utcnow-deprecation.patch
@@ -0,0 +1,81 @@
+Taken from https://github.com/tornadoweb/tornado/pull/3335
+
+From 0bfca3f2d72a0c6e5d3ba17caac88a79e7b4e0dd Mon Sep 17 00:00:00 2001
+From: Thomas Grainger <tagrain@gmail.com>
+Date: Tue, 3 Oct 2023 15:08:08 +0100
+Subject: [PATCH] remove calls to utcnow and utcfromtimestamp
+
+---
+ demos/blog/templates/feed.xml |  2 +-
+ demos/s3server/s3server.py    | 16 +++++++++++-----
+ tornado/web.py                |  3 ++-
+ 3 files changed, 14 insertions(+), 7 deletions(-)
+
+diff --git a/demos/blog/templates/feed.xml b/demos/blog/templates/feed.xml
+index a98826c8d3..4a4a252f60 100644
+--- a/demos/blog/templates/feed.xml
++++ b/demos/blog/templates/feed.xml
+@@ -5,7 +5,7 @@
+   {% if len(entries) > 0 %}
+     <updated>{{ max(e.updated for e in entries).strftime(date_format) }}</updated>
+   {% else %}
+-    <updated>{{ datetime.datetime.utcnow().strftime(date_format) }}</updated>
++    <updated>{{ datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None).strftime(date_format) }}</updated>
+   {% end %}
+   <id>http://{{ request.host }}/</id>
+   <link rel="alternate" href="http://{{ request.host }}/" title="{{ handler.settings["blog_title"] }}" type="text/html"/>
+diff --git a/demos/s3server/s3server.py b/demos/s3server/s3server.py
+index 5c5e6af2ba..104a7c8f81 100644
+--- a/demos/s3server/s3server.py
++++ b/demos/s3server/s3server.py
+@@ -138,7 +138,9 @@ def get(self):
+             buckets.append(
+                 {
+                     "Name": name,
+-                    "CreationDate": datetime.datetime.utcfromtimestamp(info.st_ctime),
++                    "CreationDate": datetime.datetime.fromtimestamp(
++                        info.st_ctime, datetime.timezone.utc
++                    ).replace(tzinfo=None),
+                 }
+             )
+         self.render_xml({"ListAllMyBucketsResult": {"Buckets": {"Bucket": buckets}}})
+@@ -183,9 +185,10 @@ def get(self, bucket_name):
+                 info = os.stat(object_path)
+                 c.update(
+                     {
+-                        "LastModified": datetime.datetime.utcfromtimestamp(
+-                            info.st_mtime
+-                        ),
++                        "LastModified": datetime.datetime.fromtimestamp(
++                            info.st_mtime,
++                            datetime.timezone.utc,
++                        ).replace(tzinfo=None),
+                         "Size": info.st_size,
+                     }
+                 )
+@@ -231,7 +234,10 @@ def get(self, bucket, object_name):
+         info = os.stat(path)
+         self.set_header("Content-Type", "application/unknown")
+         self.set_header(
+-            "Last-Modified", datetime.datetime.utcfromtimestamp(info.st_mtime)
++            "Last-Modified",
++            datetime.datetime.fromtimestamp(
++                info.st_mtime, datetime.timezone.utc
++            ).replace(tzinfo=None),
+         )
+         with open(path, "rb") as object_file:
+             self.finish(object_file.read())
+diff --git a/tornado/web.py b/tornado/web.py
+index 333f736808..4416e2013e 100644
+--- a/tornado/web.py
++++ b/tornado/web.py
+@@ -2797,7 +2797,8 @@ def set_headers(self) -> None:
+         if cache_time > 0:
+             self.set_header(
+                 "Expires",
+-                datetime.datetime.utcnow() + datetime.timedelta(seconds=cache_time),
++                datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
++                + datetime.timedelta(seconds=cache_time),
+             )
+             self.set_header("Cache-Control", "max-age=" + str(cache_time))
+ 
diff --git a/srcpkgs/python3-tornado/template b/srcpkgs/python3-tornado/template
index 103c4cc4f099e..65bc0e55ac83e 100644
--- a/srcpkgs/python3-tornado/template
+++ b/srcpkgs/python3-tornado/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-tornado'
 pkgname=python3-tornado
-version=6.3.2
-revision=2
+version=6.3.3
+revision=1
 build_style=python3-pep517
 hostmakedepends="python3-setuptools python3-wheel"
 makedepends="python3-devel"
@@ -13,7 +13,7 @@ license="Apache-2.0"
 homepage="http://www.tornadoweb.org/"
 changelog="https://www.tornadoweb.org/en/stable/releases.html"
 distfiles="${PYPI_SITE}/t/tornado/tornado-${version}.tar.gz"
-checksum=4b927c4f19b71e627b13f3db2324e4ae660527143f9e1f2e2fb404f3a187e2ba
+checksum=e7d8db41c0181c80d76c982aacc442c0783a2c54d6400fe028954201a2e032fe
 
 do_check() {
 	# There is one instance of test_bind_source_ip (the one for

From f1db3cd0361b563655dec6948af499a4126c67fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 1 May 2023 21:17:12 -0300
Subject: [PATCH 07/27] python3-jupyter_core: update to 5.3.1, adopt.

---
 .../patches/platform_dirs_true.patch          | 24 +++++++++++++++++
 srcpkgs/python3-jupyter_core/template         | 26 +++++++++++++------
 srcpkgs/python3-jupyter_core/update           |  3 +++
 3 files changed, 45 insertions(+), 8 deletions(-)
 create mode 100644 srcpkgs/python3-jupyter_core/patches/platform_dirs_true.patch

diff --git a/srcpkgs/python3-jupyter_core/patches/platform_dirs_true.patch b/srcpkgs/python3-jupyter_core/patches/platform_dirs_true.patch
new file mode 100644
index 0000000000000..7f8a56d62bd96
--- /dev/null
+++ b/srcpkgs/python3-jupyter_core/patches/platform_dirs_true.patch
@@ -0,0 +1,24 @@
+Default to using platformdirs
+
+--- a/jupyter_core/paths.py	2020-02-01 21:00:00.000000000 -0300
++++ b/jupyter_core/paths.py	2023-06-04 00:49:36.985844333 -0300
+@@ -53,7 +53,7 @@
+     We plan for this to default to False in jupyter_core version 5 and to True
+     in jupyter_core version 6.
+     """
+-    return envset("JUPYTER_PLATFORM_DIRS", False)  # type:ignore[return-value]
++    return envset("JUPYTER_PLATFORM_DIRS", True)  # type:ignore[return-value]
+ 
+ 
+ def get_home_dir() -> str:
+--- a/jupyter_core/tests/test_paths.py	2020-02-01 21:00:00.000000000 -0300
++++ b/jupyter_core/tests/test_paths.py	2023-06-04 00:49:05.967219753 -0300
+@@ -86,7 +86,7 @@
+     return os.path.abspath(os.path.realpath(os.path.expanduser(path)))
+ 
+ 
+-home_jupyter = realpath("~/.jupyter")
++home_jupyter = realpath("~/.config/jupyter")
+ 
+ 
+ def test_envset():
diff --git a/srcpkgs/python3-jupyter_core/template b/srcpkgs/python3-jupyter_core/template
index 092921c77a5d4..57af2b9eff989 100644
--- a/srcpkgs/python3-jupyter_core/template
+++ b/srcpkgs/python3-jupyter_core/template
@@ -1,20 +1,30 @@
 # Template file for 'python3-jupyter_core'
 pkgname=python3-jupyter_core
-version=5.0.0
-revision=3
+version=5.3.1
+revision=1
 build_style=python3-pep517
-hostmakedepends="python3-flit_core hatchling"
+hostmakedepends="hatchling"
 depends="python3-traitlets python3-platformdirs"
+checkdepends="$depends python3-pytest python3-pip"
 short_desc="Jupyter core package"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://jupyter.org"
+changelog="https://raw.githubusercontent.com/jupyter/jupyter_core/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/j/jupyter_core/jupyter_core-${version}.tar.gz"
-checksum=4ed68b7c606197c7e344a24b7195eef57898157075a69655a886074b6beb7043
+checksum=5ba5c7938a7f97a6b0481463f7ff0dbac7c15ba48cf46fa4035ca6e838aa1aba
 conflicts="python-jupyter_core<=4.4.0_3"
-# checks create a cycle with python3-jypter_client and python3-ipython_ipykernel
-make_check=no
+
+do_check() {
+	# Running via PYTHONPATH breaks a few tests so we use a venv
+	local testdir="${wrksrc}/.xbps-testdir/$(date +%s)"
+	python3 -m venv --system-site-packages --without-pip "${testdir}"
+
+	local testpy="${testdir}/bin/python3"
+	"${testpy}" -m installer dist/*.whl
+	PATH="${testdir}/bin:${PATH}" "${testpy}" -m pytest
+}
 
 post_install() {
-	vlicense COPYING.md LICENSE
+	vlicense LICENSE
 }
diff --git a/srcpkgs/python3-jupyter_core/update b/srcpkgs/python3-jupyter_core/update
index 25ef51d109a4f..a42c0d0b9f127 100644
--- a/srcpkgs/python3-jupyter_core/update
+++ b/srcpkgs/python3-jupyter_core/update
@@ -1 +1,4 @@
 ignore="*a* *b* *rc*"
+# 5.3.2 breaks jupyter_client
+# (https://github.com/jupyter/jupyter_core/pull/362)
+ignore+=" 5.3.2"

From 123a9bbcb0b39409186fb82d01e4c743ad8e7c47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 25 May 2023 18:39:23 -0300
Subject: [PATCH 08/27] New package: python3-jupyter_events-0.7.0

---
 srcpkgs/python3-jupyter_events/template | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 srcpkgs/python3-jupyter_events/template

diff --git a/srcpkgs/python3-jupyter_events/template b/srcpkgs/python3-jupyter_events/template
new file mode 100644
index 0000000000000..a2d35ce419788
--- /dev/null
+++ b/srcpkgs/python3-jupyter_events/template
@@ -0,0 +1,20 @@
+# Template file for 'python3-jupyter_events'
+pkgname=python3-jupyter_events
+version=0.7.0
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling"
+depends="python3-jsonschema python3-json-logger python3-yaml python3-traitlets
+ python3-click python3-rich python3-rfc3339-validator python3-rfc3987"
+checkdepends="$depends python3-pytest-asyncio python3-pytest-console-scripts"
+short_desc="Configurable event system for Jupyter applications and extensions"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="BSD-3-Clause"
+homepage="https://github.com/jupyter/jupyter_events"
+changelog="https://raw.githubusercontent.com/jupyter/jupyter_events/main/CHANGELOG.md"
+distfiles="${PYPI_SITE}/j/jupyter_events/jupyter_events-${version}.tar.gz"
+checksum=7be27f54b8388c03eefea123a4f79247c5b9381c49fb1cd48615ee191eb12615
+
+post_install() {
+	vlicense LICENSE
+}

From fbcc08f8ba2072de9af1160cb28edc3539a0bf2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 23 May 2023 23:15:56 -0300
Subject: [PATCH 09/27] python3-jupyter_nbformat: update to 5.9.2, adopt.

---
 srcpkgs/python3-jupyter_nbformat/template | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/python3-jupyter_nbformat/template b/srcpkgs/python3-jupyter_nbformat/template
index 12c384639fe7f..357d1053e002a 100644
--- a/srcpkgs/python3-jupyter_nbformat/template
+++ b/srcpkgs/python3-jupyter_nbformat/template
@@ -1,21 +1,21 @@
 # Template file for 'python3-jupyter_nbformat'
 pkgname=python3-jupyter_nbformat
-version=5.3.0
-revision=3
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-jsonschema python3-traitlets
- python3-ipython_genutils python3-jupyter_core
- python3-fastjsonschema"
-checkdepends="python3-pytest python3-testpath $depends"
+version=5.9.2
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling hatch-nodejs-version"
+depends="python3-fastjsonschema python3-jsonschema python3-jupyter_core
+ python3-traitlets"
+checkdepends="$depends python3-pytest python3-testpath python3-pep440"
 short_desc="Jupyter notebook format"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter/nbformat"
+changelog="https://raw.githubusercontent.com/jupyter/nbformat/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/n/nbformat/nbformat-${version}.tar.gz"
-checksum=fcc5ab8cb74e20b19570b5be809e2dba9b82836fd2761a89066ad43394ba29f5
+checksum=5f98b5ba1997dff175e77e0c17d5c10a96eaed2cbd1de3533d1fc35d5e111192
 conflicts="python-jupyter_nbformat<=4.4.0_3"
 
 post_install() {
-	vlicense COPYING.md LICENSE
+	vlicense LICENSE
 }

From 3c6de7dd8cadd519ef41fb7e826461a72cd28972 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 24 May 2023 17:54:18 -0300
Subject: [PATCH 10/27] python3-jupyter_widgetsnbextension: update to 4.0.9,
 adopt.

---
 .../python3-jupyter_widgetsnbextension/template | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/python3-jupyter_widgetsnbextension/template b/srcpkgs/python3-jupyter_widgetsnbextension/template
index 059756289a09f..6015ea6e8d69a 100644
--- a/srcpkgs/python3-jupyter_widgetsnbextension/template
+++ b/srcpkgs/python3-jupyter_widgetsnbextension/template
@@ -1,19 +1,16 @@
 # Template file for 'python3-jupyter_widgetsnbextension'
 pkgname=python3-jupyter_widgetsnbextension
-version=3.5.1
-revision=5
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-jupyter_notebook"
-checkdepends="$depends"
+version=4.0.9
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-jupyter_packaging"
 short_desc="Interactive HTML widgets for Jupyter notebooks"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://pypi.org/project/widgetsnbextension/"
 distfiles="${PYPI_SITE}/w/widgetsnbextension/widgetsnbextension-${version}.tar.gz"
-checksum=079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7
-replaces="python-jupyter_widgetsnbextension-data>=0"
-conf_files="/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json"
+checksum=3c1f5e46dc1166dfd40a42d685e6a51396fd34ff878742a3e47c6f0cc4a2a385
+make_check=no  # Upstream defines no tests
 
 post_install() {
 	# /usr/etc is intended for *example configuration*

From d9ac4194b8e98ca08f1fce53f19e3beb74f87264 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 24 May 2023 13:25:40 -0300
Subject: [PATCH 11/27] python3-jupyterlab_pygments: update to 0.2.2.

---
 srcpkgs/python3-jupyterlab_pygments/template | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/python3-jupyterlab_pygments/template b/srcpkgs/python3-jupyterlab_pygments/template
index 034398f8cadac..cf382fcb45af2 100644
--- a/srcpkgs/python3-jupyterlab_pygments/template
+++ b/srcpkgs/python3-jupyterlab_pygments/template
@@ -1,18 +1,22 @@
 # Template file for 'python3-jupyterlab_pygments'
 pkgname=python3-jupyterlab_pygments
-version=0.1.2
-revision=4
-build_style=python3-module
-hostmakedepends="python3-setuptools"
+version=0.2.2
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-jupyter_packaging"
 depends="python3-Pygments"
 short_desc="Pygments theme making use of JupyterLab CSS variables"
 maintainer="dkwo <nicolopiazzalunga@gmail.com>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyterlab/jupyterlab_pygments"
 distfiles="${PYPI_SITE}/j/jupyterlab_pygments/jupyterlab_pygments-${version}.tar.gz"
-checksum=cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146
-# Upstream defines no tests
-make_check=no
+checksum=7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d
+make_check=no  # Upstream defines no tests
+
+post_patch() {
+	# jupyterlab not really needed for building
+	vsed -i -e 's|, "jupyterlab~=3.1"||' pyproject.toml
+}
 
 post_install() {
 	vlicense LICENSE

From 97786034f2f7f53c28cab490b7805a1eafccd084 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 1 May 2023 23:01:30 -0300
Subject: [PATCH 12/27] New package: python3-pytest-jupyter-0.7.0

---
 srcpkgs/python3-pytest-jupyter/template | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
 create mode 100644 srcpkgs/python3-pytest-jupyter/template

diff --git a/srcpkgs/python3-pytest-jupyter/template b/srcpkgs/python3-pytest-jupyter/template
new file mode 100644
index 0000000000000..c93ad7314446c
--- /dev/null
+++ b/srcpkgs/python3-pytest-jupyter/template
@@ -0,0 +1,25 @@
+# Template file for 'python3-pytest-jupyter'
+pkgname=python3-pytest-jupyter
+version=0.7.0
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling"
+depends="python3-jupyter_core python3-pytest-timeout"
+checkdepends="$depends"
+short_desc="Pytest plugins for Jupyter libraries and extensions"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="BSD-3-Clause"
+homepage="https://github.com/jupyter-server/pytest-jupyter"
+changelog="https://raw.githubusercontent.com/jupyter-server/pytest-jupyter/main/CHANGELOG.md"
+distfiles="${PYPI_SITE}/p/pytest_jupyter/pytest_jupyter-${version}.tar.gz"
+checksum=6403b7f6f5eaaa5a9faffd73d2ff1097106a7dc5c3204292212487fc9fb71843
+make_check=extended  # avoid a circular dependency
+
+if [ "$XBPS_CHECK_PKGS" = full ]; then
+	# this would cause a check cycle
+	checkdepends+=" python3-ipython_ipykernel python3-jupyter_server"
+fi
+
+post_install() {
+	vlicense LICENSE
+}

From efec1ee389f3061060fbb2e38f26d8540df65357 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 1 May 2023 22:43:07 -0300
Subject: [PATCH 13/27] python3-jupyter_client: update to 8.3.1, adopt.

---
 srcpkgs/python3-jupyter_client/template | 26 +++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/python3-jupyter_client/template b/srcpkgs/python3-jupyter_client/template
index 0cba01daca6f5..3484b2a96bec0 100644
--- a/srcpkgs/python3-jupyter_client/template
+++ b/srcpkgs/python3-jupyter_client/template
@@ -1,21 +1,27 @@
 # Template file for 'python3-jupyter_client'
 pkgname=python3-jupyter_client
-version=7.4.5
-revision=2
+version=8.3.1
+revision=1
 build_style=python3-pep517
-hostmakedepends="python3-flit_core hatchling"
-depends="python3-traitlets python3-jupyter_core python3-pyzmq
- python3-dateutil python3-tornado python3-nest_asyncio python3-entrypoints"
+hostmakedepends="hatchling"
+depends="python3-dateutil python3-jupyter_core python3-pyzmq python3-tornado"
+checkdepends="$depends inetutils-ifconfig iproute2 openssh
+ python3-pytest-jupyter  python3-pytest-timeout"
 short_desc="Jupyter protocol client APIs"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter/jupyter_client"
+changelog="https://raw.githubusercontent.com/jupyter/jupyter_client/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/j/jupyter_client/jupyter_client-${version}.tar.gz"
-checksum=63eae06c40e1f2d9afa14447511fddc065c95dea3f2491fda2acccf91221954a
+checksum=60294b2d5b869356c893f57b1a877ea6510d60d45cf4b38057f1672d85699ac9
 conflicts="python-jupyter_client<=5.2.4_2"
-# checks create a cycle with python3-jupyter_core and python3-ipython_ipykernel
-make_check=no
+make_check=extended  # avoid a circular dependency
+
+if [ "$XBPS_CHECK_PKGS" = full ]; then
+	# this would cause a build-time circular dependency
+	checkdepends+=" python3-ipython_ipykernel"
+fi
 
 post_install() {
-	vlicense COPYING.md LICENSE
+	vlicense LICENSE
 }

From b77c28c300633a2dd7ed3fc959fbf68d1e709153 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 2 May 2023 01:07:04 -0300
Subject: [PATCH 14/27] python3-ipython_ipykernel: update to 6.25.2, adopt.

---
 srcpkgs/python3-ipython_ipykernel/template | 41 +++++++++++++++-------
 1 file changed, 29 insertions(+), 12 deletions(-)

diff --git a/srcpkgs/python3-ipython_ipykernel/template b/srcpkgs/python3-ipython_ipykernel/template
index 68f4678ff2c9a..028b1aa989ba4 100644
--- a/srcpkgs/python3-ipython_ipykernel/template
+++ b/srcpkgs/python3-ipython_ipykernel/template
@@ -1,21 +1,38 @@
 # Template file for 'python3-ipython_ipykernel'
 pkgname=python3-ipython_ipykernel
-version=6.19.2
-revision=2
+version=6.25.2
+revision=1
 build_style=python3-pep517
-hostmakedepends="hatchling python3-jupyter_client python3-jupyter_core
- python3-platformdirs"
-depends="python3-ipython python3-traitlets python3-jupyter_client python3-tornado
- python3-matplotlib-inline python3-nest_asyncio python3-packaging python3-psutil
- python3 python3-comm python3-pyzmq"
-short_desc="IPython kernel for Jupyter (Python3)"
-maintainer="Orphaned <orphan@voidlinux.org>"
+# these tests fail in 6.25.2
+make_check_args="
+ --deselect ipykernel/tests/test_eventloop.py::test_asyncio_interrupt
+ --deselect ipykernel/tests/test_embed_kernel.py::test_embed_kernel_func
+ --deselect ipykernel/tests/test_kernelspec.py::test_install_kernelspec"
+hostmakedepends="hatchling python3-jupyter_client"
+depends="python3-comm python3-ipython python3-jupyter_client
+ python3-nest_asyncio python3-packaging python3-psutil python3-tornado"
+checkdepends="$depends python3-flaky python3-pytest-asyncio
+ python3-pytest-timeout python3-trio python3-curio python3-matplotlib
+ python3-PyQt5 python3-PyQt5-svg"
+short_desc="IPython kernel for Jupyter"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/ipython/ipykernel"
+changelog="https://raw.githubusercontent.com/ipython/ipykernel/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/i/ipykernel/ipykernel-${version}.tar.gz"
-checksum=1ab68d3d3654196266baa93990055413e167263ffbe4cfe834f871bcd3d3506d
-make_check=no # cycle with python3-jupyter_core and python3-jupyter_client
+checksum=f468ddd1f17acb48c8ce67fcfa49ba6d46d4f9ac0438c1f441be7c3d1372230b
+
+if [ "$XBPS_CHECK_PKGS" = full ]; then
+	# this would cause a build-time circular dependency
+	checkdepends+=" python3-ipyparallel"
+else
+	# These tests require ipyparallel
+	make_check_args+="
+	 --ignore ipykernel/tests/test_pickleutil.py
+	 --deselect ipykernel/tests/test_ipkernel_direct.py::test_do_apply
+	 "
+fi
 
 post_install() {
-	vlicense COPYING.md LICENSE
+	vlicense LICENSE
 }

From beb59b591be53042a48bad05587791ec369f8b04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 24 May 2023 23:03:23 -0300
Subject: [PATCH 15/27] python3-jupyter_ipywidgets: update to 8.1.1, adopt.

---
 srcpkgs/python3-jupyter_ipywidgets/template | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/python3-jupyter_ipywidgets/template b/srcpkgs/python3-jupyter_ipywidgets/template
index 74dc055801347..55d14cac26b21 100644
--- a/srcpkgs/python3-jupyter_ipywidgets/template
+++ b/srcpkgs/python3-jupyter_ipywidgets/template
@@ -1,17 +1,18 @@
 # Template file for 'python3-jupyter_ipywidgets'
 pkgname=python3-jupyter_ipywidgets
-version=7.6.3
-revision=4
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-jupyter_widgetsnbextension python3-ipython_ipykernel python3-traitlets"
-checkdepends="python3-pytest $depends"
+version=8.1.1
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-wheel"
+depends="python3-ipython_ipykernel"
+checkdepends="$depends python3-pytest python3-jsonschema python3-pytz"
 short_desc="IPython widgets for the Jupyter notebook"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter-widgets/ipywidgets"
+changelog="https://raw.githubusercontent.com/jupyter-widgets/ipywidgets/main/docs/source/changelog.md"
 distfiles="${PYPI_SITE}/i/ipywidgets/ipywidgets-${version}.tar.gz"
-checksum=9f1a43e620530f9e570e4a493677d25f08310118d315b00e25a18f12913c41f0
+checksum=40211efb556adec6fa450ccc2a77d59ca44a060f4f9f136833df59c9f538e6e8
 
 post_install() {
 	vlicense LICENSE

From e89a88b4422dfa32d88e7a6d6e64c462bc2c50a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 24 May 2023 23:14:20 -0300
Subject: [PATCH 16/27] python3-nbclient: update to 0.8.0.

---
 srcpkgs/python3-nbclient/template | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/srcpkgs/python3-nbclient/template b/srcpkgs/python3-nbclient/template
index 2b85205d4179e..9b2556aa53670 100644
--- a/srcpkgs/python3-nbclient/template
+++ b/srcpkgs/python3-nbclient/template
@@ -1,19 +1,25 @@
 # Template file for 'python3-nbclient'
 pkgname=python3-nbclient
-version=0.7.0
-revision=2
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-traitlets python3-jupyter_client
- python3-jupyter_nbformat python3-async_generator python3-nest_asyncio"
+version=0.8.0
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling"
+depends="python3-jupyter_client python3-jupyter_nbformat"
+checkdepends="$depends python3-pytest-asyncio python3-testpath
+ python3-flaky python3-jupyter_ipywidgets python3-xmltodict"
 short_desc="Client library for executing Jupyter notebooks"
 maintainer="dkwo <nicolopiazzalunga@gmail.com>"
 license="BSD-3-Clause"
 homepage="https://nbclient.readthedocs.io/en/latest/"
+changelog="https://raw.githubusercontent.com/jupyter/nbclient/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/n/nbclient/nbclient-${version}.tar.gz"
-checksum=a1d844efd6da9bc39d2209bf996dbd8e07bf0f36b796edfabaa8f8a9ab77c3aa
-# Package might need to be installed for testing
-make_check=no
+checksum=f9b179cd4b2d7bca965f900a2ebf0db4a12ebff2f36a711cb66861e4ae158e55
+make_check=extended  # avoid a circular dependency
+
+if [ "$XBPS_CHECK_PKGS" = full ]; then
+	# this would cause a build-time circular dependency
+	checkdepends+=" python3-jupyter_nbconvert"
+fi
 
 post_install() {
 	vlicense LICENSE

From cba70bc6896b5e0530eca694e46b8731011cdfbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 15 Jun 2023 17:05:06 -0300
Subject: [PATCH 17/27] python3-mistune: update to 3.0.2, adopt.

---
 srcpkgs/python3-mistune/template | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/python3-mistune/template b/srcpkgs/python3-mistune/template
index 6a448f5c78363..7630964cf1dd1 100644
--- a/srcpkgs/python3-mistune/template
+++ b/srcpkgs/python3-mistune/template
@@ -1,16 +1,18 @@
 # Template file for 'python3-mistune'
 pkgname=python3-mistune
-version=0.8.4
-revision=7
-build_style=python3-module
-hostmakedepends="python3-setuptools"
+version=3.0.2
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-setuptools python3-wheel"
 depends="python3"
-short_desc="Fast markdown parser for Python3"
-maintainer="Orphaned <orphan@voidlinux.org>"
+checkdepends="python3-pytest"
+short_desc="Markdown parser for Python"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
-homepage="https://github.com/lepture/mistune"
+homepage="https://mistune.lepture.com/"
+changelog="https://raw.githubusercontent.com/lepture/mistune/master/docs/changes.rst"
 distfiles="${PYPI_SITE}/m/mistune/mistune-${version}.tar.gz"
-checksum=59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e
+checksum=fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8
 
 post_install() {
 	vlicense LICENSE

From af9e1365dea8d94d03ccf481817a2b023bfcba51 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 25 May 2023 15:11:44 -0300
Subject: [PATCH 18/27] python3-jupyter_nbconvert: update to 7.9.2, adopt.

---
 .../files/README.voidlinux                    |  2 -
 srcpkgs/python3-jupyter_nbconvert/template    | 40 +++++++++++--------
 2 files changed, 24 insertions(+), 18 deletions(-)
 delete mode 100644 srcpkgs/python3-jupyter_nbconvert/files/README.voidlinux

diff --git a/srcpkgs/python3-jupyter_nbconvert/files/README.voidlinux b/srcpkgs/python3-jupyter_nbconvert/files/README.voidlinux
deleted file mode 100644
index 5efba6bbb86f1..0000000000000
--- a/srcpkgs/python3-jupyter_nbconvert/files/README.voidlinux
+++ /dev/null
@@ -1,2 +0,0 @@
-To convert notebooks to formats other than HTML and markdown install
-python3-Sphinx and/or pandoc.
diff --git a/srcpkgs/python3-jupyter_nbconvert/template b/srcpkgs/python3-jupyter_nbconvert/template
index 1ded2af967487..a580377d0f03f 100644
--- a/srcpkgs/python3-jupyter_nbconvert/template
+++ b/srcpkgs/python3-jupyter_nbconvert/template
@@ -1,26 +1,34 @@
 # Template file for 'python3-jupyter_nbconvert'
 pkgname=python3-jupyter_nbconvert
-version=6.4.5
-revision=3
-build_style=python3-module
-# WebPDF export depends on unpackaged pyppeteer
-make_check_args="-m not(network) -k not(test_webpdf_without_chromium)"
-hostmakedepends="python3-setuptools"
-depends="python3-mistune python3-Jinja2 python3-jupyterlab_pygments
- python3-nbclient python3-jupyter_core python3-entrypoints python3-testpath
- python3-bleach python3-pandocfilters python3-defusedxml
- python3-BeautifulSoup4"
-checkdepends="python3-pytest python3-ipython_ipykernel
- python3-jupyter_ipywidgets python3-Pebble pandoc inkscape $depends"
+version=7.9.2
+revision=1
+build_style=python3-pep517
+# these two tests require nbconvert.tests (not installed)
+make_check_args="-k not((test_convert_full_qualified_name)or(test_post_processor))"
+hostmakedepends="hatchling"
+depends="python3-BeautifulSoup4 python3-bleach python3-defusedxml
+ python3-Jinja2 python3-jupyter_core python3-jupyterlab_pygments
+ python3-MarkupSafe python3-mistune python3-nbclient
+ python3-jupyter_nbformat python3-packaging python3-pandocfilters
+ python3-tinycss2"
+checkdepends="$depends python3-pytest python3-jupyter_ipywidgets
+ asciidoc inkscape pandoc python3-flaky python3-PyQt5"
 short_desc="Converting Jupyter notebooks"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter/nbconvert"
+changelog="https://raw.githubusercontent.com/jupyter/nbconvert/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/n/nbconvert/nbconvert-${version}.tar.gz"
-checksum=21163a8e2073c07109ca8f398836e45efdba2aacea68d6f75a8a545fef070d4e
-conflicts="python-jupyter_nbconvert<=5.4.1_2"
+checksum=e56cc7588acc4f93e2bb5a34ec69028e4941797b2bfaf6462f18a41d1cc258c9
+
+pre_check() {
+	# templates must be in $JUPYTER_DATA_DIR/nbconvert/templates
+	# but they are in ${wrksrc}/share/templates
+	# fix with a symlink  share/nbconvert -> share/.
+	[ -d share/nbconvert ] || ln -s . share/nbconvert
+	make_check_pre="env JUPYTER_DATA_DIR=${wrksrc}/share"
+}
 
 post_install() {
 	vlicense LICENSE
-	vdoc "${FILESDIR}/README.voidlinux"
 }

From 8ae6c1b95c7252f83062e58a34ce715f6d675540 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 25 May 2023 19:05:16 -0300
Subject: [PATCH 19/27] New package: python3-jupyter_server_terminals-0.4.4

---
 .../python3-jupyter_server_terminals/template | 26 +++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 srcpkgs/python3-jupyter_server_terminals/template

diff --git a/srcpkgs/python3-jupyter_server_terminals/template b/srcpkgs/python3-jupyter_server_terminals/template
new file mode 100644
index 0000000000000..799e4396f8325
--- /dev/null
+++ b/srcpkgs/python3-jupyter_server_terminals/template
@@ -0,0 +1,26 @@
+# Template file for 'python3-jupyter_server_terminals'
+pkgname=python3-jupyter_server_terminals
+version=0.4.4
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling"
+depends="python3-terminado"
+checkdepends="$depends python3-pytest-jupyter"
+short_desc="Jupyter server extension providing support for terminals"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
+license="BSD-3-Clause"
+homepage="https://github.com/jupyter-server/jupyter_server_terminals"
+changelog="https://raw.githubusercontent.com/jupyter-server/jupyter_server_terminals/main/CHANGELOG.md"
+distfiles="${PYPI_SITE}/j/jupyter_server_terminals/jupyter_server_terminals-${version}.tar.gz"
+checksum=57ab779797c25a7ba68e97bcfb5d7740f2b5e8a83b5e8102b10438041a7eac5d
+make_check=extended  # avoid a circular dependency
+
+if [ "$XBPS_CHECK_PKGS" = full ]; then
+	# this would cause a build-time circular dependency
+	checkdepends+=" python3-jupyter_server"
+fi
+
+post_install() {
+	mv ${DESTDIR}/usr/etc ${DESTDIR}
+	vlicense LICENSE
+}

From 6fdaaec242fffd89314b816285536abca21d196b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 25 May 2023 22:30:26 -0300
Subject: [PATCH 20/27] python3-jupyter_server: update to 2.7.3.

---
 .../patches/pytest-xdist.patch                | 38 ++++++++++++++++++
 .../patches/utcnow-deprecation.patch          | 39 ++++++++++++++++++
 srcpkgs/python3-jupyter_server/template       | 40 +++++++++++--------
 3 files changed, 101 insertions(+), 16 deletions(-)
 create mode 100644 srcpkgs/python3-jupyter_server/patches/pytest-xdist.patch
 create mode 100644 srcpkgs/python3-jupyter_server/patches/utcnow-deprecation.patch

diff --git a/srcpkgs/python3-jupyter_server/patches/pytest-xdist.patch b/srcpkgs/python3-jupyter_server/patches/pytest-xdist.patch
new file mode 100644
index 0000000000000..4b2c6976a3b4e
--- /dev/null
+++ b/srcpkgs/python3-jupyter_server/patches/pytest-xdist.patch
@@ -0,0 +1,38 @@
+commit 2dfc67655dd589948250c49c093bd25c4f08f77c
+Author: Gonzalo Tornaría <tornaria@cmat.edu.uy>
+Date:   Thu May 25 22:28:37 2023 -0300
+
+    Fix test param for pytest-xdist
+
+diff --git a/tests/test_gateway.py b/tests/test_gateway.py
+index fec747afe..8f7f8a463 100644
+--- a/tests/test_gateway.py
++++ b/tests/test_gateway.py
+@@ -362,15 +362,12 @@ def test_gateway_request_timeout_pad_option(
+     GatewayClient.clear_instance()
+ 
+ 
+-cookie_expire_time = format_datetime(datetime.now(tz=timezone.utc) + timedelta(seconds=180))
+-
+-
+ @pytest.mark.parametrize(
+     "accept_cookies,expire_arg,expire_param,existing_cookies,cookie_exists",
+     [
+         (False, None, None, "EXISTING=1", False),
+         (True, None, None, "EXISTING=1", True),
+-        (True, "Expires", cookie_expire_time, None, True),
++        (True, "Expires", 180, None, True),
+         (True, "Max-Age", "-360", "EXISTING=1", False),
+     ],
+ )
+@@ -389,6 +386,10 @@ def test_gateway_request_with_expiring_cookies(
+ 
+     cookie: SimpleCookie = SimpleCookie()
+     cookie.load("SERVERID=1234567; Path=/")
++    if expire_arg == "Expires":
++        expire_param = format_datetime(
++                datetime.now(tz=timezone.utc) +
++                timedelta(seconds=expire_param))
+     if expire_arg:
+         cookie["SERVERID"][expire_arg] = expire_param
+ 
diff --git a/srcpkgs/python3-jupyter_server/patches/utcnow-deprecation.patch b/srcpkgs/python3-jupyter_server/patches/utcnow-deprecation.patch
new file mode 100644
index 0000000000000..2d3f38fd0935a
--- /dev/null
+++ b/srcpkgs/python3-jupyter_server/patches/utcnow-deprecation.patch
@@ -0,0 +1,39 @@
+diff --git a/jupyter_server/_tz.py b/jupyter_server/_tz.py
+index 4444c93db..3c7897515 100644
+--- a/jupyter_server/_tz.py
++++ b/jupyter_server/_tz.py
+@@ -5,7 +5,7 @@ Just UTC-awareness right now
+ """
+ # Copyright (c) Jupyter Development Team.
+ # Distributed under the terms of the Modified BSD License.
+-from datetime import datetime, timedelta, tzinfo
++from datetime import datetime, timedelta, tzinfo, timezone
+ 
+ # constant for zero offset
+ ZERO = timedelta(0)
+@@ -39,6 +39,12 @@ def utc_aware(unaware):
+ utcfromtimestamp = utc_aware(datetime.utcfromtimestamp)
+ utcnow = utc_aware(datetime.utcnow)
+ 
++def utcnow() -> datetime:
++    """ Return timezone-aware UTC timestamp"""
++    return datetime.now(timezone.utc)
++
++def utcfromtimestamp(timestamp):
++    return datetime.fromtimestamp(timestamp, timezone.utc)
+ 
+ def isoformat(dt):
+     """Return iso-formatted timestamp
+diff --git a/tests/test_gateway.py b/tests/test_gateway.py
+index 8f7f8a463..598006e29 100644
+--- a/tests/test_gateway.py
++++ b/tests/test_gateway.py
+@@ -78,7 +78,7 @@ omitted_kernels: Dict[str, bool] = {}
+ 
+ def generate_model(name):
+     """Generate a mocked kernel model.  Caller is responsible for adding model to running_kernels dictionary."""
+-    dt = datetime.utcnow().isoformat() + "Z"  # noqa
++    dt = datetime.now(timezone.utc).isoformat().replace("+00:00", "Z")  # noqa
+     kernel_id = str(uuid.uuid4())
+     model = {
+         "id": kernel_id,
diff --git a/srcpkgs/python3-jupyter_server/template b/srcpkgs/python3-jupyter_server/template
index 8b1cf9fe7c569..b0bd9f2f758bc 100644
--- a/srcpkgs/python3-jupyter_server/template
+++ b/srcpkgs/python3-jupyter_server/template
@@ -1,26 +1,34 @@
 # Template file for 'python3-jupyter_server'
 pkgname=python3-jupyter_server
-version=1.23.1
-revision=2
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-anyio python3-jupyter_client python3-jupyter_nbformat
- python3-jupyter_nbconvert python3-terminado
- python3-prometheus_client python3-traitlets python3-tornado
- python3-Jinja2 python3-send2trash python3-websocket-client"
-checkdepends="${depends} python3-argon2 python3-packaging
- python3-coverage python3-pytest-mock python3-requests
- python3-pytest python3-pytest-timeout python3-pytest-asyncio"
+version=2.7.3
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling hatch-jupyter-builder"
+depends="python3-anyio python3-argon2 python3-jupyter_client
+ python3-jupyter_events python3-jupyter_nbconvert
+ python3-jupyter_server_terminals python3-overrides
+ python3-prometheus_client python3-send2trash
+ python3-websocket-client"
+checkdepends="$depends pandoc python3-ipython_ipykernel
+ python3-pytest-console-scripts python3-pytest-jupyter
+ python3-pytest-xdist python3-requests python3-flaky"
 short_desc="Backend to Jupyter web applications"
 maintainer="dkwo <nicolopiazzalunga@gmail.com>"
 license="BSD-3-Clause"
-homepage="https://jupyter.org"
+homepage="https://github.com/jupyter-server/jupyter_server"
 changelog="https://raw.githubusercontent.com/jupyter-server/jupyter_server/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/j/jupyter-server/jupyter_server-${version}.tar.gz"
-checksum=cee48d9d96cecd0f94b7cb41ecd4f0ab05b01643769f61c5d397b7873bc9a1e2
-# missing pytest-tornasync, pytest-console-scripts
-make_check=no
+checksum=d4916c8581c4ebbc534cebdaa8eca2478d9f3bfdd88eae29fcab0120eac57649
+
+if [ "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ]; then
+	# these tests fail on CI (connect to a tcp address)
+	make_check_args="
+	 --deselect=tests/extension/test_launch.py::test_launch_instance
+	 --deselect=tests/extension/test_launch.py::test_base_url
+	 --deselect=tests/extension/test_launch.py::test_token_file
+	 "
+fi
 
 post_install() {
-	vlicense COPYING.md
+	vlicense LICENSE
 }

From 65d3ef85346cc8d421e875652e5bc2b7655ab3f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Wed, 24 May 2023 12:09:02 -0300
Subject: [PATCH 21/27] python3-notebook_shim: update to 0.2.3.

---
 srcpkgs/python3-notebook_shim/template | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/python3-notebook_shim/template b/srcpkgs/python3-notebook_shim/template
index 490564a7fb8e9..c1e58a8e8159a 100644
--- a/srcpkgs/python3-notebook_shim/template
+++ b/srcpkgs/python3-notebook_shim/template
@@ -1,19 +1,20 @@
 # Template file for 'python3-notebook_shim'
 pkgname=python3-notebook_shim
-version=0.2.2
-revision=2
+version=0.2.3
+revision=1
 build_style=python3-pep517
 hostmakedepends="hatchling"
 depends="python3-jupyter_server"
+checkdepends="$depends python3-pytest-jupyter"
 short_desc="Shim layer for notebook traits and config"
 maintainer="dkwo <npiazza@disroot.org>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter/notebook_shim"
+changelog="https://raw.githubusercontent.com/jupyter/notebook_shim/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/n/notebook_shim/notebook_shim-${version}.tar.gz"
-checksum=090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f
-make_check=no # missing pytest_tornasync
+checksum=f69388ac283ae008cd506dda10d0288b09a017d822d5e8c7129a152cbd3ce7e9
 
 post_install() {
+	mv ${DESTDIR}/usr/etc ${DESTDIR}
 	vlicense LICENSE
-	mv "${PKGDESTDIR}/usr/etc" ${PKGDESTDIR}/etc/
 }

From 781c1ee7e9d232e426488ddd69d5f0ed5db2c726 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Thu, 25 May 2023 23:12:45 -0300
Subject: [PATCH 22/27] python3-nbclassic: update to 1.0.0.

---
 srcpkgs/python3-nbclassic/template | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/srcpkgs/python3-nbclassic/template b/srcpkgs/python3-nbclassic/template
index 81fb183100692..6f6d16a47a4ed 100644
--- a/srcpkgs/python3-nbclassic/template
+++ b/srcpkgs/python3-nbclassic/template
@@ -1,25 +1,25 @@
 # Template file for 'python3-nbclassic'
 pkgname=python3-nbclassic
-version=0.4.8
-revision=2
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-jupyter_notebook python3-jupyter_server"
-checkdepends="${depends} python3-pytest python3-pytest-fixture-config python3-pytest-subtests"
+version=1.0.0
+revision=1
+build_style=python3-pep517
+make_build_args="--skip-dependency-check"
+hostmakedepends="python3-jupyter_packaging python3-jupyter_server"
+depends="mathjax2 python3-notebook_shim"
+checkdepends="$depends python3-pytest-jupyter"
 short_desc="Jupyter Notebook as a Jupyter Server Extension"
 maintainer="dkwo <nicolopiazzalunga@gmail.com>"
 license="BSD-3-Clause"
-homepage="https://jupyter.org"
+homepage="https://github.com/jupyter/nbclassic"
+changelog="https://raw.githubusercontent.com/jupyter/nbclassic/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/n/nbclassic/nbclassic-${version}.tar.gz"
-checksum=c74d8a500f8e058d46b576a41e5bc640711e1032cf7541dde5f73ea49497e283
-# missing fixtures: jp_create_notebook jp_fetch
-make_check=no
-
-conf_files="/etc/jupyter/jupyter_server_config.d/*.json"
+checksum=0ae11eb2319455d805596bf320336cda9554b41d99ab9a3c31bf8180bffa30e3
 
 post_install() {
 	vlicense LICENSE
+	mv ${DESTDIR}/usr/etc ${DESTDIR}
 
-	# jupyter honors /etc/juypter; move config files there
-	mv "${DESTDIR}/usr/etc" "${DESTDIR}/etc"
+	# use system mathjax2
+	rm -rf ${DESTDIR}/${py3_sitelib}/nbclassic/static/components/MathJax
+	ln -sf /usr/share/mathjax ${DESTDIR}/${py3_sitelib}/nbclassic/static/components/MathJax
 }

From 68880c3354ac72be63db8d0b7f720ea3ac984e77 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sat, 27 May 2023 17:50:24 -0300
Subject: [PATCH 23/27] python3-jupyterlab_server: update to 2.25.0.

---
 srcpkgs/python3-jupyterlab_server/template | 36 ++++++++++++++++------
 1 file changed, 26 insertions(+), 10 deletions(-)

diff --git a/srcpkgs/python3-jupyterlab_server/template b/srcpkgs/python3-jupyterlab_server/template
index 41f51c913ebb0..a5e452e9d6c81 100644
--- a/srcpkgs/python3-jupyterlab_server/template
+++ b/srcpkgs/python3-jupyterlab_server/template
@@ -1,18 +1,34 @@
 # Template file for 'python3-jupyterlab_server'
 pkgname=python3-jupyterlab_server
-version=2.10.3
-revision=3
-build_style=python3-module
-hostmakedepends="python3-setuptools python3-jupyter_notebook python3-jupyter_server"
-depends="python3-requests python3-json5 python3-Babel"
-short_desc="Server components for JupyterLab and -like applications"
+version=2.25.0
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling"
+depends="python3-jupyter_server python3-Babel python3-json5 python3-requests"
+checkdepends="$depends python3-pytest-jupyter python3-openapi-core
+ python3-requests-mock python3-strict-rfc3339 python3-ruamel.yaml python3-pip"
+short_desc="Server components for JupyterLab and JL-like applications"
 maintainer="dkwo <nicolopiazzalunga@gmail.com>"
 license="BSD-3-Clause"
-homepage="https://jupyter.org"
+homepage="https://github.com/jupyterlab/jupyterlab_server"
+changelog="https://raw.githubusercontent.com/jupyterlab/jupyterlab_server/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/j/jupyterlab_server/jupyterlab_server-${version}.tar.gz"
-checksum=3fb84a5813d6d836ceda773fb2d4e9ef3c7944dbc1b45a8d59d98641a80de80a
-# Tests require unpackaged dependencies
-make_check=no
+checksum=77c2f1f282d610f95e496e20d5bf1d2a7706826dfb7b18f3378ae2870d272fb7
+
+if [ "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ]; then
+	# tests setup fails on CI (no idea why)
+	make_check_args="-p no:unraisableexception"
+fi
+
+do_check() {
+	# test_translation_api.py needs to run in a venv
+	local testdir="${wrksrc}/.xbps-testdir/$(date +%s)"
+	python3 -m venv --system-site-packages --without-pip "${testdir}"
+
+	local testpy="${testdir}/bin/python3"
+	"${testpy}" -m installer dist/*.whl
+	PATH="${testdir}/bin:${PATH}" "${testpy}" -m pytest
+}
 
 post_install() {
 	vlicense LICENSE

From 6a27cad4f55b588403194d648714162034191da6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Sun, 28 May 2023 18:19:20 -0300
Subject: [PATCH 24/27] jupyterlab: update to 4.0.6.

---
 srcpkgs/jupyterlab/template | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/jupyterlab/template b/srcpkgs/jupyterlab/template
index b7159e5a0311b..360a41f3a5b26 100644
--- a/srcpkgs/jupyterlab/template
+++ b/srcpkgs/jupyterlab/template
@@ -1,22 +1,22 @@
 # Template file for 'jupyterlab'
 pkgname=jupyterlab
-version=3.5.0
-revision=3
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-jupyterlab_server nodejs python3-nbclassic
- python3-requests-unixsocket python3-jupyter_ipywidgets
- python3-notebook_shim"
+version=4.0.6
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling hatch-jupyter-builder"
+depends="nodejs python3-async-lru python3-ipython_ipykernel
+ python3-jupyterlab_server python3-notebook_shim python3-tomli"
+checkdepends="$depends python3-pytest-jupyter python3-pytest-xdist"
 short_desc="JupyterLab computational environment"
 maintainer="dkwo <nicolopiazzalunga@gmail.com>"
 license="custom:jupyterlab"
-homepage="https://jupyter.org"
+homepage="https://github.com/jupyterlab/jupyterlab/"
+changelog="https://raw.githubusercontent.com/jupyterlab/jupyterlab/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/j/jupyterlab/jupyterlab-${version}.tar.gz"
-checksum=e02556c8ea1b386963c4b464e4618aee153c5416b07ab481425c817a033323a2
-# Tests require unpackaged dependencies
-make_check=no
+checksum=6c43ae5a6a1fd2fdfafcb3454004958bde6da76331abb44cffc6f9e436b19ba1
 
 post_install() {
+	mv ${DESTDIR}/usr/etc ${DESTDIR}
 	vlicense LICENSE
 	vinstall "${FILESDIR}/jupyterlab.sh" 644 etc/profile.d
 }

From f6ec15b5b6d4b7c07476d7b82c788190da1ff958 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Mon, 29 May 2023 16:40:44 -0300
Subject: [PATCH 25/27] python3-jupyter_notebook: update to 7.0.4.

---
 srcpkgs/python3-jupyter_notebook/template | 30 +++++++++--------------
 srcpkgs/python3-jupyter_notebook/update   |  2 +-
 2 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/srcpkgs/python3-jupyter_notebook/template b/srcpkgs/python3-jupyter_notebook/template
index 6aafbbba6d7cb..6e386070f27c5 100644
--- a/srcpkgs/python3-jupyter_notebook/template
+++ b/srcpkgs/python3-jupyter_notebook/template
@@ -1,27 +1,21 @@
 # Template file for 'python3-jupyter_notebook'
 pkgname=python3-jupyter_notebook
-version=6.4.10
-revision=4
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-Jinja2 python3-terminado python3-tornado
- python3-ipython_genutils python3-traitlets python3-jupyter_core
- python3-jupyter_client python3-jupyter_nbformat python3-jupyter_nbconvert
- python3-ipython_ipykernel python3-send2trash python3-prometheus_client
- mathjax2 python3-argon2"
+version=7.0.4
+revision=1
+build_style=python3-pep517
+make_build_args="--skip-dependency-check"
+hostmakedepends="hatchling hatch-jupyter-builder jupyterlab"
+depends="python3-jupyter_client python3-jupyter_server"
+checkdepends="$depends python3-pytest-jupyter"
 short_desc="Jupyter interactive notebook"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
-homepage="https://jupyter.org/"
+homepage="https://github.com/jupyter/notebook"
+changelog="https://raw.githubusercontent.com/jupyter/notebook/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/n/notebook/notebook-${version}.tar.gz"
-checksum=2408a76bc6289283a8eecfca67e298ec83c67db51a4c2e1b713dd180bb39e90e
-conflicts="python-jupyter_notebook<=5.7.0_2"
-# Tests require unpackaged selenium
-make_check=no
+checksum=0c1b458f72ce8774445c8ef9ed2492bd0b9ce9605ac996e2b066114f69795e71
 
 post_install() {
+	mv ${DESTDIR}/usr/etc ${DESTDIR}
 	vlicense LICENSE
-	# use system mathjax
-	rm -rf ${DESTDIR}/${py3_sitelib}/notebook/static/components/MathJax
-	ln -sf /usr/share/mathjax ${DESTDIR}/${py3_sitelib}/notebook/static/components/MathJax
 }
diff --git a/srcpkgs/python3-jupyter_notebook/update b/srcpkgs/python3-jupyter_notebook/update
index 1bb284fed4967..276c9bf787e58 100644
--- a/srcpkgs/python3-jupyter_notebook/update
+++ b/srcpkgs/python3-jupyter_notebook/update
@@ -1,2 +1,2 @@
 pkgname=notebook
-ignore="*a* *b* *rc*"
+#ignore="*a* *b* *rc*"

From 9dfd64755fac7cc48a9494128cb76b38dcd8d643 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 26 Sep 2023 17:13:52 -0300
Subject: [PATCH 26/27] python3-jupyter_console: update to 6.6.3, adopt.

---
 srcpkgs/python3-jupyter_console/template | 31 +++++++++++++++---------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/srcpkgs/python3-jupyter_console/template b/srcpkgs/python3-jupyter_console/template
index 9bbbb0488d400..2af1e4875ca39 100644
--- a/srcpkgs/python3-jupyter_console/template
+++ b/srcpkgs/python3-jupyter_console/template
@@ -1,22 +1,29 @@
 # Template file for 'python3-jupyter_console'
 pkgname=python3-jupyter_console
-version=6.4.4
-revision=2
-build_style=python3-module
-hostmakedepends="python3-setuptools"
-depends="python3-ipython python3-ipython_ipykernel python3-jupyter_client
- python3-prompt_toolkit python3-Pygments python3-traitlets"
-checkdepends="$depends python3-pytest"
+version=6.6.3
+revision=1
+build_style=python3-pep517
+hostmakedepends="hatchling"
+depends="python3-ipython_ipykernel python3-ipython python3-jupyter_client
+ python3-jupyter_core python3-prompt_toolkit python3-Pygments python3-pyzmq
+ python3-traitlets"
+checkdepends="$depends python3-pytest python3-flaky"
 short_desc="Jupyter terminal console (Python3)"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter/jupyter_console"
+changelog="https://raw.githubusercontent.com/jupyter/jupyter_console/main/CHANGELOG.md"
 distfiles="${PYPI_SITE}/j/jupyter_console/jupyter_console-${version}.tar.gz"
-checksum=172f5335e31d600df61613a97b7f0352f2c8250bbd1092ef2d658f77249f89fb
-# alternatives will be a conflict
+checksum=566a4bf31c87adbfadf22cdf846e3069b59a71ed5da71d6ba4d8aaad14a53539
 conflicts="python-jupyter_console<=6.0.0_2"
-# Tests fail because stdin is not a terminal
-make_check=no
+
+if [ "$XBPS_BUILD_ENVIRONMENT" = void-packages-ci ]; then
+	# this test fails on CI (pexpect gets ": 5" instead of the
+	# expected "Out[1]: 5" causing a timeout)
+	make_check_args="
+	 --deselect=jupyter_console/tests/test_console.py::test_console_starts
+	 "
+fi
 
 post_install() {
 	vlicense LICENSE

From 887252105077ebdb1dfcd9d56f06b320431379c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 26 Sep 2023 17:42:33 -0300
Subject: [PATCH 27/27] python3-jupyter_qtconsole: update to 5.4.4, adopt.

---
 srcpkgs/python3-jupyter_qtconsole/template | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/srcpkgs/python3-jupyter_qtconsole/template b/srcpkgs/python3-jupyter_qtconsole/template
index e3ffc5eb87dec..a7d38b0253ca9 100644
--- a/srcpkgs/python3-jupyter_qtconsole/template
+++ b/srcpkgs/python3-jupyter_qtconsole/template
@@ -1,26 +1,22 @@
 # Template file for 'python3-jupyter_qtconsole'
 pkgname=python3-jupyter_qtconsole
-version=4.7.1
-revision=5
-build_style=python3-module
-hostmakedepends="python3-setuptools"
+version=5.4.4
+revision=1
+build_style=python3-pep517
+hostmakedepends="python3-setuptools python3-wheel"
 depends="python3-traitlets python3-jupyter_core python3-jupyter_client
  python3-Pygments python3-ipython_ipykernel python3-ipython_genutils
  python3-PyQt5-svg python3-QtPy"
 checkdepends="$depends python3-pytest-qt python3-flaky"
 short_desc="Jupyter Qt console"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="BSD-3-Clause"
 homepage="https://github.com/jupyter/qtconsole"
+changelog="https://raw.githubusercontent.com/jupyter/qtconsole/master/docs/source/changelog.rst"
 distfiles="${PYPI_SITE}/q/qtconsole/qtconsole-${version}.tar.gz"
-checksum=d51c1c51c81fbd1fac62b2d4bdc8b54fb6b7cbe6cbf70c3baeea11516525c956
+checksum=b7ffb53d74f23cee29f4cdb55dd6fabc8ec312d94f3c46ba38e1dde458693dfb
 conflicts="python-jupyter_qtconsole<=4.4.3_2"
 
-do_check() {
-	# flaky test
-	pytest -k 'not test_frontend_to_kernel'
-}
-
 post_install() {
 	vlicense LICENSE
 }

  parent reply	other threads:[~2023-10-09 21:10 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-30  2:01 [PR PATCH] " tornaria
2023-05-30  2:15 ` tornaria
2023-05-30 21:51 ` dkwo
2023-05-31  0:10 ` tornaria
2023-06-28 21:30 ` dkwo
2023-07-06  1:43 ` dkwo
2023-07-06  2:08 ` [PR REVIEW] " classabbyamp
2023-08-19  8:42 ` dkwo
2023-08-19  8:42 ` dkwo
2023-08-19 19:00 ` tornaria
2023-09-26  1:47 ` [PR PATCH] [Updated] " tornaria
2023-09-26 13:54 ` tornaria
2023-09-26 19:46 ` tornaria
2023-09-26 20:27 ` tornaria
2023-09-27 13:00 ` tornaria
2023-09-28  1:40 ` tornaria
2023-09-28 23:40 ` tornaria
2023-09-29  0:48 ` tornaria
2023-09-29 12:30 ` tornaria
2023-09-30  2:53 ` tornaria
2023-09-30 15:49 ` tornaria
2023-10-02 19:06 ` dkwo
2023-10-03  0:15 ` tornaria
2023-10-03 15:19 ` dkwo
2023-10-09 21:10 ` tornaria [this message]
2023-10-09 21:31 ` [PR PATCH] [Updated] " tornaria
2023-10-09 21:31 ` tornaria
2023-10-09 21:41 ` [PR PATCH] [Updated] " tornaria
2023-10-09 22:11 ` tornaria
2023-10-09 22:31 ` dkwo
2023-10-10 13:44 ` tornaria
2023-10-10 14:21 ` [PR PATCH] [Updated] " tornaria
2023-10-10 15:19 ` tornaria
2023-10-10 16:22 ` Updates " tornaria
2023-10-10 16:24 ` tornaria
2023-10-10 16:29 ` [PR PATCH] [Merged]: " ahesford
2023-10-10 17:34 ` dkwo
2023-10-10 20:32 ` tornaria
2023-10-10 21:00 ` dkwo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231009211048.hnsiy_Fs9k34_DQU1GinLItLMVvWgrHg-itz5J9yjq0@z \
    --to=tornaria@users.noreply.github.com \
    --cc=ml@inbox.vuxu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).