commit 537eb30d0479588053cde1336e1a93c1d66b7493 Author: Jonas Danielsson Date: Mon Feb 6 19:06:53 2017 +0100 Release 3.23.90 M NEWS M configure.ac commit 712def9f7d220e2fd6bba99665abe3c8de961e14 Author: Philip Withnall Date: Wed Jan 25 14:26:50 2017 +0000 docs: Ignore geocode-enum-types.h in the documentation It’s a generated file and there’s nothing documented in there, so it results in an empty page in the documentation. https://bugzilla.gnome.org/show_bug.cgi?id=777745 M docs/Makefile.am commit 618b8c228c695cfea7d9b7b977ad2996ea2eeae1 Author: Philip Withnall Date: Wed Jan 25 14:18:54 2017 +0000 docs: Document some GEOCODE_TYPE_* macros Normally these don’t need to be documented, but gtk-doc wants documentation comments for these ones for some reason. This is probably a bug in how gtk-doc detects whether a symbol is interesting (potentially due to use of G_DECLARE_[DERIVABLE|FINAL]_TYPE?). Once it’s fixed in gtk-doc upstream, we can remove these documentation comments. https://bugzilla.gnome.org/show_bug.cgi?id=777745 M geocode-glib/geocode-backend.h M geocode-glib/geocode-mock-backend.h M geocode-glib/geocode-nominatim.h commit 7aaf923b9814d02d11b3b91a7d6d8a2bca910472 Author: Philip Withnall Date: Wed Jan 25 14:18:30 2017 +0000 docs: Add a section overview for geocode-nominatim gtk-doc’s checks were fretting about it being missing. https://bugzilla.gnome.org/show_bug.cgi?id=777745 M geocode-glib/geocode-nominatim.c commit d02f56cdea65d7d7790a83c2c0cf31563e7a7879 Author: Philip Withnall Date: Wed Jan 25 14:17:47 2017 +0000 docs: Change UNRELEASED ‘Since’ tags to 3.23.1 for the next release https://bugzilla.gnome.org/show_bug.cgi?id=777745 M geocode-glib/geocode-bounding-box.c M geocode-glib/geocode-location.c M geocode-glib/geocode-mock-backend.c M geocode-glib/geocode-mock-backend.h M geocode-glib/geocode-nominatim.c M geocode-glib/geocode-place.c commit 0cb8aafc9548fb066b8632dbdb34f377016424f6 Author: Philip Withnall Date: Wed Jan 25 14:17:06 2017 +0000 docs: Add missing XML files to the top-level documentation file These were missed out when added to the documentation build earlier. https://bugzilla.gnome.org/show_bug.cgi?id=777745 M docs/geocode-glib-docs.xml commit 305e168ba950b8d8509006224f0cddb383da514a Author: Philip Withnall Date: Wed Jan 25 14:05:00 2017 +0000 build: Drop Makefile.decl in favour of glib-tap.mk We use glib-tap.mk for testing now; Makefile.decl is deprecated and was broken (`make test` did not work). It was also breaking `make distcheck`. https://bugzilla.gnome.org/show_bug.cgi?id=777745 D Makefile.decl M geocode-glib/Makefile.am commit 2d2c6466a3ed5d1e9932fb939fb9e31bb9403c91 Author: Philip Withnall Date: Wed Jan 25 13:48:29 2017 +0000 build: Port to using AX_GENERATE_CHANGELOG for the ChangeLog This fixes `make dist` with builddir ≠ srcdir. https://bugzilla.gnome.org/show_bug.cgi?id=777744 A ChangeLog M Makefile.am M configure.ac commit 7b1621652eabc87cae7a01077d5623772ee1c0f5 Author: Philip Withnall Date: Thu Nov 17 16:55:30 2016 +0000 backend: Add introductory docs for GeocodeBackend Add a longer introduction section explaining why backends exist, and what backends do exist. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-backend.c M geocode-glib/geocode-forward.c M geocode-glib/geocode-reverse.c commit 15ba67ce07ca4170a19929ef5fce7bb9cb7016e3 Author: Philip Withnall Date: Mon Nov 14 15:43:55 2016 +0000 tests: Add tests for GeocodeMockBackend https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/tests/Makefile.am A geocode-glib/tests/mock-backend.c commit 1a52772e83035432e7976d5d70546af9893e1e21 Author: Philip Withnall Date: Wed Nov 9 14:58:28 2016 +0000 mock-backend: Add a mock backed implementation This is an implementation of GeocodeBackend which returns results from an in-memory map of parameters to result sets, for both forward and reverse queries. That map is set up using API exposed by the GeocodeMockBackend — so a unit test harness for an application or library which uses geocode-glib can create a GeocodeMockBackend, set up some expected queries in it, then test the application or library using the mock GeocodeBackend instance. This allows, for example, unit tests to be written which do not require internet access, which is useful for many build and CI machines. Secondly, it allows unit tests to reliably test the error paths in an application or library’s code, as the map of queries can include error values. This allows testing an application’s handling of network timeouts, for example, which is otherwise tricky to set up (it requires a network namespace and a mock server). The GeocodeMockBackend is public API. Unit tests for it will be added in a follow-up commit. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M docs/geocode-glib-docs.xml M geocode-glib/Makefile.am M geocode-glib/geocode-glib.h M geocode-glib/geocode-glib.symbols A geocode-glib/geocode-mock-backend.c A geocode-glib/geocode-mock-backend.h commit a05220e53672e75c853727cae29c0ff027e14805 Author: Philip Withnall Date: Mon Nov 14 15:46:00 2016 +0000 place: Add equality method Add a method for checking that two #GeocodePlace instances are equal. This will be used in upcoming commits. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-glib.symbols M geocode-glib/geocode-place.c M geocode-glib/geocode-place.h commit 473ffcb22c2f9851b64f2b50a7105f249dc7ed4e Author: Philip Withnall Date: Mon Nov 14 15:45:17 2016 +0000 location: Add equality method Add a method for checking that two #GeocodeLocation instances are equal. This will be used in upcoming commits. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-glib.symbols M geocode-glib/geocode-location.c M geocode-glib/geocode-location.h commit 9eba9f7ffcabb5d00cf015d532a0f74107ffbeae Author: Philip Withnall Date: Mon Nov 14 15:44:28 2016 +0000 bounding-box: Add equality method Add a method for checking that two #GeocodeBoundingBox instances are equal. This will be used in upcoming commits. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-bounding-box.c M geocode-glib/geocode-bounding-box.h M geocode-glib/geocode-glib.symbols commit c1042732b927753f6b26ca72bbde3656b860fccd Author: Philip Withnall Date: Thu Nov 17 17:08:42 2016 +0000 reverse: Fix type of lat/lon parameters to backend reverse query method The backend methods are documented as taking parameters which follow the Telepathy Location mapping (https://telepathy.freedesktop.org/spec/Connection_Interface_Location.html#Mapping:Location), or alternatively XEP-0080. Both of these specify that the ‘lat’ and ‘lon’ parameters are numeric, not numeric strings. Since the GeocodeBackend interface has not been released yet, fix the implementation to use a GValue holding a gdouble, rather than a GValue holding a string representation of a double. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-nominatim.c M geocode-glib/geocode-reverse.c commit 7ec672c613d9c6f757732ceabb621ef340372f5a Author: Philip Withnall Date: Wed Nov 16 17:08:46 2016 +0000 docs: Clarify error returns from GeocodeBackend These are a bit inconsistent, especially in the case of returning no results (which I would expect to return an empty result list, rather than an error), but are what the Nominatim code has always done, so we have to keep that API for backwards compatibility. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-backend.c M geocode-glib/geocode-forward.c M geocode-glib/geocode-reverse.c commit 2a1052201f9b04bcea41e2936dae9fe2a30b05d2 Author: Philip Withnall Date: Thu Nov 17 16:57:27 2016 +0000 forward: Restrict answer count to be positive Require it to be a positive integer. This is technically an API break, but any code which used a non-positive integer before would not have worked anyway. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/geocode-forward.c commit 2c131450eb0343581ee80df2df5a4f89f158b6d0 Author: Philip Withnall Date: Mon Nov 14 15:43:19 2016 +0000 tests: Drop unnecessary g_type_init() call We now depend on a more recent version of GLib than the one which deprecated it, so we can drop the call entirely. https://bugzilla.gnome.org/show_bug.cgi?id=774631 M geocode-glib/tests/geocode-glib.c commit 6ba0e38fd1987be0de8432afd93b9a5c1f487b63 Author: Philip Withnall Date: Wed Jan 18 14:05:15 2017 +0000 build: Use a minimum gettext requirement rather than an exact one In configure.ac, specify the minimum gettext version we require, rather than the exact one. This fixes a situation where the autoconf macros used for gettext will be the latest available on the system (for example, 0.19); but the copied-in Makefile.in.in will be for the exact version specified in configure.ac (in this case, 0.18). In that situation, the gettext build rules will error out at `make` time with the message: *** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version 0.18 but the autoconf macros are from gettext version 0.19 Avoid that by specifying a minimum version dependency rather than an exact one. This should not cause problems as we haven’t committed any generated or external gettext files into git, so each developer will end up regenerating the build system for their system’s version of gettext, as expected. See the subsection of https://www.gnu.org/software/gettext/manual/html_node/Version-Control-Issues.html for more information. Note that autoreconf currently doesn’t recognise AM_GNU_GETTEXT_REQUIRE_VERSION, so we must continue also using AM_GNU_GETTEXT_VERSION. autopoint will ignore the latter if the former is present. See https://lists.gnu.org/archive/html/autoconf-patches/2015-10/msg00000.html. This bumps our gettext dependency to 0.19.6, which is when AM_GNU_GETTEXT_REQUIRE_VERSION was introduced. https://bugzilla.gnome.org/show_bug.cgi?id=777430 M configure.ac commit f4f94a6f89c31fa780c8f8c77d1c4d88a8061e95 Author: Philip Withnall Date: Wed Jan 18 14:04:45 2017 +0000 build: Drop unnecessary mention of intltool in MAINTAINERCLEANFILES We don’t use intltool any more, so there should be no need to clean this file. https://bugzilla.gnome.org/show_bug.cgi?id=777430 M Makefile.am commit 8db590b5577703c95dc970615ae702b38763d830 Author: Philip Withnall Date: Tue Jan 17 17:00:28 2017 +0000 geocode-nominatim: Add missing private struct getters M geocode-glib/geocode-nominatim.c commit 9acd6a0fa1051d97e2d8d010e4d41beca86875c9 Author: Philip Withnall Date: Tue Jan 17 17:00:13 2017 +0000 geocode-glib: Fix const-correctness issues with user-agent handling M geocode-glib/geocode-glib.c commit 0dfe4a20cf1d0606abdc8d38ce1ef98ebe9d7bcd Author: Philip Withnall Date: Fri Oct 14 12:48:31 2016 +0100 build: Clean m4 directory on maintainer-clean It should be deleted then. https://bugzilla.gnome.org/show_bug.cgi?id=772928 M Makefile.am commit d6fc128646472ad5f503fdf7339eca41408b1366 Author: Philip Withnall Date: Tue Jan 17 10:41:06 2017 +0000 build: Simplify tests linking a little Instead of repeating the same LDADD list for each test, just use the global LDADD variable. https://bugzilla.gnome.org/show_bug.cgi?id=772928 M geocode-glib/tests/Makefile.am commit f1650bec04d5dcb267c549d4b7c243e89baa0822 Author: Philip Withnall Date: Fri Oct 14 12:16:40 2016 +0100 build: Add installed-tests support This means the tests are installed on the system, and can be run using gnome-desktop-testing-runner geocode-glib-1.0 This means they will be run as integration tests on systems like gnome-continuous, which may help to catch bugs caused by integration changes with other modules. The tests themselves have not actually changed. https://bugzilla.gnome.org/show_bug.cgi?id=772928 M Makefile.am M configure.ac M geocode-glib/tests/Makefile.am A glib-tap.mk A tap-test commit 9baf551a0392f09f324e775a67da45e51638ecb0 Author: Philip Withnall Date: Fri Oct 14 12:28:43 2016 +0100 tests: Move nominatim-*.json to tests directory So they are with the other test JSON files. This also removes the need for TEST_SRCDIR — we can now use g_test_build_filename() instead, which uses the G_TEST_SRCDIR/G_TEST_BUILDDIR environment variables which will eventually be passed in by glib-tap.mk (in following commits). https://bugzilla.gnome.org/show_bug.cgi?id=772928 M geocode-glib/Makefile.am M geocode-glib/tests/Makefile.am M geocode-glib/tests/geocode-glib.c R100 geocode-glib/data/nominatim-area.json geocode-glib/tests/nominatim-area.json R100 geocode-glib/data/nominatim-no-results.json geocode-glib/tests/nominatim-no-results.json R100 geocode-glib/data/nominatim-rio.json geocode-glib/tests/nominatim-rio.json commit fc577c64a765ec24d3c56902eab555bcb62b6434 Author: Philip Withnall Date: Fri Oct 14 12:17:16 2016 +0100 tests: Remove duplicate return statement https://bugzilla.gnome.org/show_bug.cgi?id=772928 M geocode-glib/tests/geo-uri.c commit 38e54cfaa0668b52a8351a08d31f66d758f97355 Author: Philip Withnall Date: Fri Oct 14 12:12:31 2016 +0100 tests: Move test C sources into the tests subdirectory This improves tab-completion in the source directory, and means all the test code is in one directory. Split the build configuration for them out into a separate makefile, in preparation for adding installed-tests support there. https://bugzilla.gnome.org/show_bug.cgi?id=772928 M configure.ac M geocode-glib/Makefile.am A geocode-glib/tests/Makefile.am R100 geocode-glib/test-geouri.c geocode-glib/tests/geo-uri.c R099 geocode-glib/test-gcglib.c geocode-glib/tests/geocode-glib.c M geocode-glib/tests/geocode-nominatim-test.c M geocode-glib/tests/geocode-nominatim-test.h commit befbd2faacc40ad0bd0794c33872b0dd2e619797 Author: Philip Withnall Date: Thu Oct 13 18:54:05 2016 +0100 geocode-glib: Add another User-Agent fallback string If a GApplication is not available, see if the application name was set using g_set_application_name() — if so, use that in the User-Agent string to try and make it more unique. https://bugzilla.gnome.org/show_bug.cgi?id=756313 M geocode-glib/geocode-glib.c commit d229c5983f22c7f1bb37149cadde6b520cffc249 Author: Philip Withnall Date: Thu Oct 13 18:52:58 2016 +0100 geocode-nominatim: Add a user-agent property to override the User-Agent If an application wants to set a custom User-Agent, they can now do so via this property. This is probably sufficiently rarely needed that it can remain as a property of GeocodeNominatim, without a getter or setter, and without being exposed on GeocodeForward and GeocodeReverse. https://bugzilla.gnome.org/show_bug.cgi?id=756313 M geocode-glib/geocode-glib-private.h M geocode-glib/geocode-glib.c M geocode-glib/geocode-nominatim.c commit 1f2766a4d99553c72e92f51487d46e7b6224843b Author: Philip Withnall Date: Fri Jan 6 23:51:08 2017 +0000 geocode-glib: Mark UNRELEASED API as new in 3.23.1 3.23.1 has not been released yet, but this API is definitely going to be in it when it is. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-backend.c M geocode-glib/geocode-backend.h M geocode-glib/geocode-forward.c M geocode-glib/geocode-nominatim.c M geocode-glib/geocode-nominatim.h M geocode-glib/geocode-reverse.c commit 4c27e04be856a81bf09e3697052c514e1e5a5f26 Author: Philip Withnall Date: Thu Oct 13 16:58:23 2016 +0100 geocode-glib: Accept a hash table for GeocodeBackend.reverse_resolve() Instead of only accepting a GeocodeLocation, accept a hash table of string keys and GValues. Typically, this will contain `lat` and `lon` entries which represent the GeocodeLocation. But in future, it could contain other keys to look up a GeocodePlace by its backend-specific ID, for example; or to limit the search results by place type. Whether the keys are static or non-static is decided by the caller. This changes the API in GeocodeBackend (which is not stable yet), but not in GeocodeReverse, so it’s not an API break. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-backend.c M geocode-glib/geocode-backend.h M geocode-glib/geocode-nominatim.c M geocode-glib/geocode-reverse.c commit f97421f6d949509e5d2e81695e9f83780fc33885 Author: Philip Withnall Date: Thu Oct 13 16:18:51 2016 +0100 tests: Fix some minor memory leaks in test-gcglib It’s now memory-leak-clean when run under valgrind. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c commit c4efd6945a8d3ab0dfcfaff03cb4093ee57206ac Author: Philip Withnall Date: Thu Oct 13 16:17:41 2016 +0100 geocode-glib: Fix documentation for list return values The documentation previously said that the return values were (transfer container), but they were actually always (transfer full) (and all callers in the tests treated them as such). Fix that in the documentation. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-backend.c M geocode-glib/geocode-forward.c commit 6e8d348b6a6f713b32e703cb34665b660b2abf93 Author: Philip Withnall Date: Thu Jan 12 23:24:57 2017 +0000 tests: Set XDG_CACHE_HOME to a temporary directory for tests We don’t want to pollute the user’s actual cache, or to re-use cached results between tests. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c M geocode-glib/tests/geocode-nominatim-test.c commit 2a8d8e40ed3710db967d066f601bb0da6e901df1 Author: Philip Withnall Date: Thu Oct 13 14:37:32 2016 +0100 geocode-backend: Add support for multiple reverse results Some geocoding APIs (such as the Google Geocoding API) can return multiple results for a reverse resolution request, such as the building at that location, the street it is on, the town it is in, etc. While we currently only support Nominatim, other backends may be added (potentially out of tree) in future. Change the GeocodeBackend API to allow them to return multiple reverse results. This does not change the GeocodeReverse API, which returns the first result in the list, which should be the most relevant one. https://developers.google.com/maps/documentation/geocoding/intro#ReverseGeocoding https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-backend.c M geocode-glib/geocode-backend.h M geocode-glib/geocode-nominatim.c M geocode-glib/geocode-reverse.c commit a2306cb8a6ed0f40082469aa1e6967f52dad2af2 Author: Philip Withnall Date: Thu Oct 13 14:36:48 2016 +0100 geocode-glib: Make some private functions static These two functions are no longer needed in any files other than geocode-nominatim.c, so they can be made private and removed from the .symbols file. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-glib-private.h M geocode-glib/geocode-glib.symbols M geocode-glib/geocode-nominatim.c commit 491dcd4f5a85d7a95876ff588f4d09d9b2ed16a0 Author: Philip Withnall Date: Thu Oct 13 12:29:17 2016 +0100 build: Use AM_CPPFLAGS rather than INCLUDES INCLUDES is deprecated and will be removed in a future version of automake. This fixes an automake warning. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M docs/Makefile.am commit 0e2efdbaa043896819b2e2803feb07f7f6a09f86 Author: Philip Withnall Date: Thu Oct 13 12:23:25 2016 +0100 build: Add AX_IS_RELEASE Automatically turn on or off various release-dependent configure options based on whether a git directory is present. If it’s present, we assume we’re doing development, so fatal warnings (etc.) are turned on. Otherwise, we assume it’s a release and they are turned off. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac commit e5fc19d2b1fe632b7147a2b1feecb8b5a40194ab Author: Philip Withnall Date: Thu Oct 13 12:22:21 2016 +0100 build: Port from GNOME_COMPILE_WARNINGS to AX_COMPILER_FLAGS AX_COMPILER_FLAGS uses a standard set of warnings across all projects, and a standard build API for enabling and disabling whether they are warnings or errors. Drop GNOME_CXX_WARNINGS because the project doesn’t use C++. https://wiki.gnome.org/Projects/GnomeCommon/Migration https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac M geocode-glib/Makefile.am commit 2e925bed1e11c797f07a8b648559932a6503df32 Author: Philip Withnall Date: Thu Oct 13 12:15:47 2016 +0100 build: Drop use of GNOME_MAINTAINER_MODE_DEFINES It’s no longer useful for modern GNOME modules. https://wiki.gnome.org/Projects/GnomeCommon/Migration https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac commit eaeb4cb0a6d3a01130a6680b0eda50563941bd35 Author: Philip Withnall Date: Thu Oct 13 12:15:11 2016 +0100 build: Port from GNOME_DEBUG_CHECK to AX_CHECK_ENABLE_DEBUG This is one step towards no longer depending on gnome-common. https://wiki.gnome.org/Projects/GnomeCommon/Migration https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac commit bd97dc60045158943317cd6d90cb4a7e725e3acf Author: Philip Withnall Date: Thu Oct 13 12:14:07 2016 +0100 build: Update to latest GNOME autogen.sh https://wiki.gnome.org/Projects/GnomeCommon/Migration https://bugzilla.gnome.org/show_bug.cgi?id=756311 M autogen.sh commit 7d9130a778d17740b76492c63f91ea3ced6a7b7b Author: Philip Withnall Date: Fri Jan 6 23:40:43 2017 +0000 geocode-place: Simplify switch statement We return immediately at the bottom of the switch statement, so why not return immediately from each case? https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-place.c commit b088742ae986b2591542a167250a760376245516 Author: Philip Withnall Date: Thu Oct 13 13:20:20 2016 +0100 geocode-place: Fix -Wswitch-enum warnings This switch is not meant to handle all of the values for the switch (omissions are not a bug), so cast the value to an int to disable type checking first. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-place.c commit 5bca002920c7144caab4a09ea82a9908b11270da Author: Philip Withnall Date: Thu Oct 13 12:30:01 2016 +0100 tests: Rename a global variable to be less generic Rename the commmand-line parameters variable to ‘command_line_params’ so that it isn’t shadowed by a huge number of other variables in the file. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c commit 8816352ee6dcb6df7ffeb872084684b956c30df7 Author: Philip Withnall Date: Thu Oct 13 12:03:36 2016 +0100 tests: Add copyright headers to test C files These have been missing for a while. Copyrights reconstructed from the git log; Bastien and Zeeshan’s copyrights were attributed to Red Hat as part of the standard Red Hat employment contract. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c M geocode-glib/test-geouri.c commit 14b9de61057a24041bde36e660497d041830775f Author: Philip Withnall Date: Fri Jan 6 23:30:23 2017 +0000 build: Add perturbation variables to test environment These should perturb the memory allocator settings randomly so that memory management problems are more likely to be highlighted. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/Makefile.am commit 65dc1831d1ec775175590e15c90f0527847d04cc Author: Philip Withnall Date: Thu Oct 13 11:49:07 2016 +0100 tests: Port test-gcglib to optionally use GeocodeNominatim offline GeocodeNominatim allows us to override its virtual methods for network queries, so do that in a new GeocodeNominatimTest subclass, which loads its results from a local set of results added by the test harness. Port the existing test-gcglib tests to optionally use this new backend, rather than the default GNOME Nominatim backend, to run the tests offline. This means that they can reliably be run on CI or build infrastructure with no internet access; and can be run with internet access on developer machines (for example). Based on a patch by Aleksander Morgado . https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac M docs/Makefile.am M geocode-glib/Makefile.am M geocode-glib/test-gcglib.c A geocode-glib/tests/geocode-nominatim-test.c A geocode-glib/tests/geocode-nominatim-test.h A geocode-glib/tests/locale_format.json A geocode-glib/tests/locale_name.json A geocode-glib/tests/osm_type0.json A geocode-glib/tests/osm_type1.json A geocode-glib/tests/osm_type2.json A geocode-glib/tests/pub.json A geocode-glib/tests/rev.json A geocode-glib/tests/rev_fail.json A geocode-glib/tests/search.json A geocode-glib/tests/search_lat_long.json A geocode-glib/tests/xep.json commit af4bac3ca2260c3fea047e54c87d82dd946e1832 Author: Philip Withnall Date: Thu Oct 13 11:35:34 2016 +0100 geocode-glib: Add a backend abstraction Add an abstraction for backends, the GeocodeBackend interface, and split the existing Nominatim code out into an implementation of that, GeocodeNominatim. Parameterise this implementation so the default instance uses nominatim.gnome.org, but other instances can be created which use other Nominatim servers. Rebase GeocodeForward and GeocodeReverse on GeocodeBackend so that they use the new abstraction, and can have their backends changed to use a custom GeocodeBackend instance. The default is the global GNOME GeocodeNominatim instance. The GeocodeNominatim class uses the same Nominatim code as before, moved from GeocodeForward and GeocodeReverse. In order to be backend-agnostic, the parameters accepted by GeocodeBackend methods use the XEP-0080 keys and GValues, rather than anything specific to Nominatim, which means that some of the parameter-handling code had to be reworked slightly. GeocodeNominatim delegates its network requests to virtual methods — the default implementations of these use libsoup as before, but a follow-up commit will add a derived class which tests the Nominatim implementation by overriding them to check the generated network requests. This adds the following new API, but does not break backwards compatibility: • GeocodeBackend  • GeocodeNominatim • geocode_[forward|reverse]_set_backend() This requires the recently-bumped GIO dependency of 2.44. Largely based on a patch by Aleksander Morgado . https://bugzilla.gnome.org/show_bug.cgi?id=756311 M docs/geocode-glib-docs.xml M geocode-glib/Makefile.am A geocode-glib/geocode-backend.c A geocode-glib/geocode-backend.h M geocode-glib/geocode-forward.c M geocode-glib/geocode-forward.h M geocode-glib/geocode-glib.h M geocode-glib/geocode-glib.symbols A geocode-glib/geocode-nominatim.c A geocode-glib/geocode-nominatim.h M geocode-glib/geocode-reverse.c M geocode-glib/geocode-reverse.h commit 4b6bb1f3ef31f5eba5e960de465b07151ea0670f Author: Philip Withnall Date: Tue Nov 8 17:18:13 2016 +0000 build: Bump version to 3.23.1 Bump to a version in the 3.23.x unstable series, in line with the rest of GNOME. Do this before the following commits add a load of new API. (This commit is not itself a release.) https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac commit 591b0eea2c726cf4a3bf68b9be34564548693e15 Author: Philip Withnall Date: Tue Nov 8 16:34:53 2016 +0000 build: Bump GIO dependency to 2.44 This will be needed in the following commits so that new features like g_set_object() and g_autoptr() can be used. 2.44 was released on 2015-03-23. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M configure.ac commit 99f6d79fa48b9d1bb43dc0bb2e07e4096cedff37 Author: Philip Withnall Date: Thu Oct 13 13:19:22 2016 +0100 geocode-glib: Fix various minor const-correctness issues This fixes a load of compiler warnings. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-location.c M geocode-glib/geocode-place.c M geocode-glib/test-geouri.c commit b3cb332381fca6c3e18bfda10f16202b40cdafa9 Author: Philip Withnall Date: Thu Oct 13 13:18:13 2016 +0100 docs: Fix multiple declarations of the enums documentation section It needs to be put in the template for the enum file, not each enum type. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/Makefile.am commit 53b29e747ecbab77088d188de0432f8d3ae4b231 Author: Philip Withnall Date: Thu Oct 13 11:55:52 2016 +0100 test-gcglib: Add a missing error assertion This doesn’t change how the tests behave at the moment, but might catch more errors in future. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c commit a5f1e32374da1a6eace865509e5587ca1453afbf Author: Philip Withnall Date: Thu Oct 13 11:55:36 2016 +0100 test-gcglib: Fix a couple of memory leaks in the tests https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c commit 3bb02906590f436102dc05ee976d94194813ea00 Author: Philip Withnall Date: Thu Oct 13 11:55:18 2016 +0100 test-gcglib: Minor const-correctness fix https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c commit 8607f7d7bea67076a31625869a1e147830d173e3 Author: Philip Withnall Date: Thu Oct 13 11:54:36 2016 +0100 test-gcglib: Update expected test results to match latest OSM data Looks like these nodes have been edited online, so the online query results no longer matched what we expected. Update what we expect. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/test-gcglib.c commit a489cb48c0c0caa6dcb67d5c8f2b75fc6e678f8b Author: Philip Withnall Date: Thu Oct 13 11:54:03 2016 +0100 geocode-reverse: Fix indentation https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-reverse.c commit 71154cd6866d038725376e51a17cb70d0d0f402a Author: Philip Withnall Date: Thu Oct 13 11:53:14 2016 +0100 geocode-glib: Add g_autoptr() cleanup functions This allows us to use GeocodeForward and GeocodeReverse with g_autoptr(). https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-bounding-box.h M geocode-glib/geocode-forward.h M geocode-glib/geocode-location.h M geocode-glib/geocode-place.h M geocode-glib/geocode-reverse.h commit e4097a7e6acca8315115aee76905bfb5e88c724e Author: Philip Withnall Date: Thu Oct 13 11:52:43 2016 +0100 geocode-forward: Add missing ‘Returns’ line to a gtk-doc comment This adds a missing GIR annotation. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M geocode-glib/geocode-forward.c commit dc87c43d36f6428871daabfe54db74f55d86ef3a Author: Philip Withnall Date: Thu Oct 13 11:27:13 2016 +0100 docs: Enable --rebuild-sections option for gtk-doc Since we don’t commit the sections.txt file to git, we should explicitly rebuild it automatically. https://bugzilla.gnome.org/show_bug.cgi?id=756311 M docs/Makefile.am commit a64601202c6cbdb2578aa054f6c3a1249cf3596c Author: Ting-Wei Lan Date: Tue Jun 14 11:01:22 2016 +0800 build: Fix gtk-doc build when builddir != srcdir The generated geocode-enum-types.xml is not useful and can be removed. https://bugzilla.gnome.org/show_bug.cgi?id=767629 M docs/geocode-glib-docs.xml