Hi Michele, > ... > You are right, I'm linking against gtk-4 shipped by the distribution > I'm using. In this case, I'm on Ubuntu 22.04 which, at the time of > writing this email, ships gtk-4 version 4.6.6. > This leads me to a few follow-up questions: > 1) I did build G-Golf using automake which should figure out all > versions of the libraries I'm linking against. there are two questions, here is the first answer: G-Golf 'figures out' its own dependencies, and gtk is not a g-golf dependency - note that this said, you need gtk+-3.0 to run make check, but that is because it's needed to check the override mechanism, there is 'no way out' - currently make checks also depends on clutter but i am working to entirely remove the clutter dependency] > Should an error have been raised when I called the incompatible > constructor? Or maybe a print in the console log? G-Golf can't do that, as by design, goops and the mop (meta object protocl) allow 'other keyword(s)' (in a make call) - so this would raise many false positive. Also, as you may see in the peg-solitaire example, G-Golf users may define GObject sub-classes that define direct slots that define init-keyword, and those slots not registered as g-properties - ll this is/are a feature, not a bug - this situation would also trigger hundreds of false positive lanching then playing the game ... You, as a G-Golf user and the author of a G-Golf based app, must know your 'stuff', consult and double check the upstream lib doc ... there is 'no way out either'. > 2) Assuming I want to write shippable code, is it possible to know > which gtk-4 version is being used and which constructor to call? You will have to, assuming you use the autotool chain, add your own app dependencies, like for example PKG_CHECK_MODULES(GTK, gtk+-4.0 >= 4.6.6) [or another version ofc, just an example ... > 3) Is gtk-string-list unique in this regard, or are there also other > classes which need to be instantiated using the non-idiomatic way? Certainly not, but as i said, you write the app, you check (which is easy really, and quite re insuring for your users ... as i said, you must know your stuff, the upstream lib doc, its version, dperecation, new interfces ... and try/doublecheck/verify when you face such a situation ... there is no way out either, and be prepared, gtk and libadwaita are in constant evolution ... > Thanks a lot for all the help! No problem, Thanks for using G-Golf! David