Changes in libgweather for GNOME 42

If you are using libgweather in your application please be mindful of the following changes planned for this development cycle:

  • the GTK3 widgets are going to be removed from the API; they are kind of bad, but more importantly they prevent the use of libgweather in GTK4 applications; I might end up putting them into a separate shared library, but I’d recommend copying them into your own project if you care about them; unlike the rest of libgweather, they are LGPL-2.1-or-later

  • the API is getting cleaned up to conform to current best practices of the core platform

  • the namespace will be bumped to 4.0, and the version of the project will be reset to that, after following the GNOME version

  • I’m evaluating whether to rename the namespace to Gweather, to avoid the amounts of overrides currently in place to ensure that all our symbols tokenise under “GWEATHER” instead of “G_WEATHER”; this would be a large-ish change, compared to the size of the library, so I’m not entirely sold on it

  • the API will be versioned and stable, so no more “I know this is unstable” symbol; this means: deprecations and new symbols only

  • the Yahoo provider has been dropped years ago, but the GWeatherProvider enum value is still there; now it will be removed

  • the internal dependency on libsoup2 will be updated to use libsoup3

New API will be added if the current consumers of the library agree on it; if you’re porting an application to GTK4 and you wish to have additional functionality to ease your port, please feel free to open an issue on GitLab, or use the “gweather” tag on Discourse.

7 Likes

I have just updated jhbuild to build libgweather from a branch. Maintainers still using jhbuild will need to update their local checkouts to get the libgweather-3 module.

The gnome-build-meta recipe use libgweather from the 40.0 release tarball, so there won’t be any changes.

Note to distributors:

This includes:

  • changing the version of the project from 40.0 to 4.0
  • changing the name of the shared library to libgweather-4.so
  • changing the SONAME of the shared library to 0.xxxx.y, using the same formula as GLib and GTK

This means that the recommended package name for libgweather should be something like libgweather-4 or libgweather4, to avoid the 4.0 > 40.0 scenario.

During the development cycle of GNOME 42, the version will be set to 3.90.x; when GNOME 42 is released, the version will be 4.0, and the SONAME will be bumped to 1.xxxx.y to preserve the sort order.