gplugin/gplugin

Prepare for the 0.36.0 release
v0.36.0
2021-10-14, Gary Kramlich
072159807045
Prepare for the 0.36.0 release

Testing Done:
Ran `ninja dist`

Reviewed at https://reviews.imfreedom.org/r/1050/
0.36.0: 2021/10/14:
* Update POTFILES for the gtk -> gtk3 rename. (RR 967) (Gary Kramlich)
* Add namespaces to all of the Vala and Genie plugins. (RR 984) (Gary
Kramlich)
* Random meson cleanups. (RR 987) (Elliott Sales de Andrade)
* Setup meson devenv. (RR 988) (Gary Kramlich)
* Turn on extra warnings and clean them up. (RR 989) (Gary Kramlich)
* Add Lua 5.4 to our lists of accepted version. (RR 990) (Gary Kramlich)
* Random Perl5 cleanups. (RR 986) (Gary Kramlich)
* Add scaffolding for GTK 4 Widgets. (RR 991) (Elliott Sales de Andrade)
* Remove empty vfuncs in gplugin-gtk3. (RR 996) (Elliott Sales de Andrade)
* Fix cross references in the GPlugin documentation. (RR 999) (Elliott Sales
de Andrade)
* Fix namespace for get_id_normalized (RR 1000) (Elliott Sales de Andrade)
* Fix cross references in the GPlugin-Gtk3 documentation. (RR 1002) (Elliott
Sales de Andrade)
* Silence some new Meson warnings (RR 1007) (Elliott Sales de Andrade)
* Fix some leaks in GTK3 plugin viewer (RR 1009) (Elliott Sales de Andrade)
* Make property registration consistent (RR 1010) (Elliott Sales de Andrade)
* Fix several typos (RR 1011) (Elliott Sales de Andrade)
* Add GTK4 viewer outline (RR 992) (Elliott Sales de Andrade)
* Remove unnecessary doc comments in gplugin (RR 1014) (Gary Kramlich)
* Remove unnecessary doc comments in gplugin-gtk3 (RR 1015) (Gary Kramlich)
* Made GPluginManager a final type. (RR 1028) (Gary Kramlich)
* Set all log domains to use structured logging (RR 1032) (Elliott Sales de
Andrade)
* Add GLADE_CATALOG_SEARCH_PATH to the devenv (RR 1046) (Gary Kramlich)
0.35.0: 2021/09/30:
* Add an unloadable property to GPluginPluginInfo and add a shutdown
parameter to gplugin_unload. (RR 943) (Gary Kramlich)
* Add a mailmap for resolving committer names. (RR 948) (Gary Kramlich)
* Fix trailing slashes in links in the GPluginGtk docs. (RR 957) (Gary
Kramlich)
* Silence warnings from Python files and fix a bug with Unicode named Python
plugins. (RR 960) (Elliott Sales de Andrade)
* Remove the mingw-cross packaging stuff. (RR 962) (Gary Kramlich)
* Set the min and max allowed glib versions. (GPLUGIN-140) (RR 963) (Gary
Kramlich)
* Renamed gplugin-gtk to gplugin-gtk3. (GPLUGIN-98) (RR 961) (Gary Kramlich)
0.34.1: 2021/09/26:
* Update the library dependency objects to include the gobject introspection
targets so they will automatically work with subprojects. (RR 939) (Gary
Kramlich)
0.34.0: 2021/09/24:
* Add an id property to GPluginLoader. (RR 895) (Gary Kramlich)
* Fix memory leaks in test-versioned-dependencies and test-find-plugins.
(RR 896) (ivanhoe)
* Add a convey plan to build and export the docs. (RR 904) (Gary Kramlich)
* Migrate to gi-docgen. (RR 905) (Gary Kramlich)
* Cleaned up all the convey plans. (RR 910) (Gary Kramlich)
* Fix the plugin id for the Perl5 Loader plugin. (RR 934) (Gary Kramlich)
* Change loader registration to work on an instance rather than a GType.
(RR 899) (Gary Kramlich)
* Add a core flag to turn on logging of plugin state changes. (RR 933)
(Gary Kramlich)
* Make the name inside of the pkgconfig files match the base name of the
pkgconfig files. (RR 935) (Gary Kramlich)
0.33.0: 2021/08/03:
* Fix plugin searching with Glib 2.69. (RR 856) (Elliott Sales de Andrade)
* Look for Perl in additional paths. (RR 851, 864) (ivanhoe)
* Override our dependency in meson if we have a new enough meson. (RR 837)
(Gary Kramlich)
* Converted the GPluginManager API to take an instance of a GPluginManager
instead of just working working on a library managed instance. (RR 862)
(Gary Kramlich)
0.32.1: 2021/07/29
* Update all of the basic plugins to verify that they were called with the
proper arguments. (RR 817) (Gary Kramlich)
* Check for all known and supported Python3 pkg-config files. (RR 832) (Gary
Kramlich)
* Bump the meson minimum version to 0.56.0 and start using the summary
function. (RR 849) (Gary Kramlich)
* Move the management of plugins state from GPluginManager to GPluginLoader.
(RR 845) (Gary Kramlich)
0.32.0: 2021/07/13
* Expose the GPluginManager object. This is the first step in updating the API
to make it match the manager objects that we've been building in libpurple
and Pidgin. (RR 689) (Gary Kramlich)
* Added provides and priority properties to GPluginPluginInfo. (RR 691) (Gary
Kramlich)
0.31.0: 2021/05/27
General
* Added an option to install gplugin-query. (RR 159) (GPLUGIN-129) (Sorvival)
* Added an option to install gplugin-gtk-viewer. (RR 159) (GPLUGIN-129)
(Sorvival)
GPlugin
* Changed the symbol bind logical for native plugins to bind locally by
default. (RR 108) (GPLUGIN-119) (Gary Kramlich)
* Added a parameter of type GPluginCoreFlags to gplugin_init. (RR 110)
(GPLUGIN-103) (Gary Kramlich)
* Added gplugin_plugin_info_get_id_normalized. (RR 131) (GPLUGIN-128)
(Gary Kramlich)
* Added a macro to make it easier to implement native plugins and to future
proof them a bit. (RR 578) (GPLUGIN-132) (Gary Kramlich)
0.30.0: 2020/09/05
General
* Changed the website to the repository on keep.imfreedom.org.
(Gary Kramlich)
* Removed an unnecessary meson version check. (Gary Kramlich)
* Bumped the required meson version to 0.50.0. (Gary Kramlich)
* Removed gplugin-version.sh.in as it was used in the cmake build system.
(Gary Kramlich)
* Fixed licenses throughout the codebase. (Richard Laager)
GPlugin
* Removed GPluginVersionCompareFunc and the GPluginPluginInfo::version-func
property as they aren't necessary with semantic versioning. (Gary Kramlich)
* Added new plugin state UNLOAD_FAILED. When a plugin fails to unload, it
now goes to UNLOAD_FAILED instead of LOADED. (Gary Kramlich)
* Added gplugin_manager_foreach and GPluginManagerForeachFunc to make it
easier to operate on all plugins. (Gary Kramlich)
* Added GPluginManager::unload-plugin-failed signal that gets emitted when
a plugin fails to unload.
* Renamed the GPluginManager::load-failed signal to
GPluginManager::load-plugin-failed and added the error, if any, that the
plugin returned. (Gary Kramlich)
* Added gplugin_manager_find_plugin_with_newest_version. (Gary Kramlich)
* Added an "error" property to GPluginPlugin with a getter. (Gary Kramlich)
* Removed the error parameter from the "plugin-load-failed" and
"plugin-unload-failed" signals. Call gplugin_plugin_get_error instead.
(Gary Kramlich)
GPluginGtk
* Updated the GPluginGtkView widget to disable entries if there are in the
GPLUGIN_PLUGIN_STATE_LOAD_FAILED state. (Gary Kramlich)
* Updated the GPluginGtkPluginInfo widget to display the "error" property if
it is set, or "(none)". (Gary Kramlich)
Lua Loader
* Removed the moonscript support from the Lua loader. (Gary Kramlich)
* Add support for Lua 5.3. (Richard Laager)
Perl Loader
* After years of on again, off again work, the Perl loader finally works!
(Gary Kramlich, Richard Laager)
Python Loader
* Bumped the Python 3 dependency to 3.5. (Gary Kramlich)
* Replaced mbstowcs with Py_DecodeLocale. (Gary Kramlich)
* Renamed the python loader from gplugin-python to gplugin-python3.
(Gary Kramlich)
0.29.0: 2019/11/07
* Synchronize GPluginGtkStore with the plugin manager, make the enabled
toggle button work in GPluginGtkView, and allow developers to decide
whether or not to show column headers in GPlugingGtkView. (PR #37)
(Gary Kramlich)
* Added error messages when the unload method of a plugin loader is called.
(PR #38) (Gary Kramlich)
0.28.2: 2019/10/31
General
* Fixed a broken include in gplugin-gtk-plugin-info.h which caused build
failures.
* Fixed an issue where python3.8 no longer links to libpython.
0.28.1: 2019/09/30
General
* Fix a bug that scanbuild found in test-plugin-info (Gary Kramlich)
* Fix an issue pvs-studio found for using g_set_error instead of
g_error_set_literal (PR #34) (Gary Kramlich)
* Clean up the rpm spec.in file (PR #29) (Gary Kramlich)
* Fix the build when being built as a subproject in meson (PR #28) (Gary
Kramlich)
* Fix building the Lua loader on FreeBSD (PR #25) (Gary Kramlich)
* Look for plugins with both .so and .dylib extensions on MacOS (PR #16)
(Gary Kramlich)
* Fix a segfault in GPluginFileTree (PR #15) (Olaf Hering)
* Fix valgrind and other memory issues (PR #11, PR #12) (Elliot Sales de
Andrade)
* Fix warnings from Python headers (PR #10) (Elliott Sales de Andrade)
* Use g_set_error (PR #6) (Elliott Sales de Andrade)
* Use g_clear_pointer (PR #6) (Elliott Sales de Andrade)
* Use g_clear_object (PR #6) (Elliott Sales de Andrade)
* Use g_value_dup (PR #6) (Elliott Sales de Andrade)
* Remove null checks from g_strdup (PR #6) (Elliott Sales de Andrade)
* Make sure testing asserts can't be disabled (PR #6) (Elliott Sales de
Andrade)
* Fix some potential reference counting bugs (PR #6) (Elliott Sales de
Andrade)
* Removed checks for glib < 2.40 as that's our required minimum now. (PR #6)
(Elliott Sales de Andrade)
* Replaced GPLUGIN_UNUSED with G_GNUC_UNUSED (PR #6) (Elliott Sales de
Andrade)
* Created VAPI for Vala Bindings. (#76) (Gary Kramlich)
* Added docs for Vala. (#76) (Gary Kramlich)
Python Loader
* Use Py_CLEAR and Py_XINCREF on private attributes (PR #6) (Elliott Sales de
Andrade)
Perl Loader
* Made it compile again (still incomplete) (PR #7) (Elliott Sales de Andrade)
TCC Loader
* Made it compile again, disabled by default (PR #7) (Elliott Sales de
Andrade)
0.28.0: 2019/01/22
* Fixed building on OSX with homebrew
* Added an RPM spec file
* Changed the build system to meson. See INSTALL for instructions.
* Added gplugin_plugin_get_dependent_plugins. (fixes #8)
* Remove ability to disable unit testing.
* Bumped the glib requirement to 2.40.0
* Added gtk-doc
* Added a Glade catalog for gplugin-gtk
* Added GPluginGtk-0.0.gir
0.27.0: 2016/04/18
* Bumped the glib requirement to 2.34.0
* Fix some error reporting with the native loader
0.26.0: 2016/03/03
* Added a load-failed signal which is emitted when a plugin fails to load
* Removed pre glib 2.32.0 code
0.25.0: 2016/02/06
* Fix a regression where the GIR file did not have a predictable name.
* Fix the glib requirement. It was set at 2.20, but we require 2.32.
0.24.1: 2016/01/28
* Fixed the version numbering finally
* Updated the version in CMakeLists.txt
0.0.24: 2016/01/28
* Really fixed the debian package this time
* Made help2man optional
* Don't try to build the pot files if NLS is disabled
0.0.23: 2016/01/06
* Made the moonscript tests option work
* Added Debian.md to explain how to use the Debian repository
* Install man pages in the correct directory on BSD
0.0.22: 2015/06/30
* Made the moonscripts tests not interfer with the lua tests unless they're
explicitly turned on
* Set the -ggdb cflag if we're being compiled by gcc
0.0.21: 2015/06/29
* Use the GNUInstallDirs cmake module to install everything to the correct
locations. - Elliott Sales de Andrade
* Added -L, --list option to gplugin-query to show the search paths it is
using.
* Added an option to toggle whether or not the moonscript tests are run.
Defaults to no.
0.0.20: 2015/05/07
* Fixed the lua dependency checks for Fedora 20
* Fixed the build on cmake<3.0.0
0.0.19: 2015/05/06
* Add debug packages to the Debian packaging
* Add libgplugin-loaders package to the Debian packaging
* Removed the Seed JavaScript loader (issue #63)
* Removed the GNOME JavaScript loader (issue #64)
* Fixed crash in gplugin-gtk-viewer (issue #25)
0.0.18: 2015/02/22
* Add a dist target to build and sign source archives
0.0.17: 2014/12/12
* Finished the gjs loader.
* Relicensed to LGPL2.
* Created the Debian packaging.
* Add an option to disable unit testing
0.0.16: 2014/05/05
* Added luajit as the first Lua library to try to use.
* Added moonscript support to the Lua loader.
* Added a help field to GPluginPluginInfo.
0.0.15: 2014/03/15
* Added support to build against lua 5.2 (Elliott Sales de Andrade)
* Fixed issue #45 (Elliott Sales de Andrade)
* Updated some unit tests for deprecation in Glib 2.38 (Elliott Sales de
Andrade)
* Fixed issue #46 (John Bailey)
* Moved the Python loader to Python3 only (Elliott Sales de Andrade)
* Added the typelib and gir files as dependencies for all loaders that
require if (Elliott Sales de Andrade)
0.0.14: 2014/01/25
* Added the Seed JavaScript loader.
0.0.13: 2014/01/23
* Removed the gplugin-native API from the gobject-introspection repository.
* Added support for versions in plugin dependencies as well as OR's.
0.0.12: 2014/01/08
* Added a static library to make it easier to test loaders.
* Moved the native loader to the loader-testing static library
* Overhauled the native loader tests
* Fixed a bug where in certain conditions a load-on-query plugin that failed
to load, would get its info tracked twice.
0.0.11: 2013/12/02
* Added gplugin_get_option_group which implements options for adding paths
as well as not adding the default paths.
* Fixed an issue with dependencies in native plugins.
* Fixed some use count issues in native plugins.
* GPluginManager now manages the the states for plugins so the loaders don't
have to.
0.0.10: 2013/11/01
* Got the gplugin-gtk stuff working for the most part
* Implemented the Lua loader
* Renamed the external methods for native plugins to remove the redundant
_plugin in their names
* Renamed the external methods for python plugins to remove the redundant
_plugin in their names
0.0.9: 2013/10/13
* Renamed GPluginPluginLoader to GPluginLoader
* Renamed GPluginPluginManager to GPluginManager
* Updated the gplugin_manager_* API to use a singleton that has signals for
loading, loaded, unloading, and unloaded. Use gplugin_manager_get_instance
to get the instance to use in g_signal_connect. Signals are
"loading-plugin", "loaded-plugin", "unloading-plugin", and "loaded-plugin".
See the documentation for the prototype expected for the callbacks.
* Various internal cleanups
0.0.8: 2013/09/22
* Fixed some issues with loading Python plugins (#16)
* Removed the flags property and replaced it with an internal and
load-on-query properties. Both of which default to FALSE. Closes #15
* Various fixes for gplugin_native_plugin_(un)?use from Ankit
0.0.7: 2013/09/01
* Cleaned up the output of gplugin-query considerably
* Fixed the load on query flag so that it actually works
* Finding and fixed an issue with type registration
* Fixed GObjectIntrospection.cmake to correctly handle CMAKE_INSTALL_PREFIX
* Added internationalization support
* Got the Python loader working
0.0.6: 2013/08/25
* Added GPluginPluginInfo:version-func which can hold a
GPluginVersionCompareFunc that's used to compare versions of the plugin.
* Fixed the multiple id crash issue
0.0.5 2013/08/16:
* Added a "category" property to GPluginPluginInfo
* Changed GPluginPluginInfo:dependencies from a GSList to a gchar *
* Implemented gplugin_plugin_info_new (again) this time with id and
abi_version required
* Renamed GPluginPluginInfo:author to GPluginPluginInfo:authors
* Changed GPluginPluginInfo:authors and GPluginPluginInfo:dependencies from
gchar * to gchar **. See the unittest plugins for an example of how they
work.
* Some more updates for gplugin-query. This needs to be much easier to
maintain, but it's working a bit better.
* Changed GPluginPluginInfo:license to GPluginPluginInfo:license-id
0.0.4: 2013/08/10
* Added the install path as a default for gplugin-query
* Added an option to gplugin-query to not use the default paths
* Fixed a bug in gplugin_plugin_manager_remove_path
* Made some changes to the python loader, still far from working
* Fixed gplugin_plugin_manager_add_app_paths to use g_build_filename instead
of g_build_path.
* Fixed some leaks involving GPluginPluginInfo
* Avoid a crash if no paths are added
* Don't show internal plugins by default in gplugin-query, use -i to see them
* Removed gplugin_plugin_info_new for now (this may make a comeback)
* Set GPluginInfoClass's parent to GInitiallyUnownedClass
* Updated the target names in GObjectIntrospection.cmake to be the filenames
that are produced.
* Added license_text and license_url to GPluginPluginInfo
* Lots of documentation updates, more to go yet
* Added a -D option to gplugin-query to not use the default paths
* Updated the query, load, and unload functions of native plugins to take
a GError.
0.0.3: 2013/07/30
* Added gplugin_plugin_manager_add_app_paths
* Moved GPluginPluginInfo from a boxed type to a GObject
* Added gplugin_[gs]et_plugin_info_type to allow applications to specify
a GPluginPluginInfo subclass for plugins to create.
0.0.2: 2012/04/29
* Fixed the broken pkg-config file...
* Added gplugin_plugin_manager_list_plugins
* Added gplugin-query to query the plugins that gplugin knows about
0.0.1: 2012/04/29
* Initial release
* Basic native plugin loading/unloading supported with dependencies