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

Reply via email to