Re: Feedback from downstreams presentation from DX hackfest 2015



On Mon, 2015-02-02 at 12:19 +0100, Olav Vitters wrote:
On Mon, Feb 02, 2015 at 08:05:00AM +0000, Philip Withnall wrote:
It was suggested that I send the presentation to DDL, since it might be
of general interest. I haven’t modified it from the hackfest version, so
please let me know if you have any questions.

Can we assume that most still needs to be actioned? Also interested what
discussions there were during the hackfest to improving this. E.g.
Should we maybe reach out to our advisory board? Some things mentioned
lack of documentation. So with DX hackfest and documentation at same
time I also wonder if there were any possibilities to improve this.

Here’s my list of what has been done for each point, and what still
needs doing. Apologies for the messy list, but since a lot of points
have been filed as bugs already, there seems little point in writing
them up nicely. They should roughly correspond to the points in the
presentation, with duplicates removed. If anything’s unclear, please
ask!

The ‘TODO’ items I still need to follow up on, but there are some open
questions next to them (and a few other points). I’ll bring some of
those up on DDL in the near future, but any ideas people have about
fixing them are welcome any time.

SVGs in GtkImages don’t scale with the widget
 • https://bugzilla.gnome.org/show_bug.cgi?id=728476
Some properties are confusing, such as
GtkCellRendererText:editable[-set]
 • https://bugzilla.gnome.org/show_bug.cgi?id=744052
Document GtkBuilder behaving like a factory
 • https://bugzilla.gnome.org/show_bug.cgi?id=744053
gtkmm documentation search in Devhelp
 • https://bugzilla.gnome.org/show_bug.cgi?id=743918
Documentation of widget event masks and event propagation is opaque
 • https://bugzilla.gnome.org/show_bug.cgi?id=744054
Deprecations should be documented with a rationale and replacement API,
and hopefully also a porting guide
 • https://bugzilla.gnome.org/show_bug.cgi?id=744055https://bugzilla.gnome.org/show_bug.cgi?id=744057
Project bootstrapping
 • To be done in Builder
Bootstrapping problems with gettext, intltool, gtk-doc
 • To be done in Builder
Indicating licencing in files
 • Tartan bug 844/3c7
Knowing which files to put in git
 • To be done in Builder
Parallel installability of libraries
 • https://bugzilla.gnome.org/show_bug.cgi?id=376123
 • TODO: See if any other documentation/examples needs updating
Total confusion over LT versioning
 • Not sure there’s anything which can be done about this — ideas?
Namespacing confusion for GObject
 • (random assortment of related bugs which I will try and go through)
 • https://bugzilla.gnome.org/show_bug.cgi?id=742587https://bugzilla.gnome.org/show_bug.cgi?id=658766https://bugzilla.gnome.org/show_bug.cgi?id=705056https://bugzilla.gnome.org/show_bug.cgi?id=731997
Encapsulation of members in GObject private structs
 • https://bugzilla.gnome.org/show_bug.cgi?id=744060
 • TODO: Write a HowDoI on subclassing?
Repeated, inefficient use of GList
 • https://bugzilla.gnome.org/show_bug.cgi?id=741024https://bugzilla.gnome.org/show_bug.cgi?id=741779
 • TODO: Can we do more? Stop promoting linked lists somehow?
Confusion between sync, async and threads
 • https://bugzilla.gnome.org/show_bug.cgi?id=741779https://mail.gnome.org/archives/desktop-devel-list/2015-February/msg00038.html
    - Static analysis
    - Dynamic checking (warn if sync functions called in the main loop)
    - Documentation: hide sync functions unless explicitly asked for;
      maybe only show async functions in index, add link from them to
      sync functions to show that documentation
    - Documentation for best practices for structuring async calls?
Massive over-use of g_strdup()
 • https://bugzilla.gnome.org/show_bug.cgi?id=622721
Persistent confusion over g_free(NULL)
 • https://bugzilla.gnome.org/show_bug.cgi?id=741779
No compiler, GIR or gtk-doc warnings enabled
 • https://wiki.gnome.org/Projects/GnomeCommon/Migrationhttps://wiki.gnome.org/Initiatives/GnomeGoals/ModernAutotoolshttp://www.gnu.org/software/autoconf-archive/ax_compiler_flags.html
No gtk-doc tests enabled
 • https://git.gnome.org/browse/gtk-doc/commit/?id=034942538432979f51e74
Confusion over documentation generation with gdbus-codegen
 • https://bugzilla.gnome.org/show_bug.cgi?id=743294
Tests were not automatable
 • For example, some tests in the wild ask for user input, and print
   output rather than asserting it’s some known, expected value. The
   user is expected to check the output manually.
 • Not sure if there’s anything which can be done upstream to discourage
   this.
Tests were not hooked up to CI or other tooling
 • TODO: Somehow make GTest easier to hook up to CI? TAP support is a
   good step. What else can be done?
APIs were untestable by design
 • This arises from use of global resources, such as databases in the
   home directory, or system services, by code under test. The fix is to
   structure the code to allow those resources to be mocked up by the
   test fixture.
 • Not sure if there’s anything which can be done upstream to fix this.
JSON reader function pairing on different code paths
 • https://bugzilla.gnome.org/show_bug.cgi?id=744100
No validation of resource files (XML, JSON schemas)
 • GSettings: GLIB_GSETTINGS and GSETTINGS_RULES
 • TODO: Write a HowDoI on using GSettings
 • D-Bus introspection and bus config:
    - https://bugs.freedesktop.org/show_bug.cgi?id=89011
 • GtkBuilder: https://bugzilla.gnome.org/show_bug.cgi?id=744102
 • AppData: APPDATA_XML and APPDATA_XML_RULES
 • GResource: https://bugzilla.gnome.org/show_bug.cgi?id=744101
 • TODO: Write a HowDoI on using GResource
Confusion over GSettings schema internationalisation
 • https://bugzilla.gnome.org/show_bug.cgi?id=741788
Confusion over relocatable GSettings schemas
 • https://bugzilla.gnome.org/show_bug.cgi?id=741788
Confusion over GDBus vs. libdbus and libdbus-glib
 • dbus-glib documentation has had big deprecation warnings added:
    - http://cgit.freedesktop.org/dbus/dbus-glib/commit/?id=8f9eb6392294
    - http://cgit.freedesktop.org/dbus/dbus-glib/commit/?id=82ca3f62848b
 • Top google hits for ‘dbus-glib’ have been updated to mark it as
   completely deprecated
Poor D-Bus API design in places
 • https://bugs.freedesktop.org/show_bug.cgi?id=88994
Problems with D-Bus build system integration
 •
https://mail.gnome.org/archives/desktop-devel-list/2015-January/msg00048.html
Problems building SQL and SPARQL queries
 • https://bugzilla.gnome.org/show_bug.cgi?id=741777
 • SQLite: can’t think of a decent way of fixing this
Use of POSIX APIs incompatible with GLib
 • Tartan bug 844/b32
Reinvented thread pools
 • https://bugzilla.gnome.org/show_bug.cgi?id=741779
Implications on main contexts ignored
 • https://bugzilla.gnome.org/show_bug.cgi?id=741779
 • Maybe deprecate g_timeout_add, g_idle_add() (etc.) in favour of
   versions which take an explicit GMainContext? Just to prod the
   programmer into thinking about main contexts?
Problems building file paths
 • Lots of instances where g_strconcat() is used on UTF-8 strings and no
   encoding is performed.
 • Lots of cases where a path is built, then immediately passed to
   g_file_new_for_path() and freed again.
 • TODO: How about a g_file_new_build_path(varargs) function which takes
   UTF-8 components as varargs, converts them to the GLib filename
   encoding and effectively calls
   g_file_new_from_path(g_build_filename(converted_varargs)) on them?
No validation of file sandboxing
 • Is g_file_has_prefix() good enough for checking that a file is within
   a certain root? e.g. For checking that we’re saving a downloaded file
   to somewhere in ~/Downloads.

Philip

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]