Skip to content

deps: Bump GirCore.Gtk-4.0 from 0.6.3 to 0.8.0 - #4

Merged
oswaldosierra merged 1 commit into
mainfrom
dependabot/nuget/GirCore.Gtk-4.0-0.8.0
Jul 11, 2026
Merged

deps: Bump GirCore.Gtk-4.0 from 0.6.3 to 0.8.0#4
oswaldosierra merged 1 commit into
mainfrom
dependabot/nuget/GirCore.Gtk-4.0-0.8.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 11, 2026

Copy link
Copy Markdown
Contributor

Updated GirCore.Gtk-4.0 from 0.6.3 to 0.8.0.

Release notes

Sourced from GirCore.Gtk-4.0's releases.

0.8.0

This is the first non-preview release of 0.8.0 which introduces GTK composite template support, GNOME 50 support (inlcuding GTK 4.22 and libadwaita 1.9) and under the hood fixes for several runtime errors.

Please be aware that there are resulting breaking changes:

Please continue reading to get an overview of all relevant changes and a description of the breaking changes and the newly introduced GTK composite template support.

Noteworthy

Since 0.8.0-preview.1

  • Fix: Construct properties don't produce a runtime error anymore (#​1489)
  • Fix: GObject.Value now supports extracting arrays (#​1490)
  • Fix: Improved internal rendering of arrays (#​1515)
  • Fix: In case of a race condition between GObject and the dotnet garbage collector the application will not crash anymore but a detailed warning will be logged (#​1536)
  • Feature: Updated to GNOME 50 APIs (#​1527)
  • Feature: Gio.ListStore.New<T> method to allow a more idiomatic instantiation (#​1495)
  • Feature: It is now possible to register a custom DLL import resolver to connect GirCore to arbitrary binaries (Module.SetCustomDllImportResolver). Please be aware that this API is marked as Experimental and should be avoided in favor of a custom GirCore build (#​1501)
  • Feature: New template loader for GResource (#​1510)
  • Feature: Handler of GLib.UnhandledException.SetHandler will be triggered for regular callbacks (#​1529)

0.8.0-preview.1

  • Feature: Composite template support, details below (#​1405, #​1395, #​1425, #​1419, #​1442, #​1437, #​1455, #​1466)
  • Feature: New GdkWayland-4.0 nuget packages (#​1423)
  • Feature: out / ref enums are now supported (#​1459)
  • Feature: out opaque typed records are now supported (#​1463)
  • Sample: New dropdown sample (#​1428)
  • Sample: New async-UI sample (#​1461)

Breaking changes

This release includes GTK composite support which is a major milestone for the GirCore project. To reach this goal there were some breaking changes necessary. Those mainly affect the usage of Gtk.Builder, the creation of subclasses and to a lesser extent the creation of native classes. In total those changes are a first step to allow deeper integration with the GObject type system.

The API was held as backwards compatible as possible. Warnings are raised for APIs which will be removed in a later release (0.9.0). Please read ahead carefully to get an overview of the breaking changes and how to resolve them.

The following sections describe the breaking changes and how to solve them. A more detailed explanation why the breaking changes are necessary can be found in the explanation of the diagnostic message 1007. Issue 1441 describes the available feature set between versions.

Instance creation

Since the beginning of GirCore constructors of GObjects were rendered as static factory methods. There is one exception: It is possible to create instances with a parameterless constructor or an array of ConstructArgument. As GObject itself expects all objects to be creatable without a parameterized class specific constructor this public constructor will be marked as obsolete and a new factory method will be rendered as an alternative. This means the API is not yet removed but its usage is discouraged as the deeper integration with GObject requires a workaround to make it work.

var obj = new MyObject(); // GirCore 1007 warning
var obj = new MyObject([]); // GirCore 1007 warning
var obj = MyObject.NewWithProperties([]); //No warning

Subclasses

To make subclasses work they will rely on source generators to integrate dotnet deeply with the GObject type system. This requires some unsafe code to be rendered as C will call directly into dotnet code. For this to work projects using GObject based subclasses must set <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in their csproj files.

The creation of subclasses includes several scenarios. The classic dotnet way of subclassing via a parent parameterless constructor now raises a warning. Please note that the Initialize method is called always if an instance of the subclass is created. Even if the instance is created by the GObject type system itself. Therefore it is safe to mark the member _value as not null.

 ... (truncated)

## 0.8.0-preview.1

This release is the first preview of the upcoming 0.8.0 release. To get an overview of the planned features of the 0.8.0 release please [see the corresponding milestone](https://github.com/gircore/gir.core/milestone/7).

**Important**
This release includes GTK composite support which is a major milestone for the GirCore project. To reach this goal there were some breaking changes necessary.  Those mainly affect the usage of `Gtk.Builder`, the creation of subclasses and to a lesser extent the creation of native classes. In total those changes are a first step to allow deeper integration with the GObject type system.

The API was held as backwards compatible as possible. Warnings are raised for APIs which will be removed in a later  release (0.9.0). Please read ahead carefully to get an overview of the breaking changes and how to resolve them.

As the deeper GObject integration required modifications in the memory management code, there might be memory related bugs. If anything comes up please [open an issue](https://github.com/gircore/gir.core/issues/new/choose).

## Noteworthy
- Feature: Composite template support, details below (#​1405, #​1395, #​1425, #​1419, #​1442, #​1437, #​1455, #​1466)
- Feature: New GdkWayland-4.0 nuget packages (#​1423)
- Feature: `out` / `ref` enums are now supported (#​1459)
- Feature: `out` opaque typed records are now supported (#​1463)
- Sample: New dropdown sample (#​1428)
- Sample: New async-UI sample (#​1461)

## Breaking changes
The following sections describe the breaking changes and how to solve them. A more detailed explanation why the breaking changes are necessary can be found in the explanation of the diagnostic message [1007](https://github.com/gircore/gir.core/blob/main/docs/docs/integration/diagnostic/1007.md). Issue [1441](https://github.com/gircore/gir.core/issues/1441) describes the available feature set between versions.

### Instance creation
Since the beginning of GirCore constructors of GObjects were rendered as static factory methods. There is one exception: It is possible to create instances with a parameterless constructor or an array of `ConstructArgument`. As GObject itself expects all objects to be creatable without a parameterized class specific constructor this public constructor will be marked as obsolete and  a new factory method will be rendered as an alternative. This means the API is not yet removed but its usage is discouraged as the deeper integration with GObject requires a workaround to make it work.

```csharp
var obj = new MyObject(); // GirCore 1007 warning
var obj = new MyObject([]); // GirCore 1007 warning
var obj = MyObject.NewWithProperties([]); //No warning

Subclasses

To make subclasses work they will rely on source generators to integrate dotnet deeply with the GObject type system. This requires some unsafe code to be rendered as C will call directly into dotnet code. For this to work projects using GObject based subclasses must set <AllowUnsafeBlocks>true</AllowUnsafeBlocks> in their csproj files.

The creation of subclasses includes several scenarios. The classic dotnet way of subclassing via a parent parameterless constructor now raises a warning. Please note that the Initialize method is called always if an instance of the subclass is created. Even if the instance is created by the GObject type system itself. Therefore it is safe to mark the member _value as not null.

public class MyObject : GObject.Object
{
    private string _value;

    public MyObject() // GirCore 1007 warning
    {
        _value = "test";
    }
} 

[GObject.Subclass<GObject.Object>]
public partial class MyObject
{
    private string _value;

 ... (truncated)

## 0.7.0

This is the first release of [0.7.0](https://github.com/gircore/gir.core/releases/tag/0.7.0).

Please be aware that there are some breaking changes:
* Due to improved API generation `string[]` parameters may not need an explicit size parameter anymore.
* `Gst.Application.Init` was removed. Gstreamer does not provide an `Application` class. This was a relict from the very beginning of the project and was a result of missing binding for `gst_init` which is now available as `Gst.Functions.Init`.

There is a new [ecosystem](https://gircore.github.io/docs/ecosystem.html)  page on the homepage. Anyone interested in promoting their GirCore related library is welcome to open a pull request.

## Noteworthy
### Since 0.7.0-preview.3
* Fix: `Gtk.FontDialog.ChooseFaceAsync` (#​1350)
* Fix: `InvalidCastException` on certain APIs (#​1331)
* Feature: Improved `Glib.PtrArray` support (#​1349, #​1361) thanks @​alansartorio 
* Feature: Dotnet 10 support (#​1370 based on work from @​kashifsoofi) 
* Feature: Bindings for `GdkWin32` (#​1359)
* Feature: Add `Gtk.CustomSorter.New<T>` as a generic variant of `Gtk.CustomSorter.New`. See samples for usage (#​1375)
* Fix + Feature: Improved generation of native non null termainted string arrays. The public API does not require a length parameter anymore as the length is determined automatically. This changes allows to generate more string array related APIs. (#​1379)

### 0.7.0-preview.3
* Feature: Add support for the GNOME 49 SDK including GTK 4.20 and libadwaita 1.8.
* Fix: Properties of type `Long` are now always working as expected (#​1311)
* Feature: First steps to improve support for native `GLib.SList`. See the unit tests for example usage (#​1317)
* Feature: New Pango methods and constants which are not available in the GIR file (#​1320, #​1321)
* Feature: Allow a `Cairo.ImageSurface` to be directly created from `GLib.Bytes` (#​1322)

### 0.7.0-preview.2
* Signals which are part of an interface are now available in the bindings (#​1302).
* A new convenience function to retrieve a `GLib.Bytes` region as `ReadOnlySpan` (#​1306).
* Thanks to @​czirok for adding [bindings](https://www.nuget.org/packages/GirCore.Rsvg-2.0/) for [librsvg](https://gitlab.gnome.org/GNOME/librsvg) (#​1263).
* Thanks to @​toomasz for adding [bindings](https://www.nuget.org/packages/GirCore.GstApp-1.0/) for GstApp which is part of GStreamer (#​1276).
* Thanks to @​AeonLucid for contributing support for callbacks which are nested in classes (#​1290).
* Thanks to @​UrtsiSantsi and @​kashifsoofi for their ongoing support of the project.

### 0.7.0-preview.1
* Update to GNOME 48 which includes GTK 4.18 and libadwaita 1.7 (#​1237).
* Bindings for [libsecret](https://gnome.pages.gitlab.gnome.org/libsecret/) are now available as a [nuget package](https://www.nuget.org/packages/GirCore.Secret-1/) (#​1236).
* The gir.core SynchronizationContext now implements the `Send` method allowing users to dispatch actions into the main thread (#​1222).
* Several bug fixes and improvements in regard to closures and signal handling (#​1238, #​1247, #​1248)
* A bug fix which allows to properly set `uint64` based properties (#​1259).

## What's Changed
* Update documentation by @​badcel in https://github.com/gircore/gir.core/pull/1206
* Build: Add new F# script to determine current version number by @​badcel in https://github.com/gircore/gir.core/pull/1207
* Move dotnet properties outside src folder by @​badcel in https://github.com/gircore/gir.core/pull/1208
* Move F# scripts to scripts folder by @​badcel in https://github.com/gircore/gir.core/pull/1209
* Release: Automatically create Github release by @​badcel in https://github.com/gircore/gir.core/pull/1210
* Fix auto release by @​badcel in https://github.com/gircore/gir.core/pull/1211
* Auto release: Install github cli tool by @​badcel in https://github.com/gircore/gir.core/pull/1212
* Auto release: Add nuget packages by @​badcel in https://github.com/gircore/gir.core/pull/1213
* Auto release: fix nuget path by @​badcel in https://github.com/gircore/gir.core/pull/1214
 ... (truncated)

## 0.7.0-preview.3

This release is the third preview of the upcoming 0.7.0 release. To get an overview of the planned features of the 0.7.0 release please [see the corresponding milestone](https://github.com/gircore/gir.core/milestone/6).

This release adds support for the GNOME 49 SDK including GTK 4.20 and libadwaita 1.8.

## Noteworthy
* Fix: Properties of type `Long` are now always working as expected (#​1311)
* Feature: First steps to improve support for native `GLib.SList`. See the unit tests for example usage (#​1317)
* Feature: New Pango methods and constants which are not available in the GIR file (#​1320, #​1321)
* Feature: Allow a `Cairo.ImageSurface` to be directly created from `GLib.Bytes` (#​1322)

## What's Changed
* Rename existing Long-Testers by @​badcel in https://github.com/gircore/gir.core/pull/1309
* Rename long tester by @​badcel in https://github.com/gircore/gir.core/pull/1312
* Properly support Long / ULong / Int64 / UInt64 properties by @​badcel in https://github.com/gircore/gir.core/pull/1311
* Add GObject.Object to generic type constraint of instance factory/wrapper by @​ousnius in https://github.com/gircore/gir.core/pull/1316
* GLib.SList: Add IEnumerable<SListElement> and related extensions by @​ousnius in https://github.com/gircore/gir.core/pull/1317
* Add Pango CSS scale factor constants by @​ousnius in https://github.com/gircore/gir.core/pull/1321
* Fix typo in exception for TypedRecord ParameterConverter by @​ousnius in https://github.com/gircore/gir.core/pull/1323
* Add Pango unit conversion/rounding functions from C function macros by @​ousnius in https://github.com/gircore/gir.core/pull/1320
* Generate methods with typed records as out parameter (non-nullable, no transfer) by @​ousnius in https://github.com/gircore/gir.core/pull/1324
* Cairo: Support ImageSurface for data by @​badcel in https://github.com/gircore/gir.core/pull/1322
* Bump AwesomeAssertions from 9.1.0 to 9.2.0 by @​dependabot[bot] in https://github.com/gircore/gir.core/pull/1326
* Bump actions/checkout from 4 to 5 by @​dependabot[bot] in https://github.com/gircore/gir.core/pull/1300
* Bump AwesomeAssertions from 9.2.0 to 9.2.1 by @​dependabot[bot] in https://github.com/gircore/gir.core/pull/1333
* Update to GNOME 49 by @​badcel in https://github.com/gircore/gir.core/pull/1336

## New Contributors
* @​ousnius made their first contribution in https://github.com/gircore/gir.core/pull/1316

**Full Changelog**: https://github.com/gircore/gir.core/compare/0.7.0-preview.2...0.7.0-preview.3

## 0.7.0-preview.2

This release is the second preview of the upcoming 0.7.0 release. To get an overview of the planned features of the 0.7.0 release please [see the corresponding milestone](https://github.com/gircore/gir.core/milestone/6).

## Noteworthy
* Signals which are part of an interface are now available in the bindings (#​1302).
* A new convenience function to retrieve a `GLib.Bytes` region as `ReadOnlySpan` (#​1306).
* Thanks to @​czirok for adding [bindings](https://www.nuget.org/packages/GirCore.Rsvg-2.0/) for [librsvg](https://gitlab.gnome.org/GNOME/librsvg) (#​1263).
* Thanks to @​toomasz for adding [bindings](https://www.nuget.org/packages/GirCore.GstApp-1.0/) for GstApp which is part of GStreamer (#​1276).
* Thanks to @​AeonLucid for contributing support for callbacks which are nested in classes (#​1290).
* Thanks to @​UrtsiSantsi and @​kashifsoofi for their ongoing support of the project.

## What's Changed
* Rsvg-2.0.gir by @​czirok in https://github.com/gircore/gir.core/pull/1263
* Update gir files by @​github-actions[bot] in https://github.com/gircore/gir.core/pull/1194
* Update gir files by @​github-actions[bot] in https://github.com/gircore/gir.core/pull/1268
* Improve size based string array support by @​badcel in https://github.com/gircore/gir.core/pull/1225
* Add GstApp project by @​toomasz in https://github.com/gircore/gir.core/pull/1276
* Add ecosystem page by @​badcel in https://github.com/gircore/gir.core/pull/1283
* Add flatpak as a Linux app distribution framework by @​UrtsiSantsi in https://github.com/gircore/gir.core/pull/1285
* Add support for callbacks nested in classes by @​AeonLucid in https://github.com/gircore/gir.core/pull/1290
* #​1148: Replace FluentAssertions with AwesomeAssertions by @​kashifsoofi in https://github.com/gircore/gir.core/pull/1293
* Implement interface signals by @​badcel in https://github.com/gircore/gir.core/pull/1279
* Support signals with parameter types from GLib by @​badcel in https://github.com/gircore/gir.core/pull/1302
* GLib.Bytes: Add GetRegionSpan method by @​badcel in https://github.com/gircore/gir.core/pull/1306

## New Contributors
* @​toomasz made their first contribution in https://github.com/gircore/gir.core/pull/1276
* @​AeonLucid made their first contribution in https://github.com/gircore/gir.core/pull/1290

**Full Changelog**: https://github.com/gircore/gir.core/compare/0.7.0-preview.1...0.7.0-preview.2

## 0.7.0-preview.1

This release is the first preview of the upcoming 0.7.0 release. To get an overview of the planned features of the 0.7.0 release please [see the corresponding milestone](https://github.com/gircore/gir.core/milestone/6).

## Noteworthy
* Update to GNOME 48 which includes GTK 4.18 and libadwaita 1.7 (#​1237).
* Bindings for [libsecret](https://gnome.pages.gitlab.gnome.org/libsecret/) are now available as a [nuget package](https://www.nuget.org/packages/GirCore.Secret-1/) (#​1236).
* The gir.core SynchronizationContext now implements the `Send` method allowing users to dispatch actions into the main thread (#​1222).
* Several bug fixes and improvements in regard to closures and signal handling (#​1238, #​1247, #​1248)
* A bug fix which allows to properly set `uint64` based properties (#​1259).

## What's Changed
* Update documentation by @​badcel in https://github.com/gircore/gir.core/pull/1206
* Build: Add new F# script to determine current version number by @​badcel in https://github.com/gircore/gir.core/pull/1207
* Move dotnet properties outside src folder by @​badcel in https://github.com/gircore/gir.core/pull/1208
* Move F# scripts to scripts folder by @​badcel in https://github.com/gircore/gir.core/pull/1209
* Release: Automatically create Github release by @​badcel in https://github.com/gircore/gir.core/pull/1210
* Fix auto release by @​badcel in https://github.com/gircore/gir.core/pull/1211
* Auto release: Install github cli tool by @​badcel in https://github.com/gircore/gir.core/pull/1212
* Auto release: Add nuget packages by @​badcel in https://github.com/gircore/gir.core/pull/1213
* Auto release: fix nuget path by @​badcel in https://github.com/gircore/gir.core/pull/1214
* Auto release: List nuget files relative to source path by @​badcel in https://github.com/gircore/gir.core/pull/1216
* Auto release: Add working directory as safe by @​badcel in https://github.com/gircore/gir.core/pull/1217
* Auto release: Integrate into CI by @​badcel in https://github.com/gircore/gir.core/pull/1218
* MainLoopSynchronizationContext: Implement Send by @​badcel in https://github.com/gircore/gir.core/pull/1222
* Add and use in tests platform attribute by @​UrtsiSantsi in https://github.com/gircore/gir.core/pull/1235
* Update to GNOME SDK 48 by @​badcel in https://github.com/gircore/gir.core/pull/1237
* Add GirCore.Secret with libsecret support by @​czirok in https://github.com/gircore/gir.core/pull/1236
* Add Pinta, fixes #​1233 by @​UrtsiSantsi in https://github.com/gircore/gir.core/pull/1241
* Secret: Add sample to list collections by @​badcel in https://github.com/gircore/gir.core/pull/1242
* Closure: Bind closure to object lifetime by @​badcel in https://github.com/gircore/gir.core/pull/1238
* TypedRecords: Remove public OnDispose method by @​badcel in https://github.com/gircore/gir.core/pull/1246
* GObject: Move closure handling into safehandle by @​badcel in https://github.com/gircore/gir.core/pull/1247
* Add fixer for record-field name collision by @​czirok in https://github.com/gircore/gir.core/pull/1249
* Remove Parabolic from App list by @​Lemon73-Computing in https://github.com/gircore/gir.core/pull/1253
* CI: Introduce dependabot multi directory config by @​Lemon73-Computing in https://github.com/gircore/gir.core/pull/1254
* Rework Closures by @​badcel in https://github.com/gircore/gir.core/pull/1248
* Add missing support for ulong in GObject.Value to fix property accessors by @​cameronwhite in https://github.com/gircore/gir.core/pull/1259
* Bump version to 0.7.0 by @​badcel in https://github.com/gircore/gir.core/pull/1260
* Update gir files by @​badcel in https://github.com/gircore/gir.core/pull/1261
* CI: Install github cli by @​badcel in https://github.com/gircore/gir.core/pull/1262

## New Contributors
* @​czirok made their first contribution in https://github.com/gircore/gir.core/pull/1236
* @​Lemon73-Computing made their first contribution in https://github.com/gircore/gir.core/pull/1253

**Full Changelog**: https://github.com/gircore/gir.core/compare/0.6.3...0.7.0-preview.1

Commits viewable in [compare view](https://github.com/gircore/gir.core/compare/0.6.3...0.8.0).
</details>

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=GirCore.Gtk-4.0&package-manager=nuget&previous-version=0.6.3&new-version=0.8.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

---
updated-dependencies:
- dependency-name: GirCore.Gtk-4.0
  dependency-version: 0.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code labels Jul 11, 2026
@oswaldosierra
oswaldosierra merged commit bb8fdd7 into main Jul 11, 2026
1 check passed
@oswaldosierra
oswaldosierra deleted the dependabot/nuget/GirCore.Gtk-4.0-0.8.0 branch July 11, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant