Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-ipykernel for openSUSE:Factory checked in at 2023-09-25 20:02:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-ipykernel (Old) and /work/SRC/openSUSE:Factory/.python-ipykernel.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ipykernel" Mon Sep 25 20:02:43 2023 rev:42 rq:1113234 version:6.25.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-ipykernel/python-ipykernel.changes 2023-08-23 14:59:48.490225480 +0200 +++ /work/SRC/openSUSE:Factory/.python-ipykernel.new.1770/python-ipykernel.changes 2023-09-25 20:58:17.913573588 +0200 @@ -1,0 +2,10 @@ +Sat Sep 23 16:44:53 UTC 2023 - Ben Greiner <c...@bnavigator.de> + +- Update to 6.25.2 + * Make iostream shutdown more robust #1143 (@blink1073) + * Don't call QApplication.setQuitOnLastWindowClosed(False). #1142 + (@anntzer) + * Avoid starting IOPub background thread after it's been stopped + #1137 (@minrk) + +------------------------------------------------------------------- Old: ---- ipykernel-6.25.1.tar.gz New: ---- ipykernel-6.25.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-ipykernel.spec ++++++ --- /var/tmp/diff_new_pack.m8N4KP/_old 2023-09-25 20:58:18.945610871 +0200 +++ /var/tmp/diff_new_pack.m8N4KP/_new 2023-09-25 20:58:18.945610871 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-ipykernel -Version: 6.25.1 +Version: 6.25.2 Release: 0 Summary: IPython Kernel for Jupyter License: BSD-3-Clause ++++++ ipykernel-6.25.1.tar.gz -> ipykernel-6.25.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-6.25.1/CHANGELOG.md new/ipykernel-6.25.2/CHANGELOG.md --- old/ipykernel-6.25.1/CHANGELOG.md 2020-02-02 01:00:00.000000000 +0100 +++ new/ipykernel-6.25.2/CHANGELOG.md 2020-02-02 01:00:00.000000000 +0100 @@ -2,6 +2,24 @@ <!-- <START NEW CHANGELOG ENTRY> --> +## 6.25.2 + +([Full Changelog](https://github.com/ipython/ipykernel/compare/v6.25.1...9d3f7aecc4fe68f14ebcc4dad4b65b19676e820e)) + +### Bugs fixed + +- Make iostream shutdown more robust [#1143](https://github.com/ipython/ipykernel/pull/1143) ([@blink1073](https://github.com/blink1073)) +- Don't call QApplication.setQuitOnLastWindowClosed(False). [#1142](https://github.com/ipython/ipykernel/pull/1142) ([@anntzer](https://github.com/anntzer)) +- Avoid starting IOPub background thread after it's been stopped [#1137](https://github.com/ipython/ipykernel/pull/1137) ([@minrk](https://github.com/minrk)) + +### Contributors to this release + +([GitHub contributors page for this release](https://github.com/ipython/ipykernel/graphs/contributors?from=2023-08-07&to=2023-09-04&type=c)) + +[@anntzer](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aanntzer+updated%3A2023-08-07..2023-09-04&type=Issues) | [@blink1073](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Ablink1073+updated%3A2023-08-07..2023-09-04&type=Issues) | [@ccordoba12](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Accordoba12+updated%3A2023-08-07..2023-09-04&type=Issues) | [@minrk](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Aminrk+updated%3A2023-08-07..2023-09-04&type=Issues) + +<!-- <END NEW CHANGELOG ENTRY> --> + ## 6.25.1 ([Full Changelog](https://github.com/ipython/ipykernel/compare/v6.25.0...18e54f31725d6645dd71a8749c9e1eb28281f804)) @@ -18,8 +36,6 @@ [@pre-commit-ci](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Apre-commit-ci+updated%3A2023-07-25..2023-08-07&type=Issues) | [@vaishnavi17](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Avaishnavi17+updated%3A2023-07-25..2023-08-07&type=Issues) -<!-- <END NEW CHANGELOG ENTRY> --> - ## 6.25.0 ([Full Changelog](https://github.com/ipython/ipykernel/compare/v6.24.0...09c3c359addf60e26078207990ad2ca932cf2613)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-6.25.1/PKG-INFO new/ipykernel-6.25.2/PKG-INFO --- old/ipykernel-6.25.1/PKG-INFO 2020-02-02 01:00:00.000000000 +0100 +++ new/ipykernel-6.25.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: ipykernel -Version: 6.25.1 +Version: 6.25.2 Summary: IPython Kernel for Jupyter Project-URL: Homepage, https://ipython.org Author-email: IPython Development Team <ipython-...@scipy.org> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-6.25.1/ipykernel/_version.py new/ipykernel-6.25.2/ipykernel/_version.py --- old/ipykernel-6.25.1/ipykernel/_version.py 2020-02-02 01:00:00.000000000 +0100 +++ new/ipykernel-6.25.2/ipykernel/_version.py 2020-02-02 01:00:00.000000000 +0100 @@ -5,7 +5,7 @@ from typing import List # Version string must appear intact for hatch versioning -__version__ = "6.25.1" +__version__ = "6.25.2" # Build up version_info tuple for backwards compatibility pattern = r"(?P<major>\d+).(?P<minor>\d+).(?P<patch>\d+)(?P<rest>.*)" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-6.25.1/ipykernel/eventloops.py new/ipykernel-6.25.2/ipykernel/eventloops.py --- old/ipykernel-6.25.1/ipykernel/eventloops.py 2020-02-02 01:00:00.000000000 +0100 +++ new/ipykernel-6.25.2/ipykernel/eventloops.py 2020-02-02 01:00:00.000000000 +0100 @@ -535,13 +535,10 @@ set_qt_api_env_from_gui(gui) # This import is guaranteed to work now: - from IPython.external.qt_for_kernel import QtCore, QtGui + from IPython.external.qt_for_kernel import QtCore from IPython.lib.guisupport import get_app_qt4 kernel.app = get_app_qt4([" "]) - if isinstance(kernel.app, QtGui.QApplication): - kernel.app.setQuitOnLastWindowClosed(False) - kernel.app.qt_event_loop = QtCore.QEventLoop(kernel.app) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ipykernel-6.25.1/ipykernel/iostream.py new/ipykernel-6.25.2/ipykernel/iostream.py --- old/ipykernel-6.25.1/ipykernel/iostream.py 2020-02-02 01:00:00.000000000 +0100 +++ new/ipykernel-6.25.2/ipykernel/iostream.py 2020-02-02 01:00:00.000000000 +0100 @@ -57,6 +57,7 @@ piped from subprocesses. """ self.socket = socket + self._stopped = False self.background_socket = BackgroundSocket(self) self._master_pid = os.getpid() self._pipe_flag = pipe @@ -83,13 +84,22 @@ self._event_pipe_gc_task = asyncio.ensure_future(self._run_event_pipe_gc()) self.io_loop.run_sync(_start_event_gc) - self.io_loop.start() + + if not self._stopped: + # avoid race if stop called before start thread gets here + # probably only comes up in tests + self.io_loop.start() + if self._event_pipe_gc_task is not None: # cancel gc task to avoid pending task warnings async def _cancel(): self._event_pipe_gc_task.cancel() # type:ignore - self.io_loop.run_sync(_cancel) + if not self._stopped: + self.io_loop.run_sync(_cancel) + else: + self._event_pipe_gc_task.cancel() + self.io_loop.close(all_fds=True) def _setup_event_pipe(self): @@ -219,10 +229,16 @@ def stop(self): """Stop the IOPub thread""" + self._stopped = True if not self.thread.is_alive(): return self.io_loop.add_callback(self.io_loop.stop) - self.thread.join() + + self.thread.join(timeout=30) + if self.thread.is_alive(): + # avoid infinite hang if stop fails + msg = "IOPub thread did not terminate in 30 seconds" + raise TimeoutError(msg) # close *all* event pipes, created in any thread # event pipes can only be used from other threads while self.thread.is_alive() # so after thread.join, this should be safe