Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gjs for openSUSE:Factory checked in at 2022-11-01 13:40:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gjs (Old) and /work/SRC/openSUSE:Factory/.gjs.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gjs" Tue Nov 1 13:40:50 2022 rev:106 rq:1032401 version:1.74.1 Changes: -------- --- /work/SRC/openSUSE:Factory/gjs/gjs.changes 2022-09-21 14:42:28.669762510 +0200 +++ /work/SRC/openSUSE:Factory/.gjs.new.2275/gjs.changes 2022-11-01 13:40:55.075369323 +0100 @@ -1,0 +2,11 @@ +Mon Oct 31 08:34:31 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 1.74.1: + + Closed bugs and merge requests: + - Problem calling promisified D-Bus wrappers with callback. + - docs: + . Fix link in issue template. + . Document Gio.FileEnumerator iteration. + . Fix Markdown formatting in README.MSVC.md. + +------------------------------------------------------------------- Old: ---- gjs-1.74.0.tar.xz New: ---- gjs-1.74.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gjs.spec ++++++ --- /var/tmp/diff_new_pack.NDonBx/_old 2022-11-01 13:40:57.435381878 +0100 +++ /var/tmp/diff_new_pack.NDonBx/_new 2022-11-01 13:40:57.439381899 +0100 @@ -17,7 +17,7 @@ Name: gjs -Version: 1.74.0 +Version: 1.74.1 # FIXME # Disable tests for unstable 1.71.1 - Try tests again on next versionbump Release: 0 Summary: JavaScript bindings based on gobject-introspection and Mozilla ++++++ gjs-1.74.0.tar.xz -> gjs-1.74.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/.gitlab/issue_templates/bug.md new/gjs-1.74.1/.gitlab/issue_templates/bug.md --- old/gjs-1.74.0/.gitlab/issue_templates/bug.md 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/.gitlab/issue_templates/bug.md 2022-10-30 00:57:47.000000000 +0200 @@ -25,7 +25,7 @@ If GJS or GNOME Shell crashed, please include a stack trace. For information on how to get a stack trace, -[read this wiki page](https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces/Details). +[read this wiki page](https://wiki.gnome.org/GettingInTouch/Bugzilla/GettingTraces/Details). ## Expected behaviour ## What did you expect to see instead? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/NEWS new/gjs-1.74.1/NEWS --- old/gjs-1.74.0/NEWS 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/NEWS 2022-10-30 00:57:47.000000000 +0200 @@ -1,3 +1,13 @@ +Version 1.74.1 +-------------- + +- Closed bugs and merge requests: + * Problem calling promisified D-Bus wrappers with callback [#494, !790, Marco + Trevisan] + * docs: Fix link in issue template [!799, Jan Tojnar] + * doc: Document Gio.FileEnumerator iteration [!800, Sonny Piers] + * doc: Fix Markdown formatting in README.MSVC.md [!803, Kisaragi Hiu] + Version 1.74.0 -------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/README.MSVC.md new/gjs-1.74.1/README.MSVC.md --- old/gjs-1.74.0/README.MSVC.md 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/README.MSVC.md 2022-10-30 00:57:47.000000000 +0200 @@ -13,15 +13,15 @@ You will need the following items to build GJS using Visual Studio or clang-cl (they can be built with Visual Studio 2015 or later, unless otherwise noted): --SpiderMonkey 102.x (mozjs-102). This must be built with clang-cl as - the Visual Studio compiler is no longer supported for building this. - Please see the below section carefully on this... --GObject-Introspection (G-I) 1.61.2 or later --GLib 2.58.x or later, (which includes GIO, GObject, and the - associated tools) --Cairo including Cairo-GObject support (Optional) --GTK+-3.20.x or later (Optional) --and anything that the above items depend on. +- SpiderMonkey 102.x (mozjs-102). This must be built with clang-cl as + the Visual Studio compiler is no longer supported for building this. + Please see the below section carefully on this... +- GObject-Introspection (G-I) 1.61.2 or later +- GLib 2.58.x or later, (which includes GIO, GObject, and the + associated tools) +- Cairo including Cairo-GObject support (Optional) +- GTK+-3.20.x or later (Optional) +- and anything that the above items depend on. Note again that SpiderMonkey must be built using Visual Studio with clang-cl, and the rest should preferably be built with Visual Studio diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/doc/Overrides.md new/gjs-1.74.1/doc/Overrides.md --- old/gjs-1.74.0/doc/Overrides.md 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/doc/Overrides.md 2022-10-30 00:57:47.000000000 +0200 @@ -50,7 +50,7 @@ ``` [gdbusconnection]: https://gjs-docs.gnome.org/gio20/gio.dbusconnection - + ### Gio.DBusNodeInfo.new_for_xml(xmlData) Type: @@ -93,7 +93,7 @@ common case of a [`Gio.DBusNodeInfo`][gdbusnodeinfo] with a single interface. [gdbusinterfaceinfo]: https://gjs-docs.gnome.org/gio20/gio.dbusinterfaceinfo - + ### Gio.DBusProxy.makeProxyWrapper(interfaceInfo) Type: @@ -133,7 +133,7 @@ [gdbusproxy]: https://gjs-docs.gnome.org/gio20/gio.dbusproxy [make-proxy-wrapper]: https://gjs.guide/guides/gio/dbus.html#high-level-proxies - + ### Gio.DBusExportedObject.wrapJSObject(interfaceInfo, jsObj) Type: @@ -157,7 +157,7 @@ * `emit_property_changed(propertyName, propertyValue)` * propertyName (`String`) ??? A D-Bus property name * propertyValue (`GLib.Variant`) ??? A [`GLib.Variant`][gvariant] - + * `emit_signal(signalName, signalParameters)` * signalName (`String`) ??? A D-Bus signal name * signalParameters (`GLib.Variant`) ??? A [`GLib.Variant`][gvariant] @@ -180,7 +180,7 @@ * prototype (`Object`) ??? The prototype of a GObject class * startFunc (`Function`) ??? The "async" or "start" method * finishFunc (`Function`) ??? The "finish" method - + Replaces the original `startFunc` on a GObject class prototype, so that it returns a `Promise` and can be used as a JavaScript `async` function. @@ -200,6 +200,55 @@ } ``` +### Gio.FileEnumerator[Symbol.asyncIterator] + +[Gio.FileEnumator](gio-fileenumerator) are [async iterators](async-iterators). + +Each iteration returns a [Gio.FileInfo](gio-fileinfo): + +```js +import Gio from "gi://Gio"; + +const dir = Gio.File.new_for_path("/"); +const enumerator = dir.enumerate_children( + "standard::name", + Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, + null +); + +for await (const file_info of enumerator) { + console.log(file_info.get_name()); +} +``` + +[gio-fileenumerator]: https://gjs-docs.gnome.org/gio20/gio.fileenumerator +[async-iterator]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Iteration_protocols#the_async_iterator_and_async_iterable_protocols +[gio-fileinfo]: https://gjs-docs.gnome.org/gio20/gio.fileinfo + +### Gio.FileEnumerator[Symbol.iterator] + +[Gio.FileEnumator](gio-fileenumerator) are [sync iterators](sync-iterators). + +Each iteration returns a [Gio.FileInfo](gio-fileinfo): + +```js +import Gio from "gi://Gio"; + +const dir = Gio.File.new_for_path("/"); +const enumerator = dir.enumerate_children( + "standard::name", + Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, + null +); + +for (const file_info of enumerator) { + console.log(file_info.get_name()); +} +``` + +[gio-fileenumerator]: https://gjs-docs.gnome.org/gio20/gio.fileenumerator +[sync-iterator]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol +[gio-fileinfo]: https://gjs-docs.gnome.org/gio20/gio.fileinfo ## [GLib](https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/modules/core/overrides/GLib.js) @@ -720,7 +769,7 @@ for (let pspec of properties) log(pspec.name); - + // Calling on a widget class const properties = Gtk.Container.list_child_properties.call(Gtk.Box); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/installed-tests/js/testGDBus.js new/gjs-1.74.1/installed-tests/js/testGDBus.js --- old/gjs-1.74.0/installed-tests/js/testGDBus.js 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/installed-tests/js/testGDBus.js 2022-10-30 00:57:47.000000000 +0200 @@ -837,3 +837,54 @@ expect(invalidatedProps).toContain('PropReadOnly'); }); }); + + +describe('DBus Proxy wrapper', function () { + let loop; + let wasPromise; + let writerFunc; + + beforeAll(function () { + loop = new GLib.MainLoop(null, false); + + wasPromise = Gio.DBusProxy.prototype._original_init_async instanceof Function; + Gio._promisify(Gio.DBusProxy.prototype, 'init_async'); + + writerFunc = jasmine.createSpy( + 'log writer func', (level, fields) => { + const decoder = new TextDecoder('utf-8'); + const domain = decoder.decode(fields?.GLIB_DOMAIN); + const message = `${decoder.decode(fields?.MESSAGE)}\n`; + level |= GLib.LogLevelFlags.FLAG_RECURSION; + GLib.log_default_handler(domain, level, message, null); + return GLib.LogWriterOutput.HANDLED; + }); + + writerFunc.and.callThrough(); + GLib.log_set_writer_func(writerFunc); + }); + + beforeEach(function () { + writerFunc.calls.reset(); + }); + + it('can init a proxy asynchronously when promisified', function () { + new ProxyClass(Gio.DBus.session, 'org.gnome.gjs.Test', + '/org/gnome/gjs/Test', + () => loop.quit(), + Gio.DBusProxyFlags.NONE); + loop.run(); + + expect(writerFunc).not.toHaveBeenCalled(); + }); + + afterAll(function () { + if (!wasPromise) { + // Remove stuff added by Gio._promisify, this can be not needed in future + // nor should break other tests, but we didn't want to depend on those. + expect(Gio.DBusProxy.prototype._original_init_async).toBeInstanceOf(Function); + Gio.DBusProxy.prototype.init_async = Gio.DBusProxy.prototype._original_init_async; + delete Gio.DBusProxy.prototype._original_init_async; + } + }); +}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/meson.build new/gjs-1.74.1/meson.build --- old/gjs-1.74.0/meson.build 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/meson.build 2022-10-30 00:57:47.000000000 +0200 @@ -2,7 +2,7 @@ # SPDX-FileCopyrightText: 2019 Philip Chimento <philip.chime...@gmail.com> # SPDX-FileCopyrightText: 2019 Chun-wei Fan <fanchun...@src.gnome.org> -project('gjs', 'cpp', 'c', version: '1.74.0', license: ['MIT', 'LGPL2+'], +project('gjs', 'cpp', 'c', version: '1.74.1', license: ['MIT', 'LGPL2+'], meson_version: '>= 0.54.0', default_options: ['cpp_std=c++17', 'cpp_rtti=false', 'c_std=c99', 'warning_level=2', 'b_pch=true' ]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.74.0/modules/core/overrides/Gio.js new/gjs-1.74.1/modules/core/overrides/Gio.js --- old/gjs-1.74.0/modules/core/overrides/Gio.js 2022-09-21 05:19:18.000000000 +0200 +++ new/gjs-1.74.1/modules/core/overrides/Gio.js 2022-10-30 00:57:47.000000000 +0200 @@ -517,6 +517,7 @@ }; _injectToMethod(Gio.DBusProxy.prototype, 'init', _addDBusConvenience); + _promisify(Gio.DBusProxy.prototype, 'init_async'); _injectToMethod(Gio.DBusProxy.prototype, 'init_async', _addDBusConvenience); _injectToStaticMethod(Gio.DBusProxy, 'new_sync', _addDBusConvenience); _injectToStaticMethod(Gio.DBusProxy, 'new_finish', _addDBusConvenience);