[Gambas-user] GTK+ 3, the library that is a full mess at each new minor release

Adrien Prokopowicz adrien.prokopowicz at ...626...
Sun Sep 3 00:26:09 CEST 2017


Le Sat, 02 Sep 2017 21:28:25 +0200, Benoît Minisini via Gambas-user  
<gambas-user at lists.sourceforge.net> a écrit:

> Hi,
>
> <rant>
>
> I have just noticed that GTK+ 3 has changed its internal drawing model  
> (for the n-th time) since 3.20 (I think).
>
> And, as usual, this new drawing model is not API backward-compatible,  
> and so now the Gambas Style drawing methods do not work anymore in  
> Gambas.
>
> At the moment, I have no idea how to draw the widgets components with  
> the new GTK+3, and if it is possible outside of the library.
>
> Really, I would not like to be in the brain of a GTK+ library  
> developer... Someone should explain them what a "minor release" really  
> is some day...
>
> </rant>
>

I found this blog post to be somewhat informative on how the GTK devs think
about versioning :

https://blogs.gnome.org/desrt/2016/06/13/gtk-4-0-is-not-gtk-4/

 From what I understood : GTK does not use SemVer. At all. Assuming X.Y.Z  
versions,
a .Y release IS a breaking change.

If you want stability (API or ABI-wise), use the previous major version.
Only when GTK4 will come out, you will have a stable GTK3 (which means :
make a gb.gtk4 component only when GTK5 is out).
They also want to have a stricter release schedule : a minor release every
six months, and a major release every two years.

This is a versioning scheme I completely agree with. I too would use this
scheme, if I wasn't able to design APIs without breaking everything every  
time
I wanted to add something in.

(Yes, this is sarcasm.)

So, long story short : if you want to use GTK, either you rewrite your code
every six months whenever a minor release comes out, or you wait two years
for a new major release to bring you new features (and rewrite literally
everything this time).

As for your issues, I think it may be related to how they broke themes in  
recent
releases, but I can't remember exactly when. I only remember they broke it  
at
least in two GTK3 versions, and 3.20 is definitely one of them.

-- 
Adrien Prokopowicz




More information about the User mailing list