Skip to content
Tags give the ability to mark specific points in history as being important
  • 1.64.4 protected
    Version 1.64.4
    
    - Closed bugs and merge requests:
      * Fix CI failure caused by GTK4 update [!447, Philip Chimento]
  • 1.58.8 protected
    Version 1.58.8
    
    - Various backports
      * 1.63.3: test suite is failing [Philip Chimento]
      * Various fixes for potential crash and memory issues [Philip Chimento]
  • 1.65.3 protected
    Version 1.65.3
    
    - In GTK 4, Gtk.Widget is now an iterable object which iterates through its
      child widgets. (`for (let child of widget) { ... }`)
    
    - Closed bugs and merge requests:
      * Installed tests are not in preferred directories [#318, !427, Ross Burton]
      * Build new test CI images with Buildah [!429, Philip Chimento]
      * CI fixes for new test images [!433, Philip Chimento]
      * Various maintenance [!428, Philip Chimento]
      * Fix dead link [!436, prnsml]
      * overrides/Gtk: Make GTK4 widgets iteratable [!437, Florian Müllner]
      * arg.cpp: Fix building on Visual Studio [!439, Chun-wei Fan]
      * Separate closures and vfuncs [!438, Philip Chimento]
      * Improvements to IWYU script [!435, Philip Chimento]
      * Various refactors in preparation for ES modules [!440, Evan Welsh, Philip
        Chimento]
    
    - Various refactors for type safety [Marco Trevisan]
  • 1.64.3 protected
    Version 1.64.3
    
    - Closed bugs and merge requests:
      * arg: Don't sink GClosure ref if it's a return value [!426, Philip Chimento]
      * overrides/Gtk: Adjust gtk_container_child_set_property() check [!431,
        Florian Müllner]
      * 1.63.3: test suite is failing [#298, !430, Philip Chimento]
      * Simplify private pointers [!434, Philip Chimento]
    
    - Various backports:
      * Use memory GSettings backend in tests [Philip Chimento]
      * Update debug message from trimLeft/trimRight to trimStart/trimEnd [Philip
        Chimento]
      * Various fixes for potential crash and memory issues [Philip Chimento]
  • 1.65.2 protected
    Version 1.65.2
    
    - It's now possible to omit the getter and setter for a GObject property on your
      class, if you only need the default behaviour (reading and writing the
      property, respecting the default value if not set, and implementing property
      notifications if the setter changes the value.) This should cut down on
      boilerplate code and any mistakes made in it.
    
    - The log level of exception messages has changed. Previously, some exceptions
      would be logged as critical-level messages even when they were logged
      intentionally with logError(). Now, critical-level messages are only logged
      when an exception goes uncaught (programmer error) and in all other cases a
      warning-level message is logged.
    
    - Closed bugs and merge requests:
      * build: Use '!=' instead of 'is not' to compare string [Robert Mader, !414]
      * Various maintenance [Philip Chimento, !413, !425]
      * doc fixes [Sonny Piers, !415, !416]
      * jsapi-util: Make log levels of exceptions consistent [Philip Chimento, !418]
      * Too much recursion error accessing overrided gobject interface property from
        a subclass [Philip Chimento, #306, !408]
      * JS: migrate from the global `window` to `globalThis` [Andy Holmes, !423]
      * doc: Fix a typo [Matthew Leeds, !424]
  • 1.64.2 protected
    Version 1.64.2
    
    - Closed bugs and merge requests:
      * GList of int not correctly demarshalled on 64-bit big-endian [Philip
        Chimento, Simon McVittie, #309, !417, !419]
      * Fix template use in GTK4 [Florian Müllner, !420]
      * Don't crash if a callback doesn't return an expected array of values [Marco
        Trevisan, !405]
      * Crash passing integer to strv in constructor [Evan Welsh, #315, !422]
      * Skip some tests if GTK can't be initialised [Ross Burton, !421]
    
    - Various backports:
      * Fix gjs_log_exception() for InternalError [Philip Chimento]
      * Fix signal match mechanism [Philip Chimento]
  • 1.58.7 protected
    Version 1.58.7
    
    - Various backports:
      * Don't crash if a callback doesn't return an expected array of values [Marco
        Trevisan]
      * GList of int not correctly demarshalled on 64-bit big-endian [Philip
        Chimento, Simon McVittie]
      * Crash passing integer to strv in constructor [Evan Welsh]
      * Ignore format-nonliteral warning [Marco Trevisan]
  • 1.65.1 protected
    Version 1.65.1
    
    - Closed bugs and merge requests:
      * boxed: Implement newEnumerate hook for boxed objects [Ole Jørgen Brønner,
        !400]
      * ns: Implement newEnumerate hook for namespaces [Ole Jørgen Brønner, !401]
      * CI: Tag sanitizer jobs as "privileged" [Philip Chimento, !407]
      * overrides/Gio: Allow promisifying static methods [Florian Müllner, !410]
      * overrides/Gio: Guard against repeated _promisify() calls [Florian Müllner,
        !411]
  • 1.64.1 protected
    Version 1.64.1
    
    - The BigInt type is now _actually_ available, as it wasn't enabled in the
      1.64.0 release even though it was mentioned in the release notes.
    
    - Closed bugs and merge requests:
      * testCommandLine's Unicode tests failing on Alpine Linux [Philip Chimento,
        #296, !399]
      * build: Various clean-ups [Jan Tojnar, !403]
      * Correctly handle vfunc inout parameters [Marco Trevisan, !404]
      * Fix failed redirect of output in CommandLine tests [Liban Parker, !409]
  • 1.58.6 protected
    Version 1.58.6
    
    - Various backports:
      * Correctly handle vfunc inout parameters [Marco Trevisan]
      * Fix failed redirect of output in CommandLine tests [Liban Parker]
      * Avoid filename conflict when tests run in parallel [Philip Chimento]
  • 1.64.0 protected
    Version 1.64.0
    
    - No change from 1.63.92.
  • 1.63.92 protected
    Version 1.63.92
    
    - Closed bugs and merge requests:
      * object: Use g_irepository_get_object_gtype_interfaces [Colin Walters, Philip
        Chimento, #55, !52]
      * Add -fno-semantic-interposition to -Bsymbolic-functions [Jan Alexander
        Steffens (heftig), #303, !397]
      * examples: add a dbus-client and dbus-service example [Andy Holmes, !398]
      * Various GNOME Shell crashes during GC, mozjs68 regression [Jan Alexander
        Steffens (heftig), Philip Chimento, #301, !396]
  • 1.63.91 protected
    Version 1.63.91
    
    - Closed bugs and merge requests:
      * [mozjs68] Reorganize modules for ESM. [Evan Welsh, Philip Chimento, !383]
      * Various maintenance [Philip Chimento, !388]
      * Fix building GJS master with Visual Studio and update build instructions
        [Chun-wei Fan, !389]
      * Resolve "Gnome Shell crash on GC run with mozjs68" [Philip Chimento, !391]
      * installed-tests/js: Add missing dep on warnlib_typelib [Jan Alexander
        Steffens, !393]
      * object: Cache known unresolvable properties [Daniel van Vugt, Philip
        Chimento, !394, #302]
    
    Included changes from version 1.58.5
    
    - Closed bugs and merge requests:
      * Fix Visual Studio builds of gnome-3-34 (1.58.x) branch [Chun-wei Fan, !392]
      * Can not access GObject properties of classes without GI information [Juan
        Pablo Ugarte, !385, #299]
  • 1.58.5 protected
    Version 1.58.5
    
    - Closed bugs and merge requests:
      * Fix Visual Studio builds of gnome-3-34 (1.58.x) branch [Chun-wei Fan, !392]
      * Can not access GObject properties of classes without GI information [Juan
        Pablo Ugarte, !385, #299]
  • 1.63.90 protected
    Version 1.63.90
    
    - New JS API: The GObject module has gained new overrides:
      GObject.signal_handler_find(), GObject.signal_handlers_block_matched(),
      GObject.signal_handlers_unblock_matched(), and
      GObject.signal_handlers_disconnect_matched(). These overrides replace the
      corresponding C API, which was not idiomatic for JavaScript and was not fully
      functional because it used bare C pointers for some of its functionality.
      See modules/overrides/GObject.js for API documentation.
    
    - New JavaScript features! This version of GJS is based on SpiderMonkey 68, an
      upgrade from the previous ESR (Extended Support Release) of SpiderMonkey 60.
      Here are the highlights of the new JavaScript features.
      For more information, look them up on MDN or devdocs.io.
    
      * New language features
        + The BigInt type, currently a stage 3 proposal in the ES standard, is now
          available.
    
      * New syntax
        + `globalThis` is now the ES-standard supported way to get the global
          object, no matter what kind of JS environment. The old way, `window`, will
          still work, but is no longer preferred.
        + BigInt literals are expressed by a number with "n" appended to it: for
          example, `1n`, `9007199254740992n`.
    
      * New APIs
        + String.prototype.trimStart() and String.prototype.trimEnd() now exist and
          are preferred instead of trimLeft() and trimRight() which are nonstandard.
        + String.prototype.matchAll() allows easier access to regex capture groups.
        + Array.prototype.flat() flattens nested arrays, well-known from lodash and
          similar libraries.
        + Array.prototype.flatMap() acts like a reverse filter(), allowing adding
          elements to an array while iterating functional-style.
        + Object.fromEntries() creates an object from iterable key-value pairs.
        + Intl.RelativeTimeFormat is useful for formatting time differences into
          human-readable strings such as "1 day ago".
        + BigInt64Array and BigUint64Array are two new typed array types.
    
      * New behaviour
        + There are a lot of minor behaviour changes as SpiderMonkey's JS
          implementation conforms ever closer to existing ECMAScript standards and
          adopts new ones. For complete information, read the Firefox developer
          release notes:
          https://developer.mozilla.org/en-US/Firefox/Releases/61#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/62#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/63#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/64#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/65#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/66#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/67#JavaScript
          https://developer.mozilla.org/en-US/Firefox/Releases/68#JavaScript
    
      * Backwards-incompatible changes
        + The nonstandard String generics were removed. These had only ever been
          implemented by Mozilla and never made it into a standard. (An example of a
          String generic is calling a string method on something that might not be a
          string like this: `String.endsWith(foo, 5)`. The proper way is
          `String.prototype.endsWith.call(foo, 5)` or converting `foo` to a string.)
          This should not pose much of a problem for existing code, since in the
          previous version these would already print a deprecation warning whenever
          they were used.
          You can use `moz68tool` from mozjs-deprecation-tools
          (https://gitlab.gnome.org/ptomato/moz60tool) to scan your code for this
          nonstandard usage.
    
    - Closed bugs and merge requests:
      * invalid import on signal.h [#295, !382, Philip Chimento]
      * SpiderMonkey 68 [#270, !386, Philip Chimento]
      * GObject: Add override for GObject.handler_block_by_func [#290, !371, Philip
        Chimento]
  • 1.63.3 protected
    Version 1.63.3
    
    - Closed bugs and merge requests:
      * JS ERROR: TypeError: this._rooms.get(...) is undefined [Philip Chimento,
        #289, !367]
      * Run CI build with --werror [Philip Chimento, #286, !365]
      * build: Remove Autotools build system [Philip Chimento, !364]
      * gjs-symlink script is incompatible with distro builds [Michael Catanzaro,
        Bastien Nocera, #291, !369, !370]
      * installed-tests: Don't hardcode the path of bash [Ting-Wei Lan, !372]
      * Update Visual Studio build instructions (after migrating to full Meson-based
        builds) [Chun-wei Fan, !375]
      * object: Warn when setting a deprecated property [Florian Müllner, !378]
      * CI: Create mozjs68 CI images [Philip Chimento, !379]
      * Various maintenance [Philip Chimento, !374, !380, !381]
  • 1.58.4 protected
    Version 1.58.4
    
    - Now prints a warning when constructing an unregistered object inheriting from
      GObject (i.e. if you forgot to use GObject.registerClass.) In 1.58.2 this
      would throw an exception, which broke some existing code, so that change was
      reverted in 1.58.3. In this version the check is reinstated, but we log a
      warning instead of throwing an exception, so that people know to fix their
      code, but without breaking things.
      NOTE: In 1.64 (the next stable release) the warning will be changed back into
      an exception, because code with this problem can be subtly broken and cause
      unexpected errors elsewhere. So make sure to fix your code if you get this
      warning.
    
    - Closed bugs and merge requests:
      * GSettings crash fixes [Andy Holmes, !373]
    
    - Memory savings for Cairo objects [Philip Chimento, !374]
    
    - Fix for crash in debug functions [Philip Chimento, !374]
  • 1.58.3 protected
    Version 1.58.3
    
    - Emergency release, intended to correct two mistakes in 1.58.2, both coming
      from crash fixes that had unexpected other effects on working code.
      Distributors shipping 1.58.2 are urged to update to 1.58.3 as soon as
      possible.
    
    - Closed bugs and merge requests:
      * possible regression in gjs 1.58.2 [Philip Chimento, #288]
      * JS ERROR: TypeError: this._rooms.get(...) is undefined [Philip Chimento,
        #289, !366]
  • 1.63.2 protected
    Version 1.63.2
    
    - There is an option for changing the generated GType name for GObject classes
      created in GJS to a new scheme that is less likely to have collisions. This
      scheme is not yet the default, but you can opt into it by setting
      `GObject.gtypeNameBasedOnJSPath = true;` as early as possible in your
      prograṁ. Doing this may require some changes in Glade files if you use
      composite widget templates.
    
      We recommend you make this change in your codebase as soon as possible, to
      avoid any surprises in the future.
    
    - New JS API: GObject.Object has gained a stop_emission_by_name() method which
      is a bit more idiomatic than calling GObject.signal_stop_emission_by_name().
    
    - It's now supported to use the "object" attribute in a signal connection in a
      composite widget template in a Glade file.
    
    - Closed bugs and merge requests:
      * CI: Tweak eslint rule for unneeded parentheses [Florian Müllner, !353]
      * Smarter GType name computation [Marco Trevisan, !337]
      * Meson CI [Philip Chimento, !354]
      * Visual Studio builds using Meson [Chun-wei Fan, !355]
      * Hide internal symbols from ABI [Marco Trevisan, #194, !352]
      * Allow creating custom tree models [Giovanni Campagna, #71]
      * build: Fix dist files [Florian Müllner, !357]
      * GObject: Add convenience wrapper for signal_stop_emission_by_name() [Florian
        Müllner, !358]
      * Various maintenance [Philip Chimento, !356]
      * object_instance_props_to_g_parameters should do more check on argv [Philip
        Chimento, #63, !359]
      * Support flat C arrays of structures [Philip Chimento, !361]
      * Gtk Templates: support connectObj argument [Andy Holmes, !363]
    
    - Various build fixes [Philip Chimento]
  • 1.58.2 protected
    Version 1.58.2
    
    - Closed bugs and merge requests:
      * GObject based class initialization checks [Marco Trevisan, Philip Chimento,
        !336]
      * Silently leaked return value of callbacks [Xavier Claessens, Philip
        Chimento, #86, !44]
      * Crash when calling Gio.Initable.async_init with not vfunc_async_init
        implementation [Philip Chimento, #287, !362]
      * [cairo] insufficient checking [Philip Chimento, #49, !360]
    
    - Various crash fixes backported from the development branch that didn't close
      a bug or merge request.