commit 3ba1f36ebd63ce4477fab1c0d1c9d7fc817f19a8
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Mar 27 22:48:17 2018 +0200

    release

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

commit 8eb973ec4cafa6bbedb47e8d12bd02e6ed318273
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Mar 25 19:12:54 2018 +0200

    resulttuple: fix a wrong decref

    We don't get ownership here so don't unref.
    Thist function is only used in the test suite.

 gi/pygi-resulttuple.c     | 2 --
 tests/test_resulttuple.py | 6 ++++--
 2 files changed, 4 insertions(+), 4 deletions(-)

commit 1c962cb74cd99e0169abed45cf813550574a2a80
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Mar 23 07:23:21 2018 +0100

    autotools: define PY_SSIZE_T_CLEAN for the test extension

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

commit 1b072bb45b07bbb461bf9c8318a81a26e0d65a18
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Mar 23 07:07:26 2018 +0100

    setup.py: always define PY_SSIZE_T_CLEAN. Fixes #185

 gi/pyglib-python-compat.h | 6 ++++++
 setup.py                  | 5 +++--
 2 files changed, 9 insertions(+), 2 deletions(-)

commit 997f6d95f3a1d8ce8376eb10e3f2d76d3b5e29d3
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Mar 19 13:52:21 2018 +0100

    properties: fix a crash when setting a str value containing
    surrogates. Fixes #169

    In Python 3 decoding unicode fails if it contains surrogates. Handle
    that case.
    This ususally happens with filenames where undecodable bytes get
    converted to surrogates.

 gi/pygi-value.c          |  4 ++++
 gi/pygobject-object.c    |  4 ++--
 tests/test_properties.py | 12 +++++++++++-
 3 files changed, 17 insertions(+), 3 deletions(-)

commit c9cfde92d7a1eb558c66dc9e8e1959816fcbf0cc
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Mar 18 07:33:19 2018 +0100

    gtk overrides: Fix return type Gtk.TreePath with depth == 0. Fixes
    #143

    compare() also errors out with depth == 0, but str() shouldn't fail
    as it's important for debugging.

 gi/overrides/Gtk.py         | 2 +-
 tests/test_overrides_gtk.py | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

commit c6d57734cf97b7eb7b11b21a9096d70dd1465865
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Mar 18 21:57:07 2018 +0100

    setup.py: build the test extension in a separate build dir. Fixes #181

    The install command just copies the whole build tree as is when
    installing
    which installs the test extension when tests are build before install.

    To avoid that set the build base of the extension to a a subdirectory
    of the build base of the main build base.

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

commit 923bef11d037e82ae0d91cb495a09d09ab93e3ca
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Mar 18 22:28:34 2018 +0100

    setup.py: forward force flag to the test extension build

    backport from master

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

commit 43758746432d5cd59409cd54eb242c8799e249c3
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Mar 17 19:09:19 2018 +0100

    version bump

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

commit ca6918747214484a429c039caed02dd858c307fe
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Mar 17 18:46:05 2018 +0100

    release

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

commit ab470a4f02b294ec8f1f11ea30c9ed4625490a52
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Mar 16 23:48:20 2018 +0100

    tests: fix glib tests with newest glib

    g_filename_from_utf8() was recently fixed to return filenames
    instead of bytes.
    See https://bugzilla.gnome.org/show_bug.cgi?id=756128

 tests/test_glib.py | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

commit 76d4503ff856d7cc6e15d45bb82d79c17bda69f7
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Mar 16 15:17:37 2018 +0100

    setup.py: don't install tests

    Now that the tests directory has a __init__.py and is a Python package
    find_packages() returns it and setup() will install it.

    Instead of using find_packages() hardcode the list of included
    packages.

 setup.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

commit f6c17c998e12a38bbc1c14e43fa969f01fbac46b
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Mar 14 12:31:28 2018 +0100

    pyg_flags_get_value_names: fix a leak

    PyList_Append() is transfer-none for the value

 gi/pygflags.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

commit 9b4a056bbd7003bdb12f3eaf30524caa8747adb1
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Tue Mar 13 19:41:20 2018 +0100

    all around: Fix some assumptions about the size of long

    This was creating various issues on 64-bit Windows, where sizeof(long)
    is usually 4.

 gi/pygi-basictype.c |  6 +++---
 gi/pygi-closure.c   | 10 +++++-----
 gi/pygi-value.c     |  2 +-
 3 files changed, 9 insertions(+), 9 deletions(-)

commit b8bffa925566e561bb6270db5aecbe2b7b70d178
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Tue Mar 13 19:12:23 2018 +0100

    GValue override: chain up __del__

    This was added in d08e244d , which was recently reverted, that
    specific bit was however unrelated and still relevant.

    Fix #176

 gi/overrides/GObject.py | 3 +++
 1 file changed, 3 insertions(+)

commit 48171470feccca4c5595a5f28adf6630fca66515
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Mar 1 16:07:10 2018 +0100

    gitlab-ci: add Python 3.7.0b2 job

 .gitlab-ci.yml           | 5 +++++
 .gitlab-ci/Dockerfile    | 1 +
 .gitlab-ci/run-docker.sh | 2 ++
 3 files changed, 8 insertions(+)

commit a0b633185d1dbb2cfef46f85b6b593c0c296e6f7
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Mar 10 20:03:33 2018 +0100

    marshal-cleanup: save and restore exception around cleanup

    With Python 3.7 some Python API in the cleanup path clears exceptions
    which makes us return NULL in the end without an error set.

    Make if safe to call the cleanup functions with an error set by
    saving and restoring exceptions.

 gi/pygi-marshal-cleanup.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

commit 8eee391694e657a79281707e476b1950a87f4d29
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Mar 11 13:13:30 2018 +0100

    _struct_dealloc: handle being called with an error set

    With Python 3.7 it gets called with an error set and tp_dealloc
    implementations need to handle that.
    Fix by saving and restoring the error.

 gi/pygi-struct.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

commit 7a1b725805b97a037f38c844d107644c780d87b6
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Mar 10 18:54:28 2018 +0100

    IntrospectionModule: __path__ should be List[str] and not str

    This fixes a crash when calling help() on the module which got
    stricter with
    Python 3.7.

    It's a bit questionable why the type has __path__ in the first
    place as
    that's only meant for packages. But let's leave that for now.

 gi/module.py     | 5 +++--
 tests/test_gi.py | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

commit 2386fb7070dcde591313abb10f3e65d7cef7364f
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Mar 10 18:04:14 2018 +0100

    tests_gi: Use capture_output() context manager instead of manually
    mocking stdout

 tests/helper.py  |  2 +-
 tests/test_gi.py | 14 +++-----------
 2 files changed, 4 insertions(+), 12 deletions(-)

commit e0b92c65f4af126f1ba9c924e8e71b958a280a6e
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Mar 12 13:18:34 2018 +0100

    version bump

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

commit dde2f66f9d95f4da81230b11317207a1ac08d84e
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Mar 12 08:36:14 2018 +0100

    release

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

commit 9562b75a825c2a0c223bd89a2859dae5b419647f
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Mar 12 12:39:52 2018 +0100

    tests: fix with stable builds by force enabling PyGIDeprecationWarning

 tests/__init__.py | 5 +++++
 1 file changed, 5 insertions(+)

commit 22b41598d69fce167a0d44f6a9f91034d099f696
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Mar 12 08:35:27 2018 +0100

    Update NEWS

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

commit 02664122c260a31fa9d242d09ddede639fea80bb
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Mar 10 10:41:27 2018 +0100

    GLib.Variant: Fix creation of guchar array from bytes. Fixes #174

    This is some fallout from !4

    Instead of only allowing certain types just make sure that the passed
    value is iterable.

 gi/overrides/GLib.py         |  4 +++-
 tests/test_overrides_glib.py | 16 ++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

commit 92f94761dfed4105e0b3f6d1c490f60ec31816a8
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Mar 1 18:03:26 2018 +0100

    version bump

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

commit 7e571ea62074243eef36110c240e192e5682a687
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Mar 1 17:57:08 2018 +0100

    release

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

commit 1138bc7e0aeb8d4e7354c6cfd5a63edaa724d3fb
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 27 12:46:11 2018 +0100

    setup.py: fix distcheck

 MANIFEST.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 79ee93ea667c7a2cdacf9c770c0e60dc624ced0b
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 23 18:15:55 2018 +0100

    coverage: exclude external headers. See #168

    While we could just pass --no-external we want the coverage of
    the gobject-introspection files.

 .gitlab-ci/coverage-docker.sh | 6 ++++++
 1 file changed, 6 insertions(+)

commit 9ae49b49850dca86566b745966104bdd33914df7
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 23 17:33:55 2018 +0100

    coverage.py: ignore errors

    not sure where that path is comming from, it worked in the MR..

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

commit 2d812a6bc4d0952997a3ed3c63c4b09d8c95c103
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 23 11:02:03 2018 +0100

    gitlab-ci: Add Windows coverage support. See #168

    Use coverage.py and cygwin lcov to generate coverage files.
    In the report generation step fixup the Windows paths in the coverage
    files to match the Linux/Docker ones.

 .gitlab-ci.yml                | 42
 +++++++++++++++++++++++++++---------------
 .gitlab-ci/coverage-docker.sh |  3 +++
 .gitlab-ci/fixup-cov-paths.py | 35 +++++++++++++++++++++++++++++++++++
 .gitlab-ci/test-docker.sh     |  5 +++++
 .gitlab-ci/test-msys2.sh      | 33 +++++++++++++++++++++++++++++++--
 5 files changed, 101 insertions(+), 17 deletions(-)

commit 1534289ce5934b73b5c980f8e246192009337776
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 20 16:38:25 2018 +0100

    gitlab-ci: Add MSYS2 test jobs

    This assumes a gitlab runner with a "win32" tag which has
    MSYS2 installed in the default path and uses the "cmd" shell.

 .gitlab-ci.yml           | 32 +++++++++++++++++++++++++++-----
 .gitlab-ci/test-msys2.sh | 28 ++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+), 5 deletions(-)

commit 20fa66387020877a3ae20a6b48bba52153c7bd6c
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 20 18:17:15 2018 +0100

    tests: skip one more GdkAtom test on Windows

    This has started to crash with newer gtk

 tests/test_atoms.py | 2 ++
 1 file changed, 2 insertions(+)

commit d3cd49ce8777312cbb91b82bd076c0e4b761c848
Merge: 5ec1aea8 aab23dbd
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Feb 18 08:32:22 2018 +0000

    Merge branch 'gilabissue123' into 'master'

    Performance improvements to avoid GIL congestion

    See merge request GNOME/pygobject!13

commit 5ec1aea8ab4599a7a0945bd5754ce79c7c5cbef3
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Feb 17 18:13:47 2018 +0100

    coverage: don't just use the major python version number for coverage
    files names

    all py3 jobs wrote to the same file, oops..

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

commit af7aa11acebd9a34e6aee41dc77c0d7c3000fd47
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Feb 17 15:23:49 2018 +0100

    gitlab-ci: Add coverage reports

    Use gcov/lcov and coverage.py; merge all results and provide
    the final html reports as job artifacts.

 .gitignore                    |  1 +
 .gitlab-ci.yml                | 18 ++++++++++++++++++
 .gitlab-ci/Dockerfile         |  1 +
 .gitlab-ci/coverage-docker.sh | 17 +++++++++++++++++
 .gitlab-ci/test-docker.sh     | 20 ++++++++++++++++----
 setup.cfg                     |  7 +++++++
 6 files changed, 60 insertions(+), 4 deletions(-)

commit 8df9570b7f25ceaaa590c8da33952a7bdeade203
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Fri Feb 16 16:54:06 2018 +0100

    array, list: always run items cleanup funcs

 gi/pygi-array.c | 70
 ++++++++++++++++++++++++++++++++-------------------------
 gi/pygi-list.c  | 37 +++++++++++++++---------------
 2 files changed, 58 insertions(+), 49 deletions(-)

commit 9978b521450d9b2a038d48492550dcab49c7b113
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Fri Feb 16 00:49:25 2018 +0100

    pygi-struct-marshal: perform boxed copy ...

    when the cleanup marshaller will not be called, that is when
    marshalling something that is not actually an argument.

    Fixes #164

 gi/pygi-struct-marshal.c | 48
 ++++++++++++++++++++++++++++++++----------------
 1 file changed, 32 insertions(+), 16 deletions(-)

commit e41dd91e9e62eeaeaa0fee97b50500591a87b249
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Thu Feb 15 23:32:37 2018 +0100

    Revert "Revert "to python struct marshalling: copy boxed during
    cleanup""

    This reverts commit 10c062001ddd948b0a70545cbf613b38ed6fa46c.

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

commit b1d1c8d9d8820fe405bddd8e9dea88b5ec2fcce2
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Thu Feb 15 23:32:20 2018 +0100

    Revert "Revert "to python marshalling: collect cleanup data""

    This reverts commit fa555767464fbe551b14cfbc121febc5290b1371.

 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 26b7fc3fee55870cc944b0f718da8a75c75f4eae
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Fri Feb 16 00:45:40 2018 +0100

    Revert "Revert "pygi-boxed: make in-place copy safer""

    This reverts commit 700c785367975995d24a8ffd00b2aa028ccf77e8.

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

commit d08e244d011121f8ffd5c21437e0f11fe9545bbf
Author: Mathieu Duponchelle <mathieu@centricular.com>
Date:   Thu Feb 15 23:32:08 2018 +0100

    Revert "Revert "Revert "Refactor boxed wrapper memory management
    strategy"""

    This reverts commit a506d5e3c64321c43a4ce7c2a72ca8d36e985999.

 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 c56b4510649dae58519681c1a53aed85d598139e
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 16 17:43:00 2018 +0100

    tests: add tests for boxed in GLists. See !24

 tests/regressextra.c     | 33 +++++++++++++++++++++++++++++++++
 tests/regressextra.h     |  4 ++++
 tests/test_everything.py | 16 ++++++++++++++++
 3 files changed, 53 insertions(+)

commit 9c3cb6b49c33f53d637e80aad68a67e89d0eb944
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 16 10:12:42 2018 +0100

    gitlab-ci: use ccache

 .gitlab-ci.yml           | 9 +++++++++
 .gitlab-ci/Dockerfile    | 3 +++
 .gitlab-ci/run-docker.sh | 6 ++++--
 3 files changed, 16 insertions(+), 2 deletions(-)

commit 91a25c2aa1776e5e5757dc317a798615c31b3854
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 16 09:59:31 2018 +0100

    tests: Add a test for a out transfer-none boxed array

    Makes sure we copy the array items as well.

 tests/regressextra.c     | 18 ++++++++++++++++++
 tests/regressextra.h     |  3 +++
 tests/test_everything.py |  6 ++++++
 3 files changed, 27 insertions(+)

commit e00e38f9c44568f7fab643a069f86c576011ddcc
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 16 08:49:38 2018 +0100

    tests: add a pytest hook for handling unhandled exception in closures

    In PyGObject when an exception is raised in a closure called from
    C then
    the error gets passed to sys.excepthook (on the main thread at least)
    and the error is by default printed to stdout. Since pytest by default
    hides stdout, errors can be easily missed now.

    To make these errors more visible add a test wrapper which checks
    sys.excepthook for unhandled exceptions and reraises them.
    This makes the tests fail and as a bonus also shows the right
    stack trace instead of just the error message.

 tests/Makefile.am      |  1 +
 tests/compathelper.py  |  5 +++++
 tests/conftest.py      | 31 +++++++++++++++++++++++++++++++
 tests/test_glib.py     | 13 +++++++++++++
 tests/test_mainloop.py | 28 ++++++++--------------------
 tests/test_option.py   | 18 +++++++-----------
 6 files changed, 65 insertions(+), 31 deletions(-)

commit aae383cf44ee3eabcc4b4122049ea277524d5001
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 02:15:54 2018 +0100

    version bump

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

commit 9c1d66be67008604206e336a0433c5cdf824b837
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 01:47:12 2018 +0100

    release

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

commit 86fb783d0f00a49ea7e66ad73be7e150eb0162db
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 02:07:13 2018 +0100

    Fix make distcheck

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

commit 618ccf06ad75bc481dec59b7da86a550571968c5
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 01:34:02 2018 +0100

    setup.py: cache pkg-config calls

    This saves 300ms for a noop build_tests command

 setup.py | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

commit ad9fc2d9cd8d9a0f3fd07a46e7056a182f18d399
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 01:29:09 2018 +0100

    gitlab-ci: Install pytest-faulthandler

    This makes pytest print a Python stack trace in case of a crash.

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

commit 0d3fbc2a8d10c9eea4e3eef905d52c946f8ab7e9
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 01:16:51 2018 +0100

    setup.py: set the same env vars for testing as autotools

    Also don't print a Python stack trace of the calling process on
    error, just return the error status.

 setup.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 0fcd57846b0053319dc5a28503d3eab173927fc6
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Wed Feb 14 00:56:47 2018 +0100

    tests: add a test for Gio.DBusNodeInfo.new_for_xml, see #164

    This was fixed by the recent reverts

 tests/test_gdbus.py | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

commit a506d5e3c64321c43a4ce7c2a72ca8d36e985999
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 13 23:26:21 2018 +0100

    Revert "Revert "Refactor boxed wrapper memory management strategy""

    This reverts commit daefdfa3e4dc97b4ae38250358d722f09764cc9b.

 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, 119 insertions(+), 29 deletions(-)

commit 700c785367975995d24a8ffd00b2aa028ccf77e8
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 13 23:26:15 2018 +0100

    Revert "pygi-boxed: make in-place copy safer"

    This reverts commit 9d96df1ea3ad533885fbcae4de693a3cd81e765a.

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

commit fa555767464fbe551b14cfbc121febc5290b1371
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 13 23:26:03 2018 +0100

    Revert "to python marshalling: collect cleanup data"

    This reverts commit 80eab029ce4e181624d7b845a4b517051797080d.

 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, 43 insertions(+), 120 deletions(-)

commit 10c062001ddd948b0a70545cbf613b38ed6fa46c
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Tue Feb 13 23:09:49 2018 +0100

    Revert "to python struct marshalling: copy boxed during cleanup"

    This reverts commit 7ed8191818733b9130bce84f782dc6f8f734abf7.

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

commit e427d1a3a44e882c998543bb2c189700409df873
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Feb 12 20:35:09 2018 +0100

    tests: Fix tests under Wayland. Fixes #163

    These tests try to test Gdk.Atom with the exsting API in libgdk
    but under Wayland they either don't return Gdk.Atom or block.

    Since they are disabled on other platforms just change them to only
    run under X11.

 tests/test_atoms.py | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

commit 3e91df3dca3691635b978d1dc661506213e0efe3
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Mon Feb 12 15:39:41 2018 +0100

    docs: fix build with sphinx 1.7.0

    1.7.0 no longer allows non-class references as param types

 docs/guide/api/signals.rst | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 5a25c98cb6d387791e41c7dc240c55814988519a
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Feb 11 18:08:07 2018 +0100

    tests: Make it possible to use pytest directly

    pytest will just import the files passed to it and try to run tests.
    Since we need to run some setup code convert the tests directory to
    a Python package and do the initialization in __init__.py. This makes
    the init code (env vars, typelib search path, dbus) always run when
    something from the package gets imported.

        python3 setup.py build_tests  # build pygobject and tests
        py.test-3 tests/test_gi.py  # run tests in test_gi.py only

 docs/devguide/building_testing.rst |   6 ++
 setup.py                           |  10 +--
 tests/Makefile.am                  |   8 ++-
 tests/__init__.py                  | 102 ++++++++++++++++++++++++++
 tests/helper.py                    |   4 +-
 tests/runtests.py                  | 143
 +++++++------------------------------
 tests/test_atoms.py                |   4 +-
 tests/test_cairo.py                |   6 +-
 tests/test_docstring.py            |   2 +
 tests/test_error.py                |   6 +-
 tests/test_everything.py           |   6 +-
 tests/test_fields.py               |   2 +
 tests/test_gdbus.py                |   2 +
 tests/test_generictreemodel.py     |   5 +-
 tests/test_gi.py                   |   6 +-
 tests/test_gio.py                  |   4 +-
 tests/test_glib.py                 |   2 +
 tests/test_gobject.py              |   8 +--
 tests/test_gtype.py                |   2 +
 tests/test_import_machinery.py     |   2 +
 tests/test_interface.py            |   4 +-
 tests/test_internal_api.py         |  10 ++-
 tests/test_iochannel.py            |   6 +-
 tests/test_mainloop.py             |   2 +
 tests/test_object_marshaling.py    |   2 +
 tests/test_option.py               |   2 +
 tests/test_ossig.py                |   2 +
 tests/test_overrides_gdk.py        |   4 +-
 tests/test_overrides_glib.py       |   4 +-
 tests/test_overrides_gtk.py        |   4 +-
 tests/test_overrides_pango.py      |   2 +
 tests/test_properties.py           |  10 ++-
 tests/test_pygtkcompat.py          |   4 +-
 tests/test_repository.py           |   8 +--
 tests/test_resulttuple.py          |   2 +
 tests/test_signal.py               |  13 ++--
 tests/test_source.py               |   8 +--
 tests/test_subprocess.py           |   2 +
 tests/test_thread.py               |   5 +-
 tests/test_typeclass.py            |   6 +-
 tests/test_unknown.py              |   5 +-
 tests/testmodule.py                |   2 +
 42 files changed, 244 insertions(+), 193 deletions(-)

commit 21cee6cc4fbc7fb1a28a15840924b0da52b49fca
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sun Feb 11 16:08:18 2018 +0100

    tests: Make patching in pygtkcompat reversible

    Record all the attribute and sys.modules changes and add an API
    for reverting them after tests are completed.

    This allows us to run the pygtkcompat tests in the same test process
    as other tests.

 pygtkcompat/pygtkcompat.py                         | 273
 ++++++++++++---------
 setup.py                                           |   7 -
 tests/Makefile.am                                  |   4 +-
 tests/runtests.py                                  |   2 +-
 .../{compat_test_pygtk.py => test_pygtkcompat.py}  |  96 ++++++--
 5 files changed, 237 insertions(+), 145 deletions(-)

commit 7f5aedb6e1f317b33a96d0c77641b95f182b2a47
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Feb 10 13:31:23 2018 +0100

    version bump

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

commit c65efcb0bb4a73c9fb1ffa10225795adc489a081
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Feb 10 13:22:17 2018 +0100

    release

 NEWS         | 11 +++++++++++
 docs/conf.py |  1 +
 2 files changed, 12 insertions(+)

commit 11de6f55f48447325325ec2f334af5576d12e2ed
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Feb 10 11:37:55 2018 +0100

    tests: switch to pytest as the default test runner. See #153

    The TEST_NAMES env var gets translated to work with the pytest syntax
    (foo.py::class::method).

    Rename one class which triggers a pytest warning because it starts
    with
    "Test" but isn't one.

    Remove erroring out on Python warnings as pytest triggers some
    deprecation warnings by default.

 .gitignore                         |  2 ++
 .gitlab-ci/test-docker.sh          |  2 +-
 docs/devguide/building_testing.rst |  9 +++++++++
 docs/devguide/dev_environ.rst      |  6 ++++--
 tests/Makefile.am                  |  2 +-
 tests/runtests.py                  | 16 +++++++++-------
 tests/test_generictreemodel.py     | 16 ++++++++--------
 7 files changed, 34 insertions(+), 19 deletions(-)

commit 9a9bb732752e7bec42a1c13f080b37536876e3e0
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Sat Feb 10 11:16:49 2018 +0100

    tests: set DBUS_SESSION_BUS_ADDRESS to some invalid value to
    disable dbus

    While keepig it empty works on Linux, on Windows setting an invalid
    value is needed to disable dbus.

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

commit 64b02e3017b50a17a087ee821522a1cb8e066f27
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 9 17:06:52 2018 +0100

    tests: remove locale test for uppercasing C names

    Someone on IRC had problems running the test suite, and that's not
    the first
    time, so remove it for now (added in 63c7f17c2248)

    The locale generation adds extra dependencies and only works on Linux,
    and while the test does something useful it complicates things
    too much.

    We need to find a better way (in Python if possible) to test for
    locale
    dependend upper()/lower().

 MANIFEST.in          |  2 +-
 tests/Makefile.am    |  1 -
 tests/te_ST@nouppera | 50
 --------------------------------------------------
 tests/test_gi.py     | 31 -------------------------------
 4 files changed, 1 insertion(+), 83 deletions(-)

commit d9516e8dc32db9494139a733ae3a535d2f89c6e1
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Fri Feb 9 14:12:20 2018 +0100

    tests: disable dbus tests on Windows/macOS

    dbus-daemon is available in MSYS2 unlike dbus-run-session but the
    tests fail. Disable dbus tests on Windows/macOS to restore the
    old behaviour for now.

 tests/runtests.py | 3 +++
 1 file changed, 3 insertions(+)

commit 1e28b03b1562c030a956ed82337eaacfa38c304e
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Feb 8 17:10:21 2018 +0100

    tests: move dbus session bus handling into runtests.py

    This allows us to remove code duplication in autotools/distutils.

    This also fixes the noisy dbus output during tests because
    dbus-run-session
    forwarded dbus logging output to stderr.

 .gitlab-ci/Dockerfile    |  1 -
 .gitlab-ci/run-docker.sh |  0
 setup.py                 | 14 ++------------
 tests/Makefile.am        | 10 +++-------
 tests/runtests.py        | 27 +++++++++++++++++++++++++--
 5 files changed, 30 insertions(+), 22 deletions(-)

commit 095388a7c83dbffbe042f842789285f63996fc11
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Feb 8 15:38:24 2018 +0100

    gitlab-ci: use pyenv in docker instead of the deadsnakes PPA

    deadsnakes only provides packages for Ubuntu LTS versions and doesn't
    include versions present in that Ubuntu version.
    With Ubuntu zesty this happened to work, but now that that's EOL
    we have to switch to artful and no longer have a Python 3.5 available.

    Instead switch to using pyenv in docker and compiler our own Python
    versions. This should make it easier to swtich distros in the future.

    Also adds a run-docker.sh script which builds the image and
    runs it with the git repo mounted. This should make local testing
    easier in the future.

 .gitlab-ci.yml            | 12 +++++++---
 .gitlab-ci/Dockerfile     | 60
 ++++++++++++++++++++++++++++-------------------
 .gitlab-ci/run-docker.sh  |  7 ++++++
 .gitlab-ci/test-docker.sh | 11 +++++----
 4 files changed, 58 insertions(+), 32 deletions(-)

commit 7bc20fe2d1225bebb2f4ec1faabf6a70e4e5a4e7
Author: Mikhail Fludkov <misha@pexip.com>
Date:   Thu Feb 8 12:49:01 2018 +0100

    tests: Make tests run without Gtk/Gdk installed

    Python evaluates the code inside @unittest.skipIf decorator during
    import time. Because Gtk is not installed it crashes while evaluating
    'Gtk._version' where Gtk=None.

 tests/test_ossig.py         | 10 ++++++---
 tests/test_overrides_gdk.py | 17 +++++++--------
 tests/test_overrides_gtk.py | 50
 +++++++++++++++++++++++----------------------
 3 files changed, 42 insertions(+), 35 deletions(-)

commit d371fd77d33c2987cc450bd68ce4ee4835e09bd8
Author: Christoph Reiter <reiter.christoph@gmail.com>
Date:   Thu Feb 8 09:02:37 2018 +0100

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

    This reverts commit a4a68b3c7a4bb64c71e1bdbe52ede109b6bcd0bb.
