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 2021-09-29 20:17:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-gobject (Old) and /work/SRC/openSUSE:Factory/.python-gobject.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-gobject" Wed Sep 29 20:17:51 2021 rev:89 rq:921651 version:3.42.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-gobject/python-gobject.changes 2021-08-05 20:48:20.999915410 +0200 +++ /work/SRC/openSUSE:Factory/.python-gobject.new.1899/python-gobject.changes 2021-09-29 20:18:18.966890915 +0200 @@ -1,0 +2,11 @@ +Mon Sep 20 10:21:08 UTC 2021 - Dominique Leuenberger <dims...@opensuse.org> + +- Update to version 3.42.0: + + meson: Bump minimum meson_version to 0.47.0. + + Expose GObject.Object.run_dispose(). + + docs: document Gtk.Template. + + dev: Add poetry support. + + meson: use main branch for glib subproject. + + Fix some small memory leaks. + +------------------------------------------------------------------- Old: ---- pygobject-3.40.1.tar.xz New: ---- pygobject-3.42.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-gobject.spec ++++++ --- /var/tmp/diff_new_pack.K00elN/_old 2021-09-29 20:18:19.438891984 +0200 +++ /var/tmp/diff_new_pack.K00elN/_new 2021-09-29 20:18:19.442891993 +0200 @@ -29,13 +29,13 @@ %global __requires_exclude_from ^%{_libdir}/python.*/site-packages/gi/__init__.py$ %define _name pygobject Name: python-gobject -Version: 3.40.1 +Version: 3.42.0 Release: 0 Summary: Python bindings for GObject License: LGPL-2.1-or-later Group: Development/Languages/Python URL: https://wiki.gnome.org/Projects/PyGObject/ -Source0: https://download.gnome.org/sources/pygobject/3.40/%{_name}-%{version}.tar.xz +Source0: https://download.gnome.org/sources/pygobject/3.42/%{_name}-%{version}.tar.xz BuildRequires: %{python_module devel} BuildRequires: %{python_module pycairo >= 1.16.0} ++++++ pygobject-3.40.1.tar.xz -> pygobject-3.42.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/NEWS new/pygobject-3.42.0/NEWS --- old/pygobject-3.40.1/NEWS 2021-03-30 08:44:57.289334000 +0200 +++ new/pygobject-3.42.0/NEWS 2021-09-19 10:35:22.787498700 +0200 @@ -1,3 +1,14 @@ +3.42.0 - 2021-09-19 +------------------- + +* meson: Bump minimum meson_version to 0.47.0 +* Expose GObject.Object.run_dispose() :issue:`470` +* docs: document Gtk.Template. :issue:`396` +* dev: Add poetry support +* meson: use main branch for glib subproject +* Fix some small memory leaks :mr:`178` + + 3.40.1 - 2021-03-30 ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/PKG-INFO new/pygobject-3.42.0/PKG-INFO --- old/pygobject-3.40.1/PKG-INFO 2021-03-30 08:48:02.722973000 +0200 +++ new/pygobject-3.42.0/PKG-INFO 2021-09-19 12:19:43.782817600 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: PyGObject -Version: 3.40.1 +Version: 3.42.0 Summary: Python bindings for GObject Introspection Home-page: https://pygobject.readthedocs.io Author: James Henstridge diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/PyGObject.egg-info/PKG-INFO new/pygobject-3.42.0/PyGObject.egg-info/PKG-INFO --- old/pygobject-3.40.1/PyGObject.egg-info/PKG-INFO 2021-03-30 08:48:02.342970000 +0200 +++ new/pygobject-3.42.0/PyGObject.egg-info/PKG-INFO 2021-09-19 12:19:43.462815300 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: PyGObject -Version: 3.40.1 +Version: 3.42.0 Summary: Python bindings for GObject Introspection Home-page: https://pygobject.readthedocs.io Author: James Henstridge diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/PyGObject.egg-info/SOURCES.txt new/pygobject-3.42.0/PyGObject.egg-info/SOURCES.txt --- old/pygobject-3.40.1/PyGObject.egg-info/SOURCES.txt 2021-03-30 08:48:02.382970000 +0200 +++ new/pygobject-3.42.0/PyGObject.egg-info/SOURCES.txt 2021-09-19 12:19:43.502815500 +0200 @@ -54,6 +54,7 @@ docs/guide/debug_profile.rst docs/guide/deploy.rst docs/guide/faq.rst +docs/guide/gtk_template.rst docs/guide/index.rst docs/guide/porting.rst docs/guide/testing.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/docs/getting_started.rst new/pygobject-3.42.0/docs/getting_started.rst --- old/pygobject-3.40.1/docs/getting_started.rst 2020-05-02 22:42:27.715824100 +0200 +++ new/pygobject-3.42.0/docs/getting_started.rst 2021-09-18 16:24:01.638779900 +0200 @@ -91,7 +91,7 @@ Installing from PyPI with pip: #) Open a terminal and enter your virtual environment - #) Execute ``sudo dnf install gcc gobject-introspection-devel cairo-devel pkg-config python3-devel gtk3`` + #) Execute ``sudo dnf install gcc gobject-introspection-devel cairo-gobject-devel pkg-config python3-devel gtk3`` to install the build dependencies and GTK #) Execute ``pip3 install pycairo`` to build and install Pycairo #) Execute ``pip3 install PyGObject`` to build and install PyGObject diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/docs/guide/gtk_template.rst new/pygobject-3.42.0/docs/guide/gtk_template.rst --- old/pygobject-3.40.1/docs/guide/gtk_template.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pygobject-3.42.0/docs/guide/gtk_template.rst 2021-04-30 08:21:57.033439600 +0200 @@ -0,0 +1,123 @@ +============ +Gtk.Template +============ + +A GtkWidget subclass can use a +`GtkBuilder UI Definition <https://developer.gnome.org/gtk3/stable/GtkBuilder.html#BUILDER-UI>`__ +XML document as a template to create child widgets and set its own +properties, without creating a GtkBuilder instance. This is implemented +for Python by PyGObject with Gtk.Template. + +The subclass uses a ``@Gtk.Template`` decorator and declares a class +variable ``__gtype_name__`` with the value of the XML ``template`` +element ``class`` attribute. + +Child widgets are declared, typically with the same names as the XML +``object`` element ``id`` attributes, at the class level as instances +of ``Gtk.Template.Child``. + +Signal handler methods, typically with the same names as the XML ``signal`` +element ``handler`` attributes, use the ``@Gtk.Template.Callback`` decorator. + +``Gtk.Template()`` takes a mandatory keyword argument passing the XML document +or its location, either ``string``, ``filename`` or ``resource_path``. + +``Gtk.Template.Child()`` and ``Gtk.Template.Callback()`` optionally take +a ``name`` argument matching the value of the respective XML attribute, +in which case the Python attribute can have a different name. + +Examples +-------- + +.. code-block:: python + + xml = """\ + <interface> + <template class="example1" parent="GtkBox"> + <child> + <object class="GtkButton" id="hello_button"> + <property name="label">Hello World</property> + <signal name="clicked" handler="hello_button_clicked" swapped="no" /> + </object> + </child> + </template> + </interface> + """ + + @Gtk.Template(string=xml) + class Foo(Gtk.Box): + __gtype_name__ = "example1" + + hello_button = Gtk.Template.Child() + + @Gtk.Template.Callback() + def hello_button_clicked(self, *args): + pass + +Python attribute names that are different to the XML values: + +.. code-block:: python + + @Gtk.Template(string=xml) + class Foo(Gtk.Box): + __gtype_name__ = "example1" + + my_button = Gtk.Template.Child("hello_button") + + @Gtk.Template.Callback("hello_button_clicked") + def bar(self, *args): + pass + + +To add widgets to the built-in child of a parent, describe the built-in widget +in the XML with its ``child`` element having an ``internal-child`` attribute set +to the name of the built-in widget: + +.. code-block:: XML + + <interface> + <template class="example2" parent="GtkDialog"> + <child internal-child="vbox"> + <object class="GtkBox"> + <child> + <object class="GtkButton" id="hello_button"> + <property name="label">Hello World</property> + </object> + </child> + </object> + </child> + </template> + </interface> + + +Subclasses that declare ``__gtype_name__`` can be used as objects in the XML: + +.. code-block:: python + + xml = """\ + <interface> + <template class="example3" parent="GtkBox"> + <child> + <object class="ExampleButton" id="hello_button"> + <property name="label">Hello World</property> + <signal name="clicked" handler="hello_button_clicked" swapped="no" /> + </object> + </child> + </template> + </interface> + """ + + + class HelloButton(Gtk.Button): + __gtype_name__ = "ExampleButton" + + + @Gtk.Template(string=xml) + class Foo(Gtk.Box): + __gtype_name__ = "example3" + + hello_button = Gtk.Template.Child() + + @Gtk.Template.Callback() + def hello_button_clicked(self, *args): + pass diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/docs/guide/index.rst new/pygobject-3.42.0/docs/guide/index.rst --- old/pygobject-3.40.1/docs/guide/index.rst 2019-12-30 12:13:06.353884500 +0100 +++ new/pygobject-3.42.0/docs/guide/index.rst 2021-04-30 08:21:57.033439600 +0200 @@ -9,6 +9,7 @@ api/index cairo_integration + gtk_template threading debug_profile deploy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/docs/index.rst new/pygobject-3.42.0/docs/index.rst --- old/pygobject-3.40.1/docs/index.rst 2020-11-15 17:50:40.604214400 +0100 +++ new/pygobject-3.42.0/docs/index.rst 2021-04-27 15:37:26.748245000 +0200 @@ -82,7 +82,7 @@ * `Pithos <https://pithos.github.io/>`__ - a Pandora Radio client * `Pitivi <http://www.pitivi.org/>`__ - a free and open source video editor * `Quod Libet <https://quodlibet.readthedocs.io/>`__ - a music library manager / player -* `Terminator <https://gnome-terminator.org/>` -- The Robot Future of Terminals +* `Terminator <https://gnome-terminator.org/>`__ - The Robot Future of Terminals * `Transmageddon <http://www.linuxrising.org/>`__ - a video transcoder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/gi/overrides/GObject.py new/pygobject-3.42.0/gi/overrides/GObject.py --- old/pygobject-3.40.1/gi/overrides/GObject.py 2020-05-06 18:48:34.871111600 +0200 +++ new/pygobject-3.42.0/gi/overrides/GObject.py 2021-04-30 08:21:57.033439600 +0200 @@ -520,7 +520,6 @@ interface_install_property = _unsupported_method interface_list_properties = _unsupported_method notify_by_pspec = _unsupported_method - run_dispose = _unsupported_method watch_closure = _unsupported_method # Make all reference management methods private but still accessible. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/gi/pygflags.c new/pygobject-3.42.0/gi/pygflags.c --- old/pygobject-3.40.1/gi/pygflags.c 2020-05-06 18:48:34.871111600 +0200 +++ new/pygobject-3.42.0/gi/pygflags.c 2021-09-18 16:24:01.642779800 +0200 @@ -108,10 +108,13 @@ tmp = generate_repr(self->gtype, (guint)PyLong_AsUnsignedLongMask ((PyObject*)self)); module = PyObject_GetAttrString ((PyObject *)self, "__module__"); - if (module == NULL) + if (module == NULL) { + g_free (tmp); return NULL; + } if (!PyUnicode_Check (module)) { + g_free (tmp); Py_DECREF (module); return NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/gi/pygi-info.c new/pygobject-3.42.0/gi/pygi-info.c --- old/pygobject-3.40.1/gi/pygi-info.c 2020-11-15 17:50:40.604214400 +0100 +++ new/pygobject-3.42.0/gi/pygi-info.c 2021-09-18 16:24:01.642779800 +0200 @@ -1862,6 +1862,7 @@ object_type = (PyTypeObject *) PyObject_Type (object); if (object_type == NULL) { + g_free (type_name_expected); return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/meson.build new/pygobject-3.42.0/meson.build --- old/pygobject-3.40.1/meson.build 2021-03-30 08:42:55.804256000 +0200 +++ new/pygobject-3.42.0/meson.build 2021-09-19 12:18:44.102367200 +0200 @@ -1,6 +1,6 @@ project('pygobject', 'c', - version : '3.40.1', - meson_version : '>= 0.46.0', + version : '3.42.0', + meson_version : '>= 0.47.0', default_options : [ 'warning_level=1', 'buildtype=debugoptimized']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/pyproject.toml new/pygobject-3.42.0/pyproject.toml --- old/pygobject-3.40.1/pyproject.toml 2020-05-02 22:41:27.259341500 +0200 +++ new/pygobject-3.42.0/pyproject.toml 2021-09-19 12:18:44.102367200 +0200 @@ -1,2 +1,19 @@ +[tool.poetry] +name = "PyGObject" +version = "3.42.0" +description = "Python bindings for GObject Introspection" +authors = ["Christoph Reiter"] + +[tool.poetry.dependencies] +python = "^3.6" +pycairo = "^1.16" + +[tool.poetry.dev-dependencies] +pytest = "^6.0.0" +flake8 = "^3.9.1" +Sphinx = "^3.5.4" +sphinx-rtd-theme = "^0.5.2" +coverage = "^5.5" + [build-system] requires = ["setuptools", "wheel", "pycairo"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/setup.py new/pygobject-3.42.0/setup.py --- old/pygobject-3.40.1/setup.py 2021-03-30 08:42:55.804256000 +0200 +++ new/pygobject-3.42.0/setup.py 2021-09-19 12:18:44.102367200 +0200 @@ -37,7 +37,7 @@ from distutils.spawn import find_executable -PYGOBJECT_VERSION = "3.40.1" +PYGOBJECT_VERSION = "3.42.0" GLIB_VERSION_REQUIRED = "2.56.0" GI_VERSION_REQUIRED = "1.56.0" PYCAIRO_VERSION_REQUIRED = "1.16.0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/subprojects/glib.wrap new/pygobject-3.42.0/subprojects/glib.wrap --- old/pygobject-3.40.1/subprojects/glib.wrap 2019-12-30 12:13:06.361884400 +0100 +++ new/pygobject-3.42.0/subprojects/glib.wrap 2021-09-18 16:24:01.642779800 +0200 @@ -2,4 +2,5 @@ directory=glib url=https://gitlab.gnome.org/GNOME/glib.git push-url=g...@gitlab.gnome.org:GNOME/glib.git -revision=master +revision=main +depth=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/subprojects/gobject-introspection.wrap new/pygobject-3.42.0/subprojects/gobject-introspection.wrap --- old/pygobject-3.40.1/subprojects/gobject-introspection.wrap 2019-12-30 12:13:06.361884400 +0100 +++ new/pygobject-3.42.0/subprojects/gobject-introspection.wrap 2021-09-18 16:24:01.642779800 +0200 @@ -3,3 +3,4 @@ url=https://gitlab.gnome.org/GNOME/gobject-introspection.git push-url=g...@gitlab.gnome.org:GNOME/gobject-introspection.git revision=master +depth=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/subprojects/libffi.wrap new/pygobject-3.42.0/subprojects/libffi.wrap --- old/pygobject-3.40.1/subprojects/libffi.wrap 2019-12-30 12:13:06.361884400 +0100 +++ new/pygobject-3.42.0/subprojects/libffi.wrap 2021-09-18 16:24:01.642779800 +0200 @@ -2,3 +2,4 @@ directory=libffi url=https://github.com/centricular/libffi.git revision=meson +depth=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/subprojects/pycairo.wrap new/pygobject-3.42.0/subprojects/pycairo.wrap --- old/pygobject-3.40.1/subprojects/pycairo.wrap 2020-05-02 22:42:27.719824000 +0200 +++ new/pygobject-3.42.0/subprojects/pycairo.wrap 2021-09-18 16:24:01.642779800 +0200 @@ -2,3 +2,4 @@ directory=pycairo url=https://github.com/pygobject/pycairo.git revision=pycairo-1.18 +depth=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/tests/test_gobject.py new/pygobject-3.42.0/tests/test_gobject.py --- old/pygobject-3.40.1/tests/test_gobject.py 2020-11-15 17:50:40.608214400 +0100 +++ new/pygobject-3.42.0/tests/test_gobject.py 2021-04-30 08:21:57.033439600 +0200 @@ -67,6 +67,25 @@ class TestGObjectAPI(unittest.TestCase): + def test_run_dispose(self): + class TestObject(GObject.GObject): + int_prop = GObject.Property(default=0, type=int) + + obj = TestObject() + called = [] + + def on_notify(*args): + called.append(args) + + obj.connect('notify::int-prop', on_notify) + obj.notify("int-prop") + obj.notify("int-prop") + # after this everything should be disconnected + obj.run_dispose() + obj.notify("int-prop") + obj.notify("int-prop") + assert len(called) == 2 + def test_call_method_uninitialized_instance(self): obj = GObject.Object.__new__(GObject.Object) with self.assertRaisesRegex(RuntimeError, '.*is not initialized'): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pygobject-3.40.1/tests/testhelpermodule.c new/pygobject-3.42.0/tests/testhelpermodule.c --- old/pygobject-3.40.1/tests/testhelpermodule.c 2020-05-06 18:48:34.883111700 +0200 +++ new/pygobject-3.42.0/tests/testhelpermodule.c 2021-09-18 16:24:01.642779800 +0200 @@ -362,11 +362,12 @@ static GValue * test_gvalue_callback (GObject *object, const GValue *v) { - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret; g_return_val_if_fail (G_IS_OBJECT (object), NULL); g_return_val_if_fail (G_IS_VALUE (v), NULL); + ret = g_malloc0 (sizeof (GValue)); g_value_init (ret, G_VALUE_TYPE (v)); g_value_copy (v, ret); return ret; @@ -375,10 +376,11 @@ static GValue * test_gvalue_ret_callback (GObject *object, GType type) { - GValue *ret = g_malloc0 (sizeof (GValue)); + GValue *ret; g_return_val_if_fail (G_IS_OBJECT (object), NULL); + ret = g_malloc0 (sizeof (GValue)); g_value_init (ret, type); switch (type) {