Skip to content

Releases: gircore/gir.core

0.5.0

08 May 19:18
386b22a
Compare
Choose a tag to compare

This release is the final version of the 0.5.0 release. This is a follow up release to preview.4.

Notworthy

Since 0.5.0-preview.4

  • All bindings were updated to support the GNOME SDK version 46. Among other things this adds support for GTK 4.14 and libadwaita 1.5. (#1052)
  • The libraries get build explicitly for .NET 8 (#1038). Remark: If support for .NET 6 / 7 is dropped those versions will get droped from GirCore with the following release, too
  • preview.4 added support for typed records but was missing a parameterless constructors. (#1002 )
  • Support for foreign records was added (#1010 )
  • Support for untyped records was added (#1013)
  • Support for untyped foreign records was added (#1029)
  • New samples for GTK were created by @kashifsoofi (#1022, #1024)
  • A bug was fixed if an object was not freed on main thread (#1045)
  • A bug was fixed if an interface was passed as a parameter into a method / function (#1055)
  • The homepage got updated with new content and a new docfx version (#1039, #1040)

0.5.0-preview.4

  • This release adds support for typed records constructors, methods, functions and fields. Previously in the public record API there was only the record type available without any possibility to access it's data. If you used some custom code to access this data please verify if you can replace this code with the newly available API. In general the available API surface should have improved significantly. (#965, #985, #986, #994)
  • The generation of typed records lead to several API breaks in the GObject namespace especially for the class GObject.Value. Those manually written methods originated from the very beginning of the project which were leaning into the direction to divert a lot farther from the original API. API breaks happened in other namespaces, too as manually written bindings got replaced by generated bindings which often have a slightly different method signature. (#981, #982, #991)
  • Enumerations got rebased on int instead of long to match their C definition. (#989)
  • More bindings for async methods (#993)

0.5.0-preview.3

  • Update to the latest Gnome SDK version 45. This includes GTK 4.12 and Libadwaita 1.4
  • Improved API surface for opaque records which are not registered in the GObject type system.

0.5.0-preview.2

  • More bindings for async methods (#953).
  • The parameterless Gio.Application.Run method got removed as it is not part of the official Gio Api. Additionally Gio.Application.RunWithSynchronizationContext now has a parameter to provide arguments. To achieve the original behaviour just pass null as a parameter (#956).
  • Fixed a bug introduced in preview.1 which caused an exception if an opaque typed record was used in a GObject.Value (#959).

0.5.0-preview.1

  • The Gtk-4.0.DependencyInjection project was removed as there is not one way to do dependency injection right. Every project needs to find it's own solution.
  • Improved API surface for opaque records which are registered as boxed types with the GObject type system.

What's Changed since 0.5.0-preview.4

Full Changelog since 0.4.0: 0.4.0...0.5.0

0.5.0-preview.4

13 Jan 11:31
ce3bceb
Compare
Choose a tag to compare
0.5.0-preview.4 Pre-release
Pre-release

This release is the fourth preview of the upcoming 0.5.0 release. This is a follow up release to preview.3.

Noteworthy:

  • This release adds support for typed records constructors, methods, functions and fields. Previously in the public record API there was only the record type available without any possibility to access it's data. If you used some custom code to access this data please verify if you can replace this code with the newly available API. In general the available API surface should have improved significantly. (#965, #985, #986, #994)
  • The generation of typed records lead to several API breaks in the GObject namespace especially for the class GObject.Value. Those manually written methods originated from the very beginning of the project which were leaning into the direction to divert a lot farther from the original API. API breaks happened in other namespaces, too as manually written bindings got replaced by generated bindings which often have a slightly different method signature. (#981, #982, #991)
  • Enumerations got rebased on int instead of long to match their C definition. (#989)
  • More bindings for async methods (#993)

If you encounter any errors, missing features or encounter problems to adopt to the new version please open an issue.

Important

There is currently no public parameterless constructor available for typed records. To create a new instance of a typed record you need to create a managed handle first. For example to create an instance of Gdk.Rgba it would be: new Gdk.RGBA(RGBAManagedHandle.Create()). There will be a new parameterless constructor in the next version.

What's Changed

New Contributors

Full Changelog: 0.5.0-preview.3...0.5.0-preview.4

0.5.0-preview.3

13 Nov 10:34
555492b
Compare
Choose a tag to compare
0.5.0-preview.3 Pre-release
Pre-release

This release is the third preview of the upcoming 0.5.0 release. This is a follow up release to preview.2.

Noteworthy:

  • Update to the latest Gnome SDK version 45. This includes GTK 4.12 and Libadwaita 1.4
  • Improved API surface for opaque records which are not registered in the GObject type system.

What's Changed

  • Prefer zero terminated string array over length based arrays. by @badcel in #962
  • Support opaque untyped records by @badcel in #942
  • Update dependencies by @badcel in #972

Full Changelog: 0.5.0-preview.2...0.5.0-preview.3

0.5.0-preview.2

11 Oct 19:29
87fc0b8
Compare
Choose a tag to compare
0.5.0-preview.2 Pre-release
Pre-release

This release is the second preview of the upcoming 0.5.0 release. This is a follow up release to preview.1.

Noteworthy:

  • More bindings for async methods (#953).
  • The parameterless Gio.Application.Run method got removed as it is not part of the official Gio Api. Additionally Gio.Application.RunWithSynchronizationContext now has a parameter to provide arguments. To achieve the original behaviour just pass null as a parameter (#956).
  • Fixed a bug introduced in preview.1 which caused an exception if an opaque typed record was used in a GObject.Value (#959).

What's Changed

Full Changelog: 0.5.0-preview.1...0.5.0-preview.2

0.5.0-preview.1

02 Sep 19:24
85a91e3
Compare
Choose a tag to compare
0.5.0-preview.1 Pre-release
Pre-release

This release is the first preview of the upcoming 0.5.0 release.

Noteworthy:

  • The Gtk-4.0.DependencyInjection project was removed as there is not one way to do dependency injection right. Every project needs to find it's own solution.
  • Improved API surface for opaque records which are registered as boxed types with the GObject type system.

What's Changed

New Contributors

Full Changelog: 0.4.0...0.5.0-preview.1

0.4.0

19 Jul 19:52
627a5c0
Compare
Choose a tag to compare

This release features a lot of improvements all over the board and several new contributors which is very much appreciated.

Noteworthy:

  • Lot's of improvements in regard to strings, callbacks, primitive value types and arrays which should improve the available API quite a bit. This includes support for Span<T> in the API to allow writing code without memory duplication if data is exchanged between .NET and native binaries.
  • Constants are now generated as const instead of static readonly
  • Several methods can now have the same name if it is defined in the gir file. This means that some existing APIs got a different name.
  • Support for C aliases. If a C library defines an alias a struct is generated to represent the alias. This makes the API more readable as the C# API does not need fall back to the underlying type anymore. There are implicit casts in place which should make it easy to continue to pass in primitive types into such parameters.
  • Properties clashing with it's containing class name were not generated before. Now they get generated and receive a suffix (_).
  • It is now possible to catch exceptions inside callbacks. Beforehand those were crashing the application. Now it is possible to use GLib.UnhandledException.SetHandler() to handle any unhandled exception.
  • There are now bindings for GtkSourceView available including some simple sample.
  • Windows: It is now obsolete to explicitly set the apartment state to STA in an application. This is done automatically during initialization if the operating system is windows.
  • It is possible to explicitly enable a SynchronizationContext to integrate async methods with GLib.MainLoop to avoid manual dispatching of code back into the main thread of GLib. This can be used either via GLib.MainLoop.RunWithSynchronizationContext() or Gio.Application.RunWithSynchronizationContext().
  • WebKit2-5.0 got replaced by WebKit-6.0 which introduces some API changes. The samples were updated accordingly.
  • Update to LibAdwaita 1.3
  • Update to Gtk 4.10

What's Changed

New Contributors

Full Changelog: 0.3.0...0.4.0

0.3.0

05 Feb 20:31
d95c297
Compare
Choose a tag to compare

This release features a new nuget package WebKit2 and it's depending libraries. Check out the WebKit samples to get a first impression. There was a new C testing library written by @cameronwhite, several bugs were squashed and new API was made available.

Noteworthy:

  • Explicit support for .NET 7. If you use this version with .NET 7 some reflection code is not executed in contrast to .NET 6.
  • Classes now have a static GetGType method #753
  • Support for detailed signals via GObject.Signal.Connect method #752

What's Changed

New Contributors

Full Changelog: 0.2.0...0.3.0

0.2.0

05 Jan 19:27
a336006
Compare
Choose a tag to compare

This release features initial support for interfaces, support for global and class functions, updated gir files (support for libadwaita 1.2), more cairo bindings and several bugfixes and code cleanups.

Noteworthy:

  • Module initialization is now done automatically if GIO / GTK /Adw Application is used #701
  • Object indexers to connect signals got removed #726

What's Changed

Full Changelog: 0.1.0...0.2.0

0.1.0

04 Dec 19:13
3347479
Compare
Choose a tag to compare

What's Changed

Read more

Prototype (0.0.2)

13 Nov 15:57
1a7e4e1
Compare
Choose a tag to compare
Prototype (0.0.2) Pre-release
Pre-release

Prototype code which generates bindings for all supported GObject libraries.