Skip to content

Releases: ianprime0509/zig-gobject

v0.3.2

Choose a tag to compare

@ianprime0509 ianprime0509 released this 19 Jul 20:35

The main highlight of this release is support for Zig 0.16.0 and the GNOME 50 SDK.

What's Changed

New Contributors

Full Changelog: v0.3.1...v0.3.2

v0.3.1

Choose a tag to compare

@ianprime0509 ianprime0509 released this 26 Nov 21:33

Apologies for the long delay in releases since the last version. I finally got some time to work on automation for CI and fixing up some test issues that had cropped up since the Zig 0.15 migration, so future releases should hopefully go more smoothly.

The main highlight of this release is support for Zig 0.15, and updates to the supported GNOME SDKs. There have also been several fixes to GIR, which have resulted in more accurate bindings.

The only notable breaking change is with custom property accessors: the API for gobject.ext.Accessor is now more flexible, using gobject.Value directly. The old type-safe accessors can now be created using gobject.ext.typedAccessor, which also now accepts options to control how getters and setters handle ownership of data.

What's Changed

New Contributors

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@ianprime0509 ianprime0509 released this 14 Mar 02:50

Full Changelog: v0.2.2...v0.3.0

The main highlight of this release is that the project has been updated to Zig 0.14.0 as the baseline supported version. There are also a few other notable changes:

  • Breaking change: Object property definitions have been simplified. The readable and writable flags have been removed in favor of making accessor functions optional. See 4cb495f for more details.
  • A new build helper, buildCompileResources, has been added, which allows constructing a GResource bundle from lazy paths rather than a static gresources.xml descriptor.
  • The binding generator should now be more usable as its own package thanks to a contribution by @jcollie (#97).
  • Various other bug fixes and code cleanups.

Thank you to everyone who contributed code, issue reports, and suggestions to this release!

v0.2.2

Choose a tag to compare

@ianprime0509 ianprime0509 released this 11 Oct 02:39

Full Changelog: v0.2.1...v0.2.2

This release contains several changes since v0.2.1, most notably, GNOME 47 SDK bindings and restoring compatibility with the latest Zig master (while retaining support for 0.13.0). Release highlights:

  • Breaking change: to ensure conformance with Zig's new requirement for fields and decls to have non-conflicting names, all field names in translated classes, records, and unions are now prefixed with f_.
  • Handling of bool and string properties has been corrected (#71).
  • The generated bindings are now compatible with Zig master again (#73).
  • Bindings for the GNOME 47 SDK have been added, and bindings for the GNOME 45 SDK have been dropped.
  • A new helper, gobject.ext.privateFieldAccessor, is now available to aid in defining properties backed by private fields.
  • The "detail" part of a signal can now be specified when connecting it via the signal connect helper function.

Thanks to @thetek42, @sin-ack, and @robertgzr for their contributions to this release, both in code contributions and issue reports.

v0.2.1

Choose a tag to compare

@ianprime0509 ianprime0509 released this 23 Jul 02:59

Full Changelog: v0.2.0...v0.2.1

This is a small bugfix release for v0.2.0 with an important fix for signal emission using the gobject.ext.defineSignal helper (#67). It also adds support for signal destroyData (#68).

v0.2.0

Choose a tag to compare

@ianprime0509 ianprime0509 released this 05 Jul 05:39

Full Changelog: v0.1.1...v0.2.0

This release contains various enhancements, in particular:

  • Zig 0.13.0 support
  • Definitions of properties on object types using gobject.ext.defineProperty
  • Definitions of boxed types using gobject.ext.defineBoxed
  • Definitions of enum types using gobject.ext.defineEnum
  • Definitions of flags types using gobject.ext.defineFlags
  • Fixes for various extension functionality, particularly surrounding gobject.ext.Value

Bindings are provided for the GNOME 45 and 46 SDKs; the GNOME 44 SDK is no longer supported, so no bindings for it are provided.

There are several breaking changes in this release, most notably:

  • The module naming conventions have changed: instead of gtk-4.0, use gtk4, etc.
  • gobject.ext.defineType has been renamed to gobject.ext.defineClass (the former name would have been confusing now that several other GObject types can be defined)
  • Signal connection functions have been moved: instead of gobject.Object.connectSomething, use gobject.Object.signals.something.connect, etc.

v0.1.1

Choose a tag to compare

@ianprime0509 ianprime0509 released this 13 Feb 05:14

Full Changelog: v0.1.0...v0.1.1

This release includes various bug fixes and a few enhancements. Most notably, bindings are now provided for the GNOME 45 SDK, since #37 was worked around.

This release is compatible with Zig 0.12.0-dev.2711+f995c1b08, though higher or lower versions may also work.

There is only one notable breaking change in this release, which is related to a bug fix: array types which were marked as nullable in GIR are now properly translated as such (744df36).

v0.1.0

Choose a tag to compare

@ianprime0509 ianprime0509 released this 31 Jan 06:49

This is the initial release of zig-gobject. It should be usable for general applications, and is intended to expose at least the full power of the underlying C APIs to the user. However, it may be missing some additional useful extensions and helpers, and there is always the possibility of a few bugs in translation or in the current extensions.

This release is compatible with Zig 0.12.0-dev.2341+92211135f, though lower or higher versions may also work.

Note: unfortunately, due to the incorrect GIR reported in #37, no GNOME 45 SDK bindings are included in this release, as they are pretty much useless with the incorrect type (which is indirectly referenced by many things).