Description
As we informally decided in a voting in the working group discord channel to release a new major version of Tauri as a consequence of breaking changes we need to write an announcement that describes:
- Motivation
- Changelog
- Migration path
- Backwards (in)compatibility issues/drop
Context from working group discussions:
We need to upgrade/replace gtk3
/gtk-rs
which has breaking changes and we currently have 3ish options to go forward with:
- Get upstream maintainers of
gtk-rs
to update to a recentglib
version or transfer to tauri (unlikely but not impossible) - would be a short term solution also keeping v1 supported - Migrate to
gtk4-rs
and other upgrade behind feature flags in multiple crates to release in a minor and keep v2 supported - Migrate to
gtk4-rs
and other upgrades with a v3 major release
We can combine 1 and 2/3 to keep v1/v2 supported with security relevant updates of glib
but depends on upstream actors.
Also note that gtk3 is unmaintained since last year and the upgrade is kinda unavoidable over time, this just accelerates the process.
Context Motivation
The initial movement was caused by unsound behavior in glib < 0.2 leading to an acceleration of updating our dependencies and removing part of our older no longer required dependencies.
cargo tree -i glib
glib v0.18.5
├── atk v0.18.2
│ └── gtk v0.18.2
│ ├── libappindicator v0.9.0
│ │ └── tray-icon v0.19.2
│ │ └── tauri v2.2.3 (/home/user/tauri/crates/tauri)
│ ├── muda v0.15.3
│ ├── tao v0.31.1
│ ├── tauri v2.2.3 (/home/user/tauri/crates/tauri) (*)
│ ├── tauri-runtime v2.3.0 (/home/user/tauri/crates/tauri-runtime)
│ ├── tauri-runtime-wry v2.3.0 (/home/user/tauri/crates/tauri-runtime-wry) (*)
│ ├── webkit2gtk v2.0.1
│ └── wry v0.48.0 (*)
├── cairo-rs v0.18.5
├── gdk v0.18.2 (*)
├── gdk-pixbuf v0.18.5
├── gdkx11 v0.18.2 (*)
├── gio v0.18.4
├── gtk v0.18.2 (*)
├── javascriptcore-rs v1.1.2
├── libappindicator v0.9.0 (*)
├── pango v0.18.3 (*)
├── soup3 v0.5.0 (*)
└── webkit2gtk v2.0.1 (*)
We are touching all/most of these crates either by updating gtk or by removing it as a dependency.
Metadata
Assignees
Type
Projects
Status
Todo
Activity