commit 7f678500a9edad6218911dc7d81e0bc057c58326 Author: Christoph Reiter Date: Wed Feb 7 11:35:13 2018 +0100 release NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit 07993bb18195f19a07cdda3ba47b231b02863e2b Author: Christoph Reiter 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Date: Thu Jan 18 08:39:53 2018 +0100 Update NEWS NEWS | 7 +++++++ 1 file changed, 7 insertions(+) commit e5a21f56cd375373741dcb2f2e8eefae349cffbc Author: Christoph Reiter 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 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 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 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 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 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 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 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 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 Date: Mon Dec 11 18:40:47 2017 +0100 release 3.27.1 NEWS | 11 +++++++++++ 1 file changed, 11 insertions(+)