On 13 January 2012 17:53, Daniel Espinosa <eso...@gmail.com> wrote: > > > 2012/1/13 Vivien Malerba <vmale...@gmail.com> > >> >> >> On 13 January 2012 00:51, Daniel Espinosa <eso...@gmail.com> wrote: >> >>> >>> >>> Here is what I propose to you: >>>> >>>> - remove the generated files from git >>>> >>>> >>>> - add to git the "reference" of these files along with a test >>>> script (sh, python, perl, ...) which can then compare (or other) the >>>> generated files with the expected "reference" files to enable you to >>>> detect >>>> any problem. >>>> >>>> The advantage of having a script to detect problems is that it can be >>>> documented (in its header for example) and run by anybody who thinks there >>>> is a problem. >>>> >>>> >>> for example copy Gda-5.0.gir to libgda/gir ? And then a script to check >>> diffs? >> >> >> Yes, for example create a libgda/girtest to store the expected GIR file >> (managed using git), let the build mechanism create the GIR file in >> libgda/, and then have a script in libgda/girtest (also managed by git) >> which compares (or does other tests) the two GIR files after compilation >> (maybe executed when "make check" is run). >> >> > This could be Ok if you always know the file format and what contents > might be in. GIR format is undocumented and in GDA depends on API additions > or minor improvements. > > One of the "aditional goals" of GObject Introspectio is API verification, > I would like to try on GDA and get a first hit. I filed bug 667837 to > notify API break in GDA-5.0.gir generated by GI master, the problem comes > when check Vala extensions and fails to find a function on Gda.DataProxy. > > As explained on GI website, we could hold GIR versions for each release, > not each time we compile, because the resulting GIR could include API > breaks that must be fixed before release. To deal with bug 667837, I can > make use on Vala of custom code or metadata, but on Python or JavaScript, > witch depends directly on GIR, I can't do that. > > Another is to autogenerate GIR files but not install them. Instead we can > send a patch to Vala or fix our code to make sure we will get not API break > but API additions and improvements. When a new release is ready, we can > check for API breaks by manually or include Unit Tests cases for the whole > API in Python.
Ok, I see it's a bit more complicated than I had anticipated. Then I'll let you do what you think is the best. However please add some doc (even as a README.GIR file for example) to tell how and when GIR files are generated, checked, updated, validated, whatever, so that other developers can understand what's going on. Thanks, Vivien
_______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list