commit 48fb00980464c95f69579688c5390cf0560c4f04
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Mar 20 18:11:21 2017 +0100

    pygi-info: initialize GIArgument before passing it to
    g_constant_info_get_value

    Co-Authored-By: Mikhail Fludkov <misha@pexip.com>

    https://bugzilla.gnome.org/show_bug.cgi?id=772949

 gi/pygi-info.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit e0c036d84ee66530498ec71e5388eaf23df2eb95
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Mar 20 16:10:12 2017 +0100

    configure.ac: post-release version bump to 3.24.1

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9d76190bc7a256764b1af5ec4bd05ce4a7b6e1d2
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Mar 20 14:28:51 2017 +0100

    release 3.24.0

 NEWS | 3 +++
 1 file changed, 3 insertions(+)

commit bffbb4b1f823de5035e51e013dc6da5a973045aa
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Mar 20 14:23:59 2017 +0100

    configure.ac: pre-release version bump to 3.24.0

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 78defd2ab5f1935a6226336eaa08727e7516fb02
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Mar 13 20:14:37 2017 +0100

    release 3.23.92

 NEWS | 10 ++++++++++
 1 file changed, 10 insertions(+)

commit 4ccabfec0cececba935339ea8449ec51b4aeef5e
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Mar 13 20:13:13 2017 +0100

    Version bump to 3.23.92

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ebc245c477c36fa1f65f80d2e75792b82d837611
Author: Fabian Orccon <cfoch.fabian@gmail.com>
Date:   Tue Jan 24 00:00:12 2017 -0500

    overrides: Update for Gdk-4.0 and Gtk+-4.0

    Override Gdk.Color and Gdk.RGBA according version.
    Use properly Gtk.init_check in Gtk+-4.0

    https://bugzilla.gnome.org/show_bug.cgi?id=777680

 gi/overrides/Gdk.py | 74
 ++++++++++++++++++++++++++++-------------------------
 gi/overrides/Gtk.py |  7 +++--
 2 files changed, 44 insertions(+), 37 deletions(-)

commit d005df9645fd5fb2f19bd09384355f45591f1e58
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Jan 23 21:26:05 2017 +0100

    Disable -Werror=missing-prototypes

    https://bugzilla.gnome.org/show_bug.cgi?id=760056
    added some code triggering "missing-prototype" which we by default
    treat as an error. This disables that specific error by default.

    https://bugzilla.gnome.org/show_bug.cgi?id=777534

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6695931a0dfb7d9db9ea14a128108342c3d0be89
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Jan 9 20:44:11 2017 +0100

    Fix new PEP8 errors

    Two new errors popped up:

    * E305 expected 2 blank lines after class or function definition
    * E741 ambiguous variable name

    https://bugzilla.gnome.org/show_bug.cgi?id=776009

 examples/cairo-demo.py             |  1 +
 examples/properties.py             |  1 +
 gi/_option.py                      |  1 +
 gi/overrides/GIMarshallingTests.py |  2 ++
 gi/overrides/GLib.py               | 19 +++++++++++++++++++
 gi/overrides/GObject.py            | 12 ++++++++++++
 gi/overrides/Gdk.py                |  3 +++
 gi/overrides/Gio.py                |  2 ++
 gi/overrides/Gtk.py                | 35
 +++++++++++++++++++++++++++++++++++
 gi/overrides/Pango.py              |  2 ++
 gi/types.py                        |  1 +
 pygtkcompat/pygtkcompat.py         |  1 +
 tests/test_generictreemodel.py     |  1 +
 tests/test_interface.py            |  4 ++++
 tests/test_iochannel.py            |  1 +
 tests/test_overrides_gtk.py        | 10 +++++-----
 tests/test_properties.py           | 12 ++++++------
 tests/test_signal.py               |  1 +
 18 files changed, 98 insertions(+), 11 deletions(-)

commit 3f68e0a352abc12e1990e82e3134c48f0be2b3c9
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Wed Mar 23 17:07:53 2016 +0100

    Move pep8/pyflakes tests from 'make check' to 'make check.quality'

    The current behaviour is problematic because new versions of
    pep8/pyflakes
    add new warnings or get more picky. This makes testing
    hard in case newly added code is developed on an older version
    or when testing old branches/releases.

    This moves the pep8/pyflakes tests to a new "make check.quality"
    command.

    This also removes the SKIP_PEP8 flag which was added in
    25d12afd06863ce
    to speed up make check.

    https://bugzilla.gnome.org/show_bug.cgi?id=764087

 HACKING     |  2 +-
 Makefile.am | 12 +++++-------
 2 files changed, 6 insertions(+), 8 deletions(-)

commit 222f5581c38551bdd5c6c9ca4e895d1f44397ad1
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Fri Oct 21 13:59:54 2016 +0200

    overrides: Update for Gtk-4.0

    Skip things which are gone since 4.0.
    This only fixes importing and doesn't add any tests for now.

    https://bugzilla.gnome.org/show_bug.cgi?id=773315

 gi/overrides/Gtk.py | 482
 ++++++++++++++++++++++++++--------------------------
 1 file changed, 242 insertions(+), 240 deletions(-)

commit 8694e4dd42565f07b6f9ba1221fb03146be333a0
Author: Dan Nicholson <nicholson@endlessm.com>
Date:   Wed Dec 21 12:02:14 2016 -0600

    Handle exception unreffing Variant at exit

    Calling unref will cause gi and gi.repository.GLib to be imported.
    However, if the program is exiting, then these modules have likely
    been
    removed from sys.modules and will raise an exception. Assume
    that's the
    case for ImportError and ignore the exception since everything will be
    cleaned up, anyways.

    This can be triggered with the following trivial program:

    $ python3 -c 'from gi.repository import GLib; v = GLib.Variant("s",
    "foo")'
    Exception ignored in:

    Adding some debug code to show the full exception revealed this:

    Traceback (most recent call last):
      File "/home/dan/src/pygobject/build3/gi/overrides/GLib.py", line
      265, in __del__
        self.unref()
    ImportError: import of 'gi.repository.GLib' halted; None in
    sys.modules

    https://bugzilla.gnome.org/show_bug.cgi?id=776092

 gi/overrides/GLib.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 54c623ba639654716ca475f75c92cc8ed673d9f5
Author: Dan Nicholson <nicholson@endlessm.com>
Date:   Wed Dec 21 11:50:08 2016 -0600

    Handle multiple deinit of callable cache

    In python3, it seems that the callable cache deinit can be called
    multiple times when the program is exiting. Make that safer by
    clearing
    the various pointers in the structure using g_clear_pointer and
    Py_CLEAR. A subsequent call will skip all the deinit by seeing NULL
    pointers for the members.

    This was causing a critical warning when destroying the arg name hash
    table multiple times with the following trivial program:

    $ python3 -c 'from gi.repository import GLib; v = GLib.Variant("s",
    "foo")'

    (process:32378): GLib-CRITICAL **: g_hash_table_destroy: assertion
    'hash_table != NULL' failed

    (process:32378): GLib-CRITICAL **: g_hash_table_destroy: assertion
    'hash_table != NULL' failed

    https://bugzilla.gnome.org/show_bug.cgi?id=776092

 gi/pygi-cache.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

commit 94226b8eb63dd985def8501168572ee16e02acad
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Sep 19 15:31:57 2016 +0200

    configure.ac: post-release version bump to 3.23.0

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit fb1b8fa8a67f2c7ea7ad4b53076496a8f2b4afdb
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Sep 19 15:27:35 2016 +0200

    release 3.22.0

 NEWS | 3 +++
 1 file changed, 3 insertions(+)

commit b93523fcdb6bc04b42709ecd30b8cd11de80f0c5
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Sep 19 15:24:35 2016 +0200

    configure.ac: pre-release version bump to 3.22.0

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 3ec19401dc57263508ee3aa16f5293419c222f5b
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Sun Sep 11 11:45:59 2016 +0200

    release 3.21.92

 NEWS | 7 +++++++
 1 file changed, 7 insertions(+)

commit 7ccc164b6da6d87c0a200ea50314d213470a1f18
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Sat Sep 3 20:02:13 2016 +0200

    Handle nullable filename parameters

    Make _pygi_marshal_from_py_filename handle None input
    values. This allows one to pass None to parameters
    annotated as nullable filenames.

    This fixes a test suite error in test_spawn_async_with_pipes
    triggered by an annotation change in glib.

    https://bugzilla.gnome.org/show_bug.cgi?id=770821

 gi/pygi-basictype.c             |  5 +++++
 tests/gimarshallingtestsextra.c | 22 ++++++++++++++++++++++
 tests/gimarshallingtestsextra.h |  3 +++
 tests/test_gi.py                |  4 ++++
 4 files changed, 34 insertions(+)

commit f4d858c069f06e7060a0bb067c29f5bffb7869ee
Author: Aurelien Jarno <aurelien@aurel32.net>
Date:   Wed Aug 31 22:16:06 2016 +0200

    Fix list/hashtable enum <-> hash conversion on 64-bit big endian

    glist and ghashtable objects both store pointers. Complex objects are
    stored as pointers to the objects, but simpler objects like an integer
    value are stored directly as a pointer, using for example the
    GINT_TO_POINTER and GPOINTER_TO_INT macros.

    This is done in pygobject with the _pygi_hash_pointer_to_arg and
    _pygi_arg_to_hash_pointer functions. These functions handle the
    various
    type of objects. However they consider that an enum, represented
    with the
    GI_TYPE_TAG_INTERFACE type (extended interface object), are always a
    pointer. This is wrong as it is often a 32-bit value. Therefore
    on 64-bit
    big endian machines, the value is handle with the 2 32-bit parts
    swapped.

    This patches fixes that by changing the second argument of both
    functions
    from GITypeTag to GITypeInfo. This way the interface can be
    determined,
    and the underlying storage type can also be determined. This currently
    only handles enum and flags, leaving other types as pointers. The
    patch
    also adds two tests in the testsuite, one for each direction.

    https://bugzilla.gnome.org/show_bug.cgi?id=770608

 gi/pygi-argument.c              | 33 +++++++++++++++++++++++++++++----
 gi/pygi-argument.h              |  4 ++--
 gi/pygi-hashtable.c             |  8 ++++----
 gi/pygi-list.c                  |  8 ++++----
 tests/gimarshallingtestsextra.c | 33 +++++++++++++++++++++++++++++++++
 tests/gimarshallingtestsextra.h | 10 ++++++++++
 tests/test_gi.py                | 11 +++++++++++
 7 files changed, 93 insertions(+), 14 deletions(-)

commit 1cb6c470e9d297afda21b73efaccb0b95e519b5d
Author: Lukas K <lu@0x83.eu>
Date:   Fri May 13 21:30:47 2016 +0200

    Allow passing sockets to io_add_watch on win32

    https://bugzilla.gnome.org/show_bug.cgi?id=766396

 gi/overrides/GLib.py | 4 ++++
 1 file changed, 4 insertions(+)

commit 4617c39ca212f0da82af1a9989c912bcdfe1158b
Author: Michael Biebl <biebl@debian.org>
Date:   Sat Sep 3 16:46:40 2016 +0200

    tests: use dbus-run-session instead of dbus-launch to run tests

    The use of dbus-launch is deprecated by dbus upstream.
    See https://lists.debian.org/debian-devel/2016/08/msg00554.html
    for more
    details.

    So use dbus-run-session instead, which was specifically designed to be
    used for such cases, like running test-suites.

    See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=836049.

    https://bugzilla.gnome.org/show_bug.cgi?id=770798

 tests/Makefile.am | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

commit 4b9185250d73c38231d90b53974d0d2912a02972
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Thu Aug 25 16:57:11 2016 +0200

    configure.ac: post-release version bump to 3.21.92

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 2f98ecc4df9e0feaab78ba289956f469e36c7d76
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Thu Aug 25 16:51:39 2016 +0200

    release 3.21.91

 NEWS | 13 +++++++++++++
 1 file changed, 13 insertions(+)

commit 91abec259ed0c387ab69762ff92142b08327d00a
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Thu Aug 25 16:50:56 2016 +0200

    configure.ac: version bump to 3.21.91

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f65bb1fc8f7f6172970545412fe56ab75f57904b
Author: Mathieu Bridon <bochecha@daitauha.fr>
Date:   Thu Jun 23 22:35:42 2016 +0200

    Allow installing with pip

    This commit adds a setup.py file which just calls the autotools to
    configure/make/make install.

    It is heavily inspired by the similar work from Simon McVittie on
    dbus-python.

    https://bugzilla.gnome.org/show_bug.cgi?id=767988

 .gitignore  |   3 ++
 Makefile.am |   3 +-
 setup.py    | 105
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 110 insertions(+), 1 deletion(-)

commit 14626ee5dcf380ae94680626607742a8cc048351
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Jun 6 20:08:18 2016 +0200

    Skip a test with older glib

    https://bugzilla.gnome.org/show_bug.cgi?id=740301

 tests/test_docstring.py | 4 ++++
 1 file changed, 4 insertions(+)

commit a12f7027adeb57fe1c0142c86d34d5ec8f6b6d9e
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Jun 6 20:13:29 2016 +0200

    Fix a test with Python 3.1/3.2

    Fix Python version check in
    TestImporter.test_invalid_repository_module_name()
    to avoid failure with Python 3.1 and 3.2.

    Fix provided by Arfrever Frehtes Taifersar Arahesis at
       https://bugzilla.gnome.org/show_bug.cgi?id=740324#c1

    https://bugzilla.gnome.org/show_bug.cgi?id=740324

 tests/test_import_machinery.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f5cf74f3b8d285de3591d89c6f3b4b8d59bde35e
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Jun 6 20:45:22 2016 +0200

    tests: Use places kwarg for assertAlmostEqual

    Always pass 'places' argument of TestCase.assertAlmostEqual
    as keyword argument.

    Fix by Arfrever Frehtes Taifersar Arahesis
        https://bugzilla.gnome.org/show_bug.cgi?id=740337#c1

    https://bugzilla.gnome.org/show_bug.cgi?id=740337

 tests/test_properties.py | 6 +++---
 tests/test_signal.py     | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

commit e0b40099283a31ea23433f9d36dc9beebd4370c9
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Jun 6 11:34:47 2016 +0200

    Print exception if marshalling a signal argument fails

    For example if cairo support is missing a Gtk.Widget::draw call
    will result in
    "TypeError: Couldn't find foreign struct converter for
    'cairo.Context'"

    https://bugzilla.gnome.org/show_bug.cgi?id=748198

 gi/pygi-signal-closure.c | 1 +
 1 file changed, 1 insertion(+)

commit 76e2e30bc586016eba8bcfdd753dc1f4672dced7
Author: Marinus Schraal <mschraal@src.gnome.org>
Date:   Fri May 20 01:26:27 2016 +0200

    overrides: allow treemodel sequence shorthands

    Add get_ and set_ overrides for sequences of GtkTreeModel
    indices. This
    allows an arbitray list of indices to be retrieved or written in
    one go
    from or to a GtkTreeModel row:

    model[0][0, 1] = [True, "Hello"]
    [foo, bar] = model[0][2, 7]

    https://bugzilla.gnome.org/show_bug.cgi?id=766580

 gi/overrides/Gtk.py         | 15 +++++++++++++--
 tests/test_overrides_gtk.py | 46
 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 2 deletions(-)

commit ff1a6f0f00e042c5addfa42231ec8927ebf1a1a6
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Tue May 31 19:26:00 2016 +0200

    Remove pygobject-external.h

    It's not used any more

    https://bugzilla.gnome.org/show_bug.cgi?id=767084

 gi/Makefile.am          |  1 -
 gi/pygobject-external.h | 73
 -------------------------------------------------
 2 files changed, 74 deletions(-)

commit f5dd1551371308d33df9627bc8cc0e34fa68a2a8
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Tue May 31 18:47:54 2016 +0200

    Remove pygobject-private.h and rename pygobject.c to
    pygobject-object.c

    Move all the random declarations in pygobject-private.h to their
    respective header files. Rename pygobject.c to pygobject-object.c
    so it's clearer that it's not the implementation of pygobject.h.
    Add a new pygobject-internal.h which includes pygobject.h
    with _INSIDE_PYGOBJECT_ defined like pygobject-private.h did.

    In case you are looking at the git log and end up here due to the
    rename try:

      git log --follow pygobject-object.c

    or on the web interface go to the history of the old file name:

    https://git.gnome.org/browse/pygobject/log/gi/pygobject.c?id=6b702c052e9f26e809cff494f0c896d17a514c64

    https://bugzilla.gnome.org/show_bug.cgi?id=767084

 gi/Makefile.am                         |   7 +-
 gi/gimodule.c                          |  10 +-
 gi/gobjectmodule.c                     |  56 +---------
 gi/gobjectmodule.h                     |  11 ++
 gi/pygboxed.c                          |   4 +-
 gi/pygboxed.h                          |  11 ++
 gi/pygenum.c                           |   4 +-
 gi/pygenum.h                           |  22 ++++
 gi/pygflags.c                          |   4 +-
 gi/pygflags.h                          |  21 ++++
 gi/pygi-argument.c                     |   4 +-
 gi/pygi-basictype.c                    |   2 +-
 gi/pygi-boxed.c                        |   3 +-
 gi/pygi-boxed.h                        |   2 +-
 gi/pygi-cache.c                        |   1 +
 gi/pygi-ccallback.c                    |   1 -
 gi/pygi-enum-marshal.c                 |   3 +-
 gi/pygi-foreign.c                      |   2 +-
 gi/pygi-info.c                         |   2 +-
 gi/pygi-object.c                       |   2 +-
 gi/pygi-property.c                     |   1 +
 gi/pygi-property.h                     |   2 +-
 gi/pygi-signal-closure.h               |   2 +-
 gi/pygi-source.c                       |   3 +-
 gi/pygi-struct-marshal.c               |   3 +
 gi/pygi-struct.c                       |   3 +-
 gi/pygi-struct.h                       |   2 +-
 gi/pygi-type.c                         |   2 +-
 gi/pygi-util.c                         |  42 ++++++++
 gi/pygi-util.h                         |   6 ++
 gi/pygi-value.c                        |   6 +-
 gi/pyginterface.c                      |   3 +-
 gi/pygobject-internal.h                |   7 ++
 gi/{pygobject.c => pygobject-object.c} |  27 ++++-
 gi/pygobject-object.h                  |  56 ++++++++++
 gi/pygobject-private.h                 | 186
 ---------------------------------
 gi/pygparamspec.c                      |   5 +-
 gi/pygpointer.c                        |   3 +-
 gi/pygpointer.h                        |   8 ++
 gi/pygtype.c                           |  27 ++---
 gi/pygtype.h                           |  25 +++++
 41 files changed, 305 insertions(+), 286 deletions(-)

commit ef7a6dad8cea6a3b9547cfae00bf15ebb9eb756e
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Tue May 31 15:44:36 2016 +0200

    Merge pyglib-private.h into pyglib.h

    No need for another header

    https://bugzilla.gnome.org/show_bug.cgi?id=767084

 gi/Makefile.am        |  1 -
 gi/gimodule.c         |  2 +-
 gi/glibmodule.c       |  1 -
 gi/pygi-resulttuple.c |  2 +-
 gi/pygi-source.c      |  1 -
 gi/pyglib-private.h   | 40 ----------------------------------------
 gi/pyglib.c           |  1 -
 gi/pyglib.h           |  6 ++++++
 gi/pygoptioncontext.c |  1 -
 gi/pygoptiongroup.c   |  1 -
 gi/pygspawn.c         |  1 -
 11 files changed, 8 insertions(+), 49 deletions(-)

commit e1e05fb027c328ef41be0ba6d99883d2d7983f70
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Tue May 31 15:31:38 2016 +0200

    Remove pygi.h and pygi-private.h

    Instead include things where needed.

    https://bugzilla.gnome.org/show_bug.cgi?id=767084

 gi/Makefile.am                     |  3 +-
 gi/gimodule.c                      | 11 ++++-
 gi/pygboxed.c                      |  1 -
 gi/pygenum.c                       |  2 +-
 gi/pygflags.c                      |  4 +-
 gi/pygi-argument.c                 | 17 ++++++--
 gi/pygi-array.c                    |  3 +-
 gi/pygi-basictype.c                |  2 +-
 gi/pygi-boxed.c                    |  3 +-
 gi/pygi-boxed.h                    |  8 ++++
 gi/pygi-cache.c                    |  2 +
 gi/pygi-ccallback.c                |  2 +-
 gi/pygi-ccallback.h                | 11 +++++
 gi/pygi-closure.c                  |  5 ++-
 gi/pygi-enum-marshal.c             |  3 +-
 gi/pygi-error.c                    |  2 +-
 gi/pygi-hashtable.c                |  2 +-
 gi/pygi-info.c                     |  6 ++-
 gi/pygi-info.h                     | 22 ++++++++++
 gi/pygi-invoke.c                   |  5 +++
 gi/pygi-invoke.h                   |  2 +-
 gi/pygi-list.c                     |  2 +-
 gi/pygi-marshal-cleanup.c          |  8 ++--
 gi/pygi-marshal-cleanup.h          |  4 +-
 gi/pygi-object.c                   |  2 +-
 gi/pygi-property.c                 |  3 +-
 gi/pygi-property.h                 |  2 +-
 gi/pygi-repository.c               |  3 +-
 gi/pygi-repository.h               |  6 +++
 gi/pygi-signal-closure.c           |  4 +-
 gi/pygi-signal-closure.h           |  3 +-
 gi/pygi-source.c                   |  4 +-
 gi/pygi-struct-marshal.c           |  6 ++-
 gi/pygi-struct.c                   |  5 ++-
 gi/pygi-struct.h                   |  6 +++
 gi/pygi-type.c                     |  3 +-
 gi/{pygi-private.h => pygi-util.h} | 47 ++--------------------
 gi/pygi.h                          | 82
 --------------------------------------
 gi/pygobject.c                     |  3 +-
 gi/pygpointer.c                    |  1 -
 40 files changed, 146 insertions(+), 164 deletions(-)

commit c86424c73725610ac2ef832c1fa41a777f9a5efa
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Apr 24 21:27:59 2016 -0700

    configure.ac: post-release version bump to 3.21.1

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit febd211b6628a8f63d92ae011d68b845e9fe6ec8
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Apr 24 21:19:39 2016 -0700

    release 3.21.0

 NEWS | 7 +++++++
 1 file changed, 7 insertions(+)

commit 1bb267f1755b2ec314c751b27931cbe7032f3c36
Author: Dustin Falgout <dustin@falgout.us>
Date:   Sun Mar 20 03:21:02 2016 -0500

    gi: Add require_versions() function

    Adds a new function that accepts a dict of one or more namespace,
    version
    pairs through which it iterates and calls `gi.require_version()`
    for each pair. Also adds a test for the new function.

    https://bugzilla.gnome.org/show_bug.cgi?id=761141

 gi/__init__.py                 | 33 +++++++++++++++++++++++++++++++++
 tests/test_import_machinery.py |  6 ++++++
 2 files changed, 39 insertions(+)

commit b3f897b98c5a2c59ea34a8afcce0448b1ffb0731
Author: Iain Lane <iain@orangesquash.org.uk>
Date:   Thu Mar 24 18:04:40 2016 +0000

    test_gerror_novalue: Don't assign the error to a variable

    Otherwise the build fails with:

      CHECK  Pyflakes examples gi tests pygtkcompat
      tests/test_gobject.py:689: local variable 'error' is assigned to
      but never used

    https://bugzilla.gnome.org/show_bug.cgi?id=764165

 tests/test_gobject.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 6ff29c91dfdbcc3203405da0aca8dbfa318d8b32
Author: Emmanuele Bassi <ebassi@gnome.org>
Date:   Wed Mar 23 13:59:53 2016 +0000

    build: Do not enable code coverage based on lcov

    Code coverage turns on various slow paths and disables
    optimizations. It
    should be, and it usually is, an opt in configuration flag.

    Enabling it should not be conditional on the existence of the lcov
    binary on the system, otherwise anybody building PyGObject from Git on
    any moderately complete development environment will automatically
    enable code coverage even when not wanted.

    https://bugzilla.gnome.org/show_bug.cgi?id=764075

 autogen.sh | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

commit c2a66daf3ac62e3e97f8d7fe16afccf37f413305
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Mar 21 21:00:37 2016 -0700

    configure.ac: post-release version bump to 3.21.0

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ce3034544f126f196cad57485f126f1246cd1acf
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Mar 21 20:34:50 2016 -0700

    release 3.20.0

 NEWS | 2 ++
 1 file changed, 2 insertions(+)

commit eee366401383f92a2b2b233b2cd0db2ad50b6cb2
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Mar 21 20:33:13 2016 -0700

    configure.ac: pre-release version bump to 3.20.0

 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit f4401234cdc9be784eea9347fec349e7cba0a153
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Mar 15 22:56:10 2016 -0700

    release 3.19.92

 NEWS | 2 ++
 1 file changed, 2 insertions(+)

commit 3d8860c2d0a95cff38f7eaa65c38521654a162ae
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Mar 1 22:10:21 2016 -0800

    post-release version bump to 3.19.92

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a4865ef2f8c70b93f84f93236786c65ad5f973af
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Tue Mar 1 21:46:21 2016 -0800

    release 3.19.91

 NEWS | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit cc75f994a07639b9ffcc6afef757768780a076de
Author: Thibault Saunier <tsaunier@gnome.org>
Date:   Fri Feb 5 15:00:10 2016 +0100

    tests: check passing Boxed type in GValue as function parameters

    https://bugzilla.gnome.org/show_bug.cgi?id=761592

 tests/Makefile.am               | 13 +++++++++++--
 tests/gimarshallingtestsextra.c | 37
 +++++++++++++++++++++++++++++++++++++
 tests/gimarshallingtestsextra.h | 26 ++++++++++++++++++++++++++
 tests/test_error.py             |  6 ++++++
 4 files changed, 80 insertions(+), 2 deletions(-)

commit 5f4b08f4e8a98046eab71537c7827edde2ca8742
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Mon Feb 29 22:50:32 2016 -0800

    gerror: Add special case marshaling for boxing GErrors

    Transfer gtype from introspection GError class to Python GError
    implementation.
    Expose the PyGError pointer as an extern so other C files can pick
    this up.
    Add custom to/from GValue marshalers for GError.
    Add tests for both complete and incomplete (no boxed pointer held).

    https://bugzilla.gnome.org/show_bug.cgi?id=761592

 gi/overrides/GLib.py  |  1 +
 gi/pygi-error.c       | 32 +++++++++++++++++++++++++++++++-
 gi/pygi-error.h       |  2 ++
 gi/pygi-value.c       |  1 +
 tests/test_gobject.py | 17 +++++++++++++++++
 5 files changed, 52 insertions(+), 1 deletion(-)

commit cfca1457c39e3c4c7ef97e7b46a73c19e5adf305
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sun Feb 28 01:39:31 2016 -0800

    gerror: Add support for marshaling GError from Python to C

    Refactor pygi_gerror_exception_check() to use a new broken out
    function
    pygi_error_marshal_from_py(). This allows re-use for argument
    marshaling
    of a Python GError to a C GError.
    Remove PYGI_META_ARG_TYPE_CHILD setting for GError out argument
    marshaling.
    This was incorrect since GError exception arguments are not specified
    explicitly and instead uses the "throws" option.

    https://bugzilla.gnome.org/show_bug.cgi?id=685197

 gi/pygi-error.c              | 132
 +++++++++++++++++++++++++++++--------------
 gi/pygi-error.h              |   3 +
 tests/test_overrides_glib.py |  30 ++++++++++
 3 files changed, 123 insertions(+), 42 deletions(-)

commit 2fc1a689a81614649d042965997f4546b0a58ada
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Feb 27 17:21:53 2016 -0800

    gerror: Add "_to_py" suffix to pygi_error_marshal

    This will allow for the a pygi_error_marshal_from_py function.

    https://bugzilla.gnome.org/show_bug.cgi?id=685197

 gi/pygi-error.c | 8 ++++----
 gi/pygi-error.h | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

commit 7e29227b6f58cfcc96118a4af83658ca1a6fa1f4
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Sat Jul 4 22:09:46 2015 +0200

    Some error handling/reporting fixes.

    * Check in pyg_boxed_new() if the passed type is an actual subclass
    * Don't replace existing exceptions in pyg_value_as_pyobject()
    * Print an error in pyg_closure_marshal() in case marshalling
      an argument failed.

    https://bugzilla.gnome.org/show_bug.cgi?id=751956

 gi/pygboxed.c   |  8 +++++++-
 gi/pygi-value.c | 15 ++++++++++-----
 gi/pygtype.c    | 11 ++++++++++-
 3 files changed, 27 insertions(+), 7 deletions(-)

commit 49880800b35029de3731523eede1b3174f10c1db
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Sat Jul 4 21:40:04 2015 +0200

    GVariant: Don't use pyg_boxed_new as GVariant isn't a PyGBoxed but
    a PyGIStruct.

    This only worked because they share the same struct layout.
    This adds a new constructor for creating a new PyGIStruct instance
    from GType.

    https://bugzilla.gnome.org/show_bug.cgi?id=751956

 gi/pygi-struct.c | 32 ++++++++++++++++++++++++++++++++
 gi/pygi-struct.h |  5 +++++
 gi/pygi-value.c  |  3 ++-
 3 files changed, 39 insertions(+), 1 deletion(-)

commit f27b1976ea325fcd55359888401dd08ac8fb074a
Author: Mikhail Fludkov <misha@pexip.com>
Date:   Tue Sep 1 17:54:17 2015 +0200

    pygi-value: special case for NULL GValueArray

    Don't segfault when dealing with GValue of GValueArray type containing
    NULL. Return empty list in this case.

    https://bugzilla.gnome.org/show_bug.cgi?id=754359

 gi/pygi-value.c       | 5 +++--
 tests/test_gobject.py | 6 ++++++
 2 files changed, 9 insertions(+), 2 deletions(-)

commit c8176dfabea694ce738ff4633e7522b0d1fc1c51
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Feb 20 20:42:40 2016 -0800

    post-release version bump to 3.19.91

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d16ae38f0a12653557bdeba17eb155144d91bff4
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Feb 20 19:56:24 2016 -0800

    release 3.19.90

 NEWS | 9 +++++++++
 1 file changed, 9 insertions(+)

commit 0190fb84fc1f88ba4c0623bf1b29fe3ca4f80932
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Feb 20 19:49:31 2016 -0800

    pre-release version bump to 3.19.90

 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 0467808b97f89c5a36c01f5b7cba013acaef6851
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Feb 20 19:40:45 2016 -0800

    tests: Set the active style context state before retrieving values

    compat_test_pygtk.TestGTKCompat.test_style() was giving a warning due
    to set/get state mismatch. Set the current state before getting values
    from the context.

 tests/compat_test_pygtk.py | 1 +
 1 file changed, 1 insertion(+)

commit 8145fa69c8ace9772687f26f782acb5e461776be
Author: Simon Feltman <sfeltman@src.gnome.org>
Date:   Sat Feb 20 17:32:01 2016 -0800

    tests: Fix crash with empty drag source icon names

    Add "_About" argument when testing call to
    drag_source_set_icon_name().
    Add Gtk.STOCK_ABOUT argument when testing call to
    drag_source_set_icon_stock().
    This avoids crashes due to GTK+ drag source attempting to unref a
    NULL pointer.

    https://bugzilla.gnome.org/show_bug.cgi?id=762392

 tests/test_overrides_gtk.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 6a26d3f2b25b3fbbd87def14f1df17b96ed23a0d
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Sun Oct 4 11:18:04 2015 +0200

    Try to import GdkX11 in Gdk overrides

    pygobject will not provide GdkX11 instances until the namespace
    is loaded so try to load it in the overrides.

    This makes Gdk.Display.get_default() return a GdkX11.X11Display
    instead of a dummy Gdk.Display subclass instance.

    https://bugzilla.gnome.org/show_bug.cgi?id=673396

 gi/overrides/Gdk.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 12022437d663f49ba3a2a2f884da30dd5ca08ff6
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Fri Oct 30 13:07:57 2015 +0100

    Fix import warnings pointing to the wrong code with CPython 3.3/3.5

    For making warnings point to the code doing the import, the stack
    frames
    of the import system need to be skipped. The frame count number
    varries
    between CPython versions and in 3.5 all frames of the import
    system are
    skipped for warnings (https://bugs.python.org/issue24305).

    This hardcodes the frame counts for all supported CPython versions
    which fixes the import warning output for CPython 3.3 and 3.5.

    This also fixes/works around a bug in CPython 3 where if a too
    large stacklevel value was passed to warn(), CPython would try to
    interpret a file called "sys" in the same directory of the
    executed script (https://bugs.python.org/issue25493
    and https://bugzilla.gnome.org/show_bug.cgi?id=757184).

