Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-gobject for openSUSE:Factory 
checked in at 2026-03-12 22:20:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-gobject (Old)
 and      /work/SRC/openSUSE:Factory/.python-gobject.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-gobject"

Thu Mar 12 22:20:41 2026 rev:108 rq:1338331 version:3.56.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-gobject/python-gobject.changes    
2026-03-06 18:17:37.293737409 +0100
+++ /work/SRC/openSUSE:Factory/.python-gobject.new.8177/python-gobject.changes  
2026-03-12 22:22:14.046178058 +0100
@@ -1,0 +2,7 @@
+Wed Mar 11 10:00:07 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 3.56.1:
+  + Fix `do_dispose` for floating objects
+  + Updates and fixes for Windows documentation
+
+-------------------------------------------------------------------

Old:
----
  pygobject-3.56.0.obscpio

New:
----
  pygobject-3.56.1.obscpio

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

Other differences:
------------------
++++++ python-gobject.spec ++++++
--- /var/tmp/diff_new_pack.62ruFD/_old  2026-03-12 22:22:14.862211818 +0100
+++ /var/tmp/diff_new_pack.62ruFD/_new  2026-03-12 22:22:14.866211984 +0100
@@ -34,7 +34,7 @@
 %define libffi_version 3.0
 %{?sle15_python_module_pythons}
 Name:           python-gobject
-Version:        3.56.0
+Version:        3.56.1
 Release:        0
 Summary:        Python bindings for GObject
 License:        LGPL-2.1-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.62ruFD/_old  2026-03-12 22:22:14.906213639 +0100
+++ /var/tmp/diff_new_pack.62ruFD/_new  2026-03-12 22:22:14.914213970 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.gnome.org/GNOME/pygobject.git</param>
-    <param name="revision">3.56.0</param>
+    <param name="revision">3.56.1</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ pygobject-3.56.0.obscpio -> pygobject-3.56.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/NEWS new/pygobject-3.56.1/NEWS
--- old/pygobject-3.56.0/NEWS   2026-02-27 08:58:10.000000000 +0100
+++ new/pygobject-3.56.1/NEWS   2026-03-11 09:50:15.000000000 +0100
@@ -1,3 +1,9 @@
+3.56.1 - 2026-02-27
+-------------------
+
+* Fix `do_dispose` for floating objects :mr:`527`
+* Updates and fixes for Windows documantation :mr:`525`
+
 3.56.0 - 2026-02-27
 -------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/docs/_templates/page.html 
new/pygobject-3.56.1/docs/_templates/page.html
--- old/pygobject-3.56.0/docs/_templates/page.html      1970-01-01 
01:00:00.000000000 +0100
+++ new/pygobject-3.56.1/docs/_templates/page.html      2026-03-11 
09:50:15.000000000 +0100
@@ -0,0 +1,17 @@
+{% extends "layout.html" %}
+
+{% block body %}
+  {% if meta is defined and meta and (meta.get("date") or meta.get("author")) 
%}
+    {% set page_date = meta.get("date") %}
+    {% set page_author = meta.get("author") %}
+    {% set byline %}
+<p class="page-docinfo-meta">
+  {% if page_date %}{{ page_date }}{% endif %}
+  {% if page_author %}{% if page_date %} · {% endif %}{{ page_author }}{% 
endif %}
+</p>
+    {% endset %}
+    {{ body | replace("</h1>", "</h1>" ~ byline, 1) }}
+  {% else %}
+    {{ body }}
+  {% endif %}
+{% endblock %}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/docs/bugs_repo.rst 
new/pygobject-3.56.1/docs/bugs_repo.rst
--- old/pygobject-3.56.0/docs/bugs_repo.rst     2026-02-27 08:58:10.000000000 
+0100
+++ new/pygobject-3.56.1/docs/bugs_repo.rst     2026-03-11 09:50:15.000000000 
+0100
@@ -28,4 +28,4 @@
 
 Release tarballs of all releases can be found on the GNOME server:
 
-https://ftp.gnome.org/pub/GNOME/sources/pygobject
+https://download.gnome.org/sources/pygobject/
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/docs/conf.py 
new/pygobject-3.56.1/docs/conf.py
--- old/pygobject-3.56.0/docs/conf.py   2026-02-27 08:58:10.000000000 +0100
+++ new/pygobject-3.56.1/docs/conf.py   2026-03-11 09:50:15.000000000 +0100
@@ -46,6 +46,7 @@
 }
 
 source_suffix = {".rst": "restructuredtext"}
+templates_path = ["_templates"]
 master_doc = "index"
 exclude_patterns = ["_build", "README.rst"]
 
@@ -57,9 +58,6 @@
 html_title = project
 
 html_context = {
-    "extra_css_files": [
-        "_static/extra.css",
-    ],
     "display_gitlab": True,
     "gitlab_user": "GNOME",
     "gitlab_repo": "pygobject",
@@ -69,6 +67,7 @@
 }
 
 html_static_path = ["images", "."]
+html_css_files = ["extra.css"]
 
 extlinks = {
     "bzbug": ("https://bugzilla.gnome.org/show_bug.cgi?id=%s";, "bz#%s"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/docs/extra.css 
new/pygobject-3.56.1/docs/extra.css
--- old/pygobject-3.56.0/docs/extra.css 2026-02-27 08:58:10.000000000 +0100
+++ new/pygobject-3.56.1/docs/extra.css 2026-03-11 09:50:15.000000000 +0100
@@ -1,57 +1,6 @@
-.wy-side-nav-search {
-    background-color: initial;
-}
-
-.wy-nav-top {
-    background-color: #171A2F;
-}
-
-.wy-side-nav-search input[type="text"] {
-    border-color: transparent;
-}
-
-.wy-nav-content {
-    margin: initial;
-}
-
-.wy-nav-side {
-    background-color: #171A2F;
-}
-
-.rst-content div[role=navigation], footer {
-   font-size: 0.85em;
-   color: #999;
-}
-
-.rst-content div[role=navigation] hr {
-    margin-top: 6px;
-}
-
-footer hr {
-    margin-bottom: 6px;
-}
-
-.rst-footer-buttons {
-    display: none;
-}
-
-a.icon-home, a.icon-home:hover {
-    display: inline-block;
-    padding: 4px 4px 4px 21px;
-    background: transparent url(pygobject-small.svg) center left no-repeat;
-    background-size: 1.2em;
-    margin-top: 0.2em;
-    margin-bottom: 1em;
-}
-
-
-.fa-home::before, .icon-home::before {
-    content: "";
-}
-
-.wy-nav-top a {
-    margin: -2em;
-    background: transparent url(pygobject-small.svg) center left no-repeat;
-    background-size: 1.2em;
-    padding: 4px 4px 4px 24px;
+.page-docinfo-meta {
+    margin-top: -0.25rem;
+    margin-bottom: 1rem;
+    color: var(--pst-color-text-muted);
+    font-size: 90%;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/docs/getting_started.rst 
new/pygobject-3.56.1/docs/getting_started.rst
--- old/pygobject-3.56.0/docs/getting_started.rst       2026-02-27 
08:58:10.000000000 +0100
+++ new/pygobject-3.56.1/docs/getting_started.rst       2026-03-11 
09:50:15.000000000 +0100
@@ -61,10 +61,14 @@
 #) Follow the instructions on the page for setting up the basic environment
 #) Run ``C:\msys64\ucrt64.exe`` - a terminal window should pop up
 #) Execute ``pacman -Suy``
-#) Execute ``pacman -S mingw-w64-ucrt-x86_64-gtk4 
mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-python3-gobject``
+#) Execute ``pacman -S mingw-w64-ucrt-x86_64-gtk4 mingw-w64-ucrt-x86_64-python 
mingw-w64-ucrt-x86_64-python-gobject``
+
+   .. note::
+      While some systems may use ``python3`` in the package name, current 
MSYS2 UCRT64
+      environments typically use ``python``. If one fails, try the other 
(incl. step 8).
 #) To test that GTK is working you can run ``gtk4-demo``
 #) Copy the ``hello.py`` script you created to ``C:\msys64\home\<username>``
-#) In the mingw32 terminal execute ``python3 hello.py`` - a window should 
appear.
+#) In the mingw32 terminal execute ``python hello.py`` - a window should 
appear.
 
 .. figure:: images/start_windows.png
     :scale: 60%
@@ -205,6 +209,14 @@
 .. toctree::
     :hidden:
     :maxdepth: 1
+    :caption: What's new
+
+    news/pygobject-3-56
+
+.. toctree::
+    :hidden:
+    :maxdepth: 1
+    :caption: Project Information
 
     changelog
     bugs_repo
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/docs/news/pygobject-3-56.rst 
new/pygobject-3.56.1/docs/news/pygobject-3-56.rst
--- old/pygobject-3.56.0/docs/news/pygobject-3-56.rst   1970-01-01 
01:00:00.000000000 +0100
+++ new/pygobject-3.56.1/docs/news/pygobject-3-56.rst   2026-03-11 
09:50:15.000000000 +0100
@@ -0,0 +1,51 @@
+:date: Feb 27, 2026
+:author: Arjan Molenaar
+
+PyGObject 3.56.0
+================
+
+PyGObject 3.56.0 has just been released. Major features include: better 
integration with
+GObject's lifecycle (``do_constructed``, ``do_dispose``), a simpler way to 
deal with
+Python wrapper objects, and cleanup of legacy code.
+
+GObject lifecycle methods
+-------------------------
+
+This release exposes two new GObject lifecycle hooks: ``do_constructed`` and 
``do_dispose``.
+
+* ``do_constructed`` is called after a GObject has been fully constructed.
+* ``do_dispose`` is called when the underlying GObject (not just the Python 
wrapper) is disposed,
+  for example via :obj:`~gi.repository.GObject.Object.run_dispose`.
+
+Slots
+-----
+
+Slots (``__slots__``) have never been officially supported in PyGObject, even 
though it worked in some cases.
+With the new wrapping model (see below), using ``__slots__`` can cause issues.
+PyGObject now emits a warning when ``__slots__`` is used in classes derived 
from GObject.
+
+Shallow wrapper objects
+-----------------------
+
+PyGObject's Python object tracking used to be complex. In 3.56, wrapper 
lifecycle management has been simplified.
+
+Previously, PyGObject retained Python wrapper objects when instance attributes 
existed,
+using `toggle references 
<https://docs.gtk.org/gobject/method.Object.add_toggle_ref.html>`__.
+Now, wrapper objects are always discardable. PyGObject preserves the instance 
dictionary and reapplies it to
+new wrapper instances as needed. This behavior is easier to reason about and 
enables features such as ``do_dispose``.
+
+Legacy code removal
+-------------------
+
+In 3.56, marshalling for fields, properties, constants, and signal closures 
has been replaced by the existing
+function/method call marshalling logic. Because that path already supports 
more cases, this change resolves
+multiple long-standing issues.
+
+PyGObject is getting rid of custom wrapper logic. In this release, 
``pygtkcompat`` and wrappers for
+``GLib.OptionContext/GLib.OptionGroup`` have been fully removed.
+
+What's next
+-----------
+
+There is still more to improve. We need your help for that: if you spot 
un-pythonic behavior, create an issue.
+Maybe you feel like fixing an issue even.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pygobject-3.56.0/docs/tutorials/libadwaita/application.rst 
new/pygobject-3.56.1/docs/tutorials/libadwaita/application.rst
--- old/pygobject-3.56.0/docs/tutorials/libadwaita/application.rst      
2026-02-27 08:58:10.000000000 +0100
+++ new/pygobject-3.56.1/docs/tutorials/libadwaita/application.rst      
2026-03-11 09:50:15.000000000 +0100
@@ -30,13 +30,4 @@
 matching stylesheets depending on the system appearance settings exposed by
 :class:`Adw.StyleManager`.
 
-
-* ``style.css`` contains the base styles.
-
-* ``style-dark.css`` contains styles only used when 
:attr:`Adw.StyleManager.props.dark`
-  is ``True``.
-
-* ``style-hc.css`` contains styles used when 
:attr:`Adw.StyleManager.props.high_contrast` is ``True``.
-
-* ``style-hc-dark.css`` contains styles used when 
:attr:`Adw.StyleManager.props.high_contrast`
-  and :attr:`Adw.StyleManager.props.dark` are both ``True``.
+Have a look at the `libadwaita styling documentation 
<https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/styles-and-appearance.html>`__.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/gi/pygobject-class.c 
new/pygobject-3.56.1/gi/pygobject-class.c
--- old/pygobject-3.56.0/gi/pygobject-class.c   2026-02-27 08:58:10.000000000 
+0100
+++ new/pygobject-3.56.1/gi/pygobject-class.c   2026-03-11 09:50:15.000000000 
+0100
@@ -650,7 +650,15 @@
         object_wrapper = g_object_get_qdata (object, pygobject_wrapper_key);
         Py_XINCREF (object_wrapper);
 #else
-        object_wrapper = pygobject_new_full (object, FALSE, klass);
+        if (g_object_is_floating (object)) {
+            g_object_ref (object);
+            object_wrapper = pygobject_new_full (object,
+                                                 /*steal=*/TRUE, klass);
+            g_object_force_floating (object);
+        } else {
+            object_wrapper = pygobject_new_full (object,
+                                                 /*steal=*/FALSE, klass);
+        }
 #endif
 
         if (object_wrapper != NULL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/meson.build 
new/pygobject-3.56.1/meson.build
--- old/pygobject-3.56.0/meson.build    2026-02-27 08:58:10.000000000 +0100
+++ new/pygobject-3.56.1/meson.build    2026-03-11 09:50:15.000000000 +0100
@@ -1,7 +1,7 @@
 project(
   'pygobject',
   'c',
-  version : '3.56.0',
+  version : '3.56.1',
   meson_version : '>= 0.64.0',
   default_options : [
     'warning_level=1',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pygobject-3.56.0/tests/test_gobject.py 
new/pygobject-3.56.1/tests/test_gobject.py
--- old/pygobject-3.56.0/tests/test_gobject.py  2026-02-27 08:58:10.000000000 
+0100
+++ new/pygobject-3.56.1/tests/test_gobject.py  2026-03-11 09:50:15.000000000 
+0100
@@ -904,6 +904,22 @@
 
         assert dispose_invoked
 
+    @unittest.skipIf(platform.python_implementation() == "PyPy", "CPython 
only")
+    def test_dispose_on_floating_object(self):
+        dispose_invoked = False
+
+        class TestObject(GObject.Object):
+            def do_dispose(self):
+                nonlocal dispose_invoked
+                dispose_invoked = True
+                super().do_dispose()
+
+        with warnings.catch_warnings(record=True):
+            warnings.simplefilter("always")
+            TestObject()._force_floating()
+
+        assert dispose_invoked
+
 
 def test_list_properties():
     def find_param(props, name):

++++++ pygobject.obsinfo ++++++
--- /var/tmp/diff_new_pack.62ruFD/_old  2026-03-12 22:22:15.526239290 +0100
+++ /var/tmp/diff_new_pack.62ruFD/_new  2026-03-12 22:22:15.534239621 +0100
@@ -1,5 +1,5 @@
 name: pygobject
-version: 3.56.0
-mtime: 1772179090
-commit: 4f2a75e20355f1942893a08fc9a0887a61e16998
+version: 3.56.1
+mtime: 1773219015
+commit: 4d4b7152b5de75d1b0de87b423cb7feb6074b82f
 

Reply via email to