commit 7f678500a9edad6218911dc7d81e0bc057c58326
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 7 11:35:13 2018 +0100

    release

 NEWS | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit 07993bb18195f19a07cdda3ba47b231b02863e2b
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 7 09:41:58 2018 +0100

    docs: add pypi step to maintainer release list

 docs/maintguide.rst | 2 ++
 1 file changed, 2 insertions(+)

commit f7a8711d16de226aec1496c366fba1c6434b4218
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 7 09:36:50 2018 +0100

    docs: getting started: default to Python 3 everywhere

 docs/getting_started.rst | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

commit 1330712bcf8109090bacf0cdfbba0c2a47930ac9
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 7 09:35:08 2018 +0100

    docs: update building/testing with new setup.py features

 docs/devguide/building_testing.rst | 45
 +++++++++++++++++++++-----------------
 1 file changed, 25 insertions(+), 20 deletions(-)

commit e6ffd8f37c83d2627086207192030975dee44bd7
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 7 00:55:54 2018 +0100

    Update NEWS

 NEWS | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

commit e56975aaf9bb976397b5961b7b34adcdd91b5a94
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 6 23:04:18 2018 +0100

    gitlab-ci: adjust PKG_CONFIG_PATH for pycairo

    pycairo git now installs things into $prefix/lib/pkgconfig

 .gitlab-ci/test-docker.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 4b315835f7006655fe9fa23c02ec6096478114e5
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 6 18:32:13 2018 +0100

    setup.py: use dbus-run-session for tests if available

    Like we do with "make check"

 setup.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

commit e36797f6ea971bffe5cd55065e43e233644c3e0a
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 6 18:16:58 2018 +0100

    setup.py: remove wrong comment about share lib extenions in distutils

    It just happened to work with MinGW Python3 as that is patched to use
    .dll for Python extenions by default. Forcing a different extension
    here is needed as distutils is targeted at building extensions and
    not shared libs.

 setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 05159327eb70a75bc876a2355f5f31c6d424c1d5
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 6 18:15:05 2018 +0100

    build: remove libdir from the .pc file

    It's unused afaics and in the distutils case we can't replicated
    what autotools does, so better remove it.

 pygobject-3.0.pc.in | 1 -
 setup.py            | 1 -
 2 files changed, 2 deletions(-)

commit 1de81a939711b9c2edb915b8bd9855ef9db12f02
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 6 18:14:08 2018 +0100

    setup.py: install .pc file into libdir

    To match what the autotools build does.

 setup.py | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

commit 32771e7509a266d5cafbfb0965b018ad8c87c530
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 6 00:16:57 2018 +0100

    tests: skip some more tests on macOS

    I haven't looked into why, but my hope is that this makes tests
    pass on travis-ci, so we have a starting point and can at least
    catch regression in an automated fashion.

 tests/test_glib.py          | 1 +
 tests/test_overrides_gtk.py | 1 +
 2 files changed, 2 insertions(+)

commit 3d4bc64461c7c59f5e4aaabe7f2752d6ece83ed0
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Feb 5 22:55:04 2018 +0100

    setup.py: convince distutils to build dylibs on macOS

    This makes the "build_tests" command work

 setup.py | 7 +++++++
 1 file changed, 7 insertions(+)

commit a153be8a6d79f52f1a45e2241e1fca5bd0aba6ea
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Feb 5 10:49:55 2018 +0100

    setup.py: rework pycairo header lookup and use new pycairo API when
    available. See #150

    pycairo git/next version now has a get_include() function which
    gives us the
    include path matching the Python module in all cases.

    Rework the lookup code to try that API if possible and fall back to
    the old
    way. Also add logging everywhere so it's easier to debug if there
    is still
    something wrong.

 setup.py | 132
 ++++++++++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 88 insertions(+), 44 deletions(-)

commit 9a3958d30f8eeaf3cf5ad03c30a1915683ce4e6c
Merge: 8811bfc6 a4a68b3c
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Feb 1 08:24:50 2018 +0000

    Merge branch 'dont-copy-unowned-boxed' into 'master'

    to-py-struct: don't copy the boxed if we are the sole owner of
    the wrapper

    See merge request GNOME/pygobject!14

commit a4a68b3c7a4bb64c71e1bdbe52ede109b6bcd0bb
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Jan 30 16:39:18 2018 +0100

    to-py-struct: don't copy the boxed if we are the sole owner of
    the wrapper

    In commit 7ed8191818733b9130bce84f78 things were changed to copy the
    wrapped boxed after the Python function returned. In case the wrapper
    is only used during the call there is no need to copy the boxed
    as the wrapper will be freed anyway.

    Add a special case and don't copy the boxed in case the refcount at
    cleanup is only 1. This should speed up the common case.

    thanks to @mathieudu for suggesting this

 gi/pygi-struct-marshal.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

commit 8811bfc695a8513e49cfc8ba1e304a3ed0814fa9
Merge: 0dca3f4f 1fbf74eb
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Jan 30 14:46:40 2018 +0000

    Merge branch 'property_fix' into 'master'

    gobjectmodule: do not clear floating flag in set_/get_property

    See merge request GNOME/pygobject!8

commit 0dca3f4f577c540d8e09097b6e414708c8d54108
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Jan 30 14:05:24 2018 +0100

    setup.py: test: also run compat_test_pygtk tests

 setup.py | 7 +++++++
 1 file changed, 7 insertions(+)

commit 94904a17fb65b5174aca58c9e8ed6ebd50bc6cb3
Merge: 1ec8d58e fd9e24a7
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Jan 29 16:26:11 2018 +0000

    Merge branch 'gitlabissue158' into 'master'

    pygobject-object: fix memory corruption around list of closures

    See merge request GNOME/pygobject!12

commit fd9e24a73acde7313fbf96c946f4ce8dad130b33
Author: Mikhail Fludkov <fludkov.me@gmail.com>
Date:   Mon Jan 29 14:23:37 2018 +0100

    pygobject-object: fix memory corruption around list of closures

    https://gitlab.gnome.org/GNOME/pygobject/issues/158

    The memory corruption occurs because of the race while accessing
    PyGObjectData->closures list.

    Protect PyGObjectData->closures by GIL in pygobject_unwatch_closure.
    Despite the fact that we don't call any Python API in the function. We
    use
    GIL to be sure that PyGObjectData->closures list stays intact while
    GC iterating the list inside pygobject_traverse. Otherwise we can
    segfault while trying to call 'visit' function on an object that
    was just freed in pygobject_unwatch_closure.

 gi/pygobject-object.c |  5 +++++
 tests/test_signal.py  | 50
 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+)

commit 1ec8d58e879a3802f54190be3cdc23bd976ca01f
Merge: 8c8dd210 7ed81918
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Jan 29 11:40:40 2018 +0000

    Merge branch 'fix_boxed_copies' into 'master'

    Fix boxed copies

    See merge request GNOME/pygobject!10

commit 8c8dd210f7cb2001144dc00ab6adde9e840e5dcf
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Jan 25 17:13:15 2018 +0100

    setup.py: set zip_safe=False

    We install .h/.pc files now and zipping them could be problematic,
    so better don't allow it.

 setup.py | 1 +
 1 file changed, 1 insertion(+)

commit 06f981d83bb6f4b7d6043e9ee04277fcc2631d91
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Jan 25 16:33:29 2018 +0100

    setup.py: Install the pkg-config file

    Skip installation when a wheel is built as it doesn't allow including
    absolute paths and the .pc does.

    Remove LIBFFI_PC as it's always the same.

 configure.ac        |  2 --
 pygobject-3.0.pc.in |  2 +-
 setup.py            | 85
 +++++++++++++++++++++++++++++++++++++++++++++++++----
 3 files changed, 80 insertions(+), 9 deletions(-)

commit db78f98b0133102d77111c595df59f930e9b1c63
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Jan 25 15:57:38 2018 +0100

    setup.py: Install the header file

 setup.py | 3 +++
 1 file changed, 3 insertions(+)

commit 200a9c940d9bf5b0104cedc96c94c55867aac440
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Jan 25 15:42:04 2018 +0100

    setup.py: Add logging for pycairo lookup and fail early if the header
    isn't found. See #150

    Log the pycairo module we find and the include path we deduce
    from that.
    Also check that the directory actually includes the right header file
    instead of letting the compiler fail later on.

    This will hopefully make it more clear why installing through pip
    isn't working
    in some cases (see #150 for some reports)

 setup.py | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

commit 1fbf74eb06bbe2868fd40ea9f3fc1addc27e4bc3
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Sat Jan 20 04:44:46 2018 +0100

    gobjectmodule: do not clear floating flag in set_/get_property

 gi/gobjectmodule.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

commit f2100902c6fdfd6a3daaab39d3325ffc9ada9a7d
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Sun Jan 21 19:17:10 2018 +0100

    gi/types: make it possible to resolve ambiguous vmethod names

    Related to https://gitlab.gnome.org/GNOME/pygobject/issues/105,
    but the method exposed to resolve the ambiguities does not
    use a decorator, as a decorator cannot rename the function it
    wraps, which means that users will have to provide different names
    if they want to implement ambiguous methods from multiple base
    classes.

    Instead, ambiguities can be resolved by implementing methods named
    do_$namespaced_base_class_name_$vfunc_name, eg:

    do_gst_base_src_query

 gi/types.py | 50 ++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 36 insertions(+), 14 deletions(-)

commit 7ed8191818733b9130bce84f782dc6f8f734abf7
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Tue Jan 23 15:58:38 2018 +0100

    to python struct marshalling: copy boxed during cleanup

    If the boxed was passed with transfer nothing, we need to
    make a copy of it in the boxed wrapper, this in order
    to have a valid reference, but still let closures modify
    the original reference while it is valid (during the closure)

    This fixes an expected failure in the tests, that was added
    by https://bugzilla.gnome.org/show_bug.cgi?id=722899, first fixed
    by https://bugzilla.gnome.org/show_bug.cgi?id=726999 and broken
    in the preceding commits.

 gi/pygi-struct-marshal.c | 34 +++++++++++++++++++++++++++-------
 tests/test_gi.py         |  1 -
 2 files changed, 27 insertions(+), 8 deletions(-)

commit 80eab029ce4e181624d7b845a4b517051797080d
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Tue Jan 23 15:57:04 2018 +0100

    to python marshalling: collect cleanup data

    Similar to what is done for marshalling from python, we
    collect cleanup data that will then be passed on to the
    cleanup function.

 gi/pygi-array.c               | 24 ++++++++++++++++++------
 gi/pygi-basictype.c           |  8 +++++---
 gi/pygi-basictype.h           |  3 ++-
 gi/pygi-cache.h               | 13 ++++++++++---
 gi/pygi-closure.c             |  9 +++++++--
 gi/pygi-enum-marshal.c        |  6 ++++--
 gi/pygi-error.c               |  3 ++-
 gi/pygi-hashtable.c           | 13 +++++++++----
 gi/pygi-invoke-state-struct.h |  3 +++
 gi/pygi-invoke.c              | 17 +++++++++++++----
 gi/pygi-list.c                | 38 +++++++++++++++++++++++++++++++-------
 gi/pygi-marshal-cleanup.c     | 13 ++++++++-----
 gi/pygi-object.c              |  8 +++++---
 gi/pygi-struct-marshal.c      |  5 +++--
 14 files changed, 120 insertions(+), 43 deletions(-)

commit 9d96df1ea3ad533885fbcae4de693a3cd81e765a
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Tue Jan 23 14:15:19 2018 +0100

    pygi-boxed: make in-place copy safer

    Making sure we don't attempt to g_boxed_copy a NULL pointer,
    as this is explicitly disallowed, and setting slice-allocated
    to FALSE once g_slice_free has been called.

 gi/pygi-boxed.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit daefdfa3e4dc97b4ae38250358d722f09764cc9b
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Sun Jan 21 19:23:19 2018 +0100

    Revert "Refactor boxed wrapper memory management strategy"

    This reverts commit 85175047e66dfc0c0263eac91d8056a95d0a60a0.

 gi/gimodule.c            |  6 +---
 gi/overrides/GLib.py     |  4 +++
 gi/overrides/GObject.py  |  3 --
 gi/pygi-boxed.c          | 32 +++++---------------
 gi/pygi-boxed.h          |  4 +--
 gi/pygi-property.c       |  6 +++-
 gi/pygi-source.c         |  6 ++--
 gi/pygi-struct-marshal.c | 78
 ++++--------------------------------------------
 tests/test_gi.py         |  1 +
 tests/test_source.py     |  8 ++---
 10 files changed, 29 insertions(+), 119 deletions(-)

commit b0fbb13783a2ece048a812b233e1fad15c5b8a31
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Jan 23 00:27:32 2018 +0100

    setup.py: default to Python 3

    autotools defaults to Python 3 as well, so do the same for
    distutils.

 setup.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit f59ba1ae65876df786458f785558f96d8b400c9a
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Jan 22 23:09:10 2018 +0100

    setup.py: Make the test command work under MSYS2

    gobject-introspection requires an import lib (.dll.a) on Windows,
    so build that as well.

    Disable the dbus tests until we have a temp bus like with autotools.
    Unset MSYSTEM to disable the os.sep hackery.

    This hit a bug in GI for the mingw+no-libtool case, see
    https://bugzilla.gnome.org/show_bug.cgi?id=791902
    The fix has been applied to MSYS2 in the meantime, see
    https://github.com/Alexpux/MINGW-packages/pull/3308

 .gitignore |  2 ++
 setup.py   | 57 +++++++++++++++++++++++++++++++++++++++++++--------------
 2 files changed, 45 insertions(+), 14 deletions(-)

commit 89d66dd0aa48aaef0a70aba8a17234bc188ef609
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Jan 21 15:32:26 2018 +0100

    setup.py: add a "quality" command

    This just calls flake8 internally

 setup.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

commit efb19909ebf15c8bdbd0b4acfe0046a512ba3b82
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Jan 20 12:22:41 2018 +0100

    gitlab-ci: switch to a non-srcdir build

 .gitlab-ci/test-docker.sh | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

commit 722ef028739b1e3e585f49418a98efa98834bc02
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Jan 19 20:34:04 2018 +0100

    autotools: use flake8 instead of pep8/pyflakes

    flake8 uses pep8/pycodestyle/pyflakes internally, so there should not
    by any difference.

    The nice thing about it is that we can store the configuration in
    setup.cfg and linting comes down to just executing "flake8".
    It also allows to ignore warnings with inline comments, so that
    when avoiding a warning isn't possible it doesn't need to be disabled
    for the whole codebase.

 .gitlab-ci/test-docker.sh          |  2 +-
 MANIFEST.in                        |  1 +
 Makefile.am                        | 19 +++----------------
 docs/devguide/building_testing.rst |  2 +-
 setup.cfg                          |  3 +++
 5 files changed, 9 insertions(+), 18 deletions(-)

commit 162b6ab75d3c3d1717245f5957433b8cf400b17a
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Jan 19 20:08:31 2018 +0100

    gitlab-ci: Install pep8 package, "make check.quality" requires it

    While pep8 is replaced by pycodestyle, the "make check.quality"
    command still uses pep8. Install it for now and fix some warnings
    which slipped through due to pep8 not running.

 .gitlab-ci/test-docker.sh    | 2 +-
 gi/overrides/GLib.py         | 5 +++--
 tests/test_overrides_glib.py | 1 -
 3 files changed, 4 insertions(+), 4 deletions(-)

commit c365cc9c14a001dcbe294375d322a02401a1814d
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Jan 19 15:12:22 2018 +0100

    Update NEWS

    List the authors like before and link them to the gitlab user profile.

 NEWS         | 7 +++++--
 docs/conf.py | 1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

commit 2ccef77f240149891fe9e8f557c7afc951a91839
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Jan 18 17:08:26 2018 +0100

    setup.py: add a "test" command which is equal to "make check"
    with autotools

    Adds a "build_tests" command which builds all resources required
    for testing.
    It has some simple dependency awareness and only rebuilds if any of
    the direct
    sources have changed. Passing -f/--force will force a rebuild.

    Adds a new "test" command which builds the main extension module in
    the source
    directory, runs "build_tests" and finally runs all tests.

    Extends the "distcheck" command to run the tests after extracting
    the source
    distribution and run the distcheck command in the gitlab CI script.

    Only tested on Linux.

 .gitlab-ci/test-docker.sh          |   3 +
 docs/devguide/building_testing.rst |  28 ++--
 setup.py                           | 336
 +++++++++++++++++++++++++++++++------
 tests/runtests.py                  |   1 +
 4 files changed, 305 insertions(+), 63 deletions(-)

commit 812cdbfec0c8c9866c339a5eb01268672514d447
Author: Alberto Ruiz <aruiz@gnome.org>
Date:   Thu Jan 18 18:29:33 2018 +0100

    GVariant add support to maybe types

    While adding support to maybe types I realized that the GVariant
    override was replicating a lot of logic from GVariant to parse
    format strings by itself. This patch simplifies the creation of
    GVariants from Python types and relies on GVariantType to interpret
    the format string and walk through its items.

    This patch also expands test coverage for maybe types.

 gi/overrides/GLib.py         | 164
 ++++++++++++-------------------------------
 tests/test_overrides_glib.py |  49 ++++++++++---
 2 files changed, 86 insertions(+), 127 deletions(-)

commit 54059b93a5559a4ccf28fa8014cacabbcf140902
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Jan 18 08:39:53 2018 +0100

    Update NEWS

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

commit e5a21f56cd375373741dcb2f2e8eefae349cffbc
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Jan 15 20:44:27 2018 +0100

    overrides: Fix Gtk.Adjustment.__init__ overrides not setting "value"
    sometimes. Fixes #151

    Gtk.Adjustment allows passing positional arguments to __init__
    which get
    translated to a dict for passing to GObject.Object.__init__. In case
    of the
    first argument "value", if "value" is passed before the upper and
    lower bound to Object.__init__ it will be set to 0 instead.

    In Python 2 this happened to work (at least on my machine) because
    "value" got placed after the bounds (in terms of iteration order)
    in the final dict value passed to Object.__init__.

    To work around this, set "value" again after __init__().
    A similar work around already exists when "value" is passed as
    a kwarg.

 gi/overrides/Gtk.py         | 2 ++
 tests/test_overrides_gtk.py | 6 ++++++
 2 files changed, 8 insertions(+)

commit 5cb3d7af47310d0b6174811d0d298e7d1869624c
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Jan 15 18:02:39 2018 +0100

    Update MANIFEST.in to include the CI scripts and config files

    This fixes "setup.py distcheck", which makes sure all files in git end
    up in the sdist.

 MANIFEST.in | 2 ++
 1 file changed, 2 insertions(+)

commit 74ad29c908447a4054dbd3427a09a1d44ff00f6d
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Jan 12 09:49:36 2018 +0100

    docs: Add Anaconda to the list of software that is using PyGObject

    https://fedoraproject.org/wiki/Anaconda

 docs/index.rst | 1 +
 1 file changed, 1 insertion(+)

commit 9fe7eb528c711e56ee58ce3b8a4d7b4270708d40
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Jan 12 09:42:49 2018 +0100

    docs: Add custom roles for linking to gitlab issues and merge requests

    This allows one to use :issue:`42` or :mr:`42` in the documentation
    and the NEWS file and will result in links pointing to the
    specified issue/merge request.

 docs/conf.py | 3 +++
 1 file changed, 3 insertions(+)

commit 91a1ec0ef6e3cbfb6c83ae8e17564733c8e840f6
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Wed Jan 10 18:17:56 2018 +0100

    docs: Update for the git repo move from git.gnome.org to
    gitlab.gnome.org

    Changes all the links to point to the gitlab instance.

    Adds the gitlab setup to the sphinx theme configuration, so the theme
    can show "Edit on GitLab" links on each page.

    Create a new page pointing to the git report and bug tracker.
    Someone on IRC mentioned that this info is hard to find, so try
    to make
    it more proiminent.

 docs/bugs_repo.rst            | 31 +++++++++++++++++++++++++++++++
 docs/changelog.rst            |  3 ++-
 docs/conf.py                  |  6 ++++++
 docs/devguide/dev_environ.rst |  4 ++--
 docs/devguide/overview.rst    | 24 ++++--------------------
 docs/guide/porting.rst        |  2 +-
 docs/index.rst                |  1 +
 7 files changed, 47 insertions(+), 24 deletions(-)

commit adf5e51ccf9d9dbf938c0da496e0d4d81d3284f6
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Dec 22 16:34:53 2017 +0100

    Add gitlab CI tests

    Adds a Dockerfile which is available on the docker hub
    and gets used by the gitlab test runner.

    The tests get executed in an Ubuntu 17.04 image for various Python
    versions and consist of building, testing, code quality testing and
    documentation build testing.

 .gitlab-ci.yml            | 22 ++++++++++++++++++++++
 .gitlab-ci/Dockerfile     | 32 ++++++++++++++++++++++++++++++++
 .gitlab-ci/README.rst     |  1 +
 .gitlab-ci/test-docker.sh | 30 ++++++++++++++++++++++++++++++
 4 files changed, 85 insertions(+)

commit 661e64ce6091724b86a934268daa2c80bda46eb5
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Thu Dec 21 12:33:07 2017 +0100

    docs: Include NEWS entries for releases not made on the master branch

    So that every release is visible in the online documentation.
    The list is sorted by release date.

 NEWS               | 335
 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 docs/changelog.rst |   3 +-
 2 files changed, 337 insertions(+), 1 deletion(-)

commit a109b4c96537e8ba3062a56699f3aefc63c82d6d
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Wed Dec 20 15:59:05 2017 +0100

    docs: convert NEWS file to reST and link bugs

    Looks nicer in the online docs and makes it easier to look
    up bugs and link to specific releases.

    Rename the custom reST role for bugs from gnomebug to bzbug.
    With the upcoming move to gitlab that makes it more clear that those
    are referencing bugzilla.

    Adjust the "make release-news" target to output something similar
    to the new format to make converting to reST easier.

    Update the maintainer release todo list to state that the changelog
    should be copied from stable branches to master. It would be
    nice if the NEWS file in master, which gets exposed on readthedocs,
    would contain all the information available.

 Makefile.am                           |    4 +-
 NEWS                                  | 5171
 +++++++++++++++++----------------
 docs/Makefile                         |    2 +-
 docs/changelog.rst                    |    1 -
 docs/conf.py                          |    2 +-
 docs/devguide/override_guidelines.rst |   14 +-
 docs/maintguide.rst                   |    2 +
 7 files changed, 2712 insertions(+), 2484 deletions(-)

commit df77beb730c336e5fdc87f4225af0842edfbe56a
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Dec 11 18:50:22 2017 +0100

    version bump

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

commit 22ef18884d1c7cb5b9ba68ef78489bb779a347b3
Author: Christoph Reiter <creiter@src.gnome.org>
Date:   Mon Dec 11 18:40:47 2017 +0100

    release 3.27.1

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