halting problem :: Fair Weather Friends

:: ~2 min read

Today I released libgweather-3.90.0, the first developers snapshot of GWeather 4:

Behold! A project logo

This release is mostly meant to be used as a target for porting existing code to the new API, and verifying that everything works as it should.

The major changes from GWeather-3.0 are:

  • the GTK3 widgets have gone to a farm up state, so you’ll have to write your own UI for searching locations
  • GWeatherLocation is a GObject type, so you can use it with GListModel and friends, which should help with the point above
  • the deprecated API has been removed
  • the API that will be part of GWeather 4.0 will be stable, and regular API/ABI stability guarantees will apply

If you are using libgweather in your application, you should head over to the migration guide and check out what changed.

Ideally, there are still things that need to be cleaned up in the GWeather API, for instance:

  • GWeatherTimezone parses the tzdata file directly, which comes with its own set of issues, like having to track whether the time zone database has changed or not; we should use GTimeZone instead, but the API provided by the two types do not match entirely. I need to check the current users of that API, and if possible, just drop the whole type.
  • GWeatherInfo has a bunch of getter functions that return the bare values and that can fail, and additional getter functions that always return a formatted string, and cannot fail; it’s not a great API.
  • GWeatherLocation returns the localised names by default, and has additional getters for the “English” (really: POSIX C locale) names.

If you encounter issues when porting, please: file an issue on GitLab.

gnome development gweather

Older posts

  1. , In which I explain what is happening in the libgweather repository
  2. , In which I explain some changes in the GObject introspection format that landed in GNOME 41
  3. , In which I explain how to build and publish your library’s API reference on GitLab
  4. , In which I outline what comes next in the developers documentation of the GNOME platform
  5. , In which I introduce a new GObject feature
  6. , In which I report about the status of gi-docgen
  7. , In which I talk about a new tool to generate the API reference for GTK
  8. , In which we talk about derivable types that are not GObject
  9. , In which I announce a new release of Graphene

Page 1 / 35 »