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 aGObject
type, so you can use it withGListModel
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 thetzdata
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 useGTimeZone
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.