Note for Package Maintainers
This version switches the Gtk bindings to ones based on purego instead of cgo. The good news is that compilation times have dropped from 15+ minutes to about 30-45 seconds, and the binary's size has dropped from 50 MB to about 35. The bad news is that this means that the linking of the underlying C libraries is entirely dynamic. In most setups, it should work just fine without any changes. In some, however, such as Nix, where the libraries are in an unusual place, the default purego search path might not find them correctly. In those cases, the app will need to be run with an environment variable, PUREGOTK_LIB_FOLDER, set to the path to the libraries. It is also possible to override the path to a specific library with PUREGOTK_<LIBNAME>_PATH. Also note that there is a typo in the error message in puregotk, so if it doesn't find them it will instead claim a need to set a non-existent PUREGOTK_FOLDER variable.
What's Changed
- internal/ui: don't block the main loop waiting for a status by @DeedleFake in #322
- verify-trayscale: fix cleanup, correct tailscaled-down notes, add harness by @DeedleFake in #323
- internal/listmodels: replace gioutil.ListModel with a StringList-backed Model by @DeedleFake in #324
- internal/gutil: add GType-checked Cast and MustCast by @DeedleFake in #325
- Switch from gotk4 to puregotk by @DeedleFake in #327
- internal/ui: don't block the main loop waiting on tailscaled by @DeedleFake in #329
- internal/gutil: share callbacks so slot use doesn't grow with peers by @DeedleFake in #330
- meta: note the official linux systray by @DeedleFake in #331
- internal/ui: fix puregotk migration leaks and stale rows by @DeedleFake in #333
- meta: add ubuntu 26.04 cloud agent toolchain by @DeedleFake in #334
- internal/tsutil: preserve advertised routes when toggling exit node by @gitzone83 in #280
- internal/tray: add profile switching submenu to tray menu by @alex-poor in #276
- docs(verify-trayscale): correct the feature map by @DeedleFake in #335
- ui: omit remove on peer advertised routes by @DeedleFake in #336
- internal/tsutil: preserve explicit exit-node choices by @itsAnchorpoint in #337
- internal/ui: initialize services only in the primary instance by @itsAnchorpoint in #339
- meta: move skills to .agents and split drive-trayscale out of verify-trayscale by @DeedleFake in #340
- meta: add release-trayscale skill by @DeedleFake in #342
- meta: add v0.21.0 to metainfo by @DeedleFake in #343
New Contributors
- @alex-poor made their first contribution in #276
- @itsAnchorpoint made their first contribution in #337
Full Changelog: v0.20.0...v0.21.0