Commit 06192db7 authored by Jeremy Bicha's avatar Jeremy Bicha

New upstream version 1.22.0

parents c430a77f 2f8b28dd
Contributors to libpeas:
Steve Frécinaux <code@istique.net>
Ignacio Casal Quinteiro <icq@gnome.org>
Contributors to the gedit plugin system:
Paolo Maggi <paolo@gnome.org>
Paolo Borelli <pborelli@katamail.com>
Steve Frécinaux <code@istique.net>
Jesse van den Kieboom <jesse@icecrew.nl>
Ignacio Casal Quinteiro <icq@gnome.org>
Raphaël Slinckx <rslinckx@gmail.com>
Contributors to Epiphany's plugin system:
Marco Pesenti Gritti <mpg@redhat.com>
Christian Persch <chpe@gnome.org>
James Willcox <jwillcox@gnome.org>
Crispin Flowerday <gnome@flowerday.cx>
Adam Hooper <adamh@densi.com>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
## Process this file with automake to produce Makefile.in
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
DISTCHECK_CONFIGURE_FLAGS = \
--enable-glade-catalog \
--enable-gtk-doc \
--disable-doc-cross-references
SUBDIRS = libpeas loaders
GCOVDIRS = libpeas loaders
if ENABLE_GTK
SUBDIRS += libpeas-gtk peas-demo
GCOVDIRS += libpeas-gtk
endif
SUBDIRS += tests data po docs
dist-hook:
@if test -d "$(srcdir)/.git"; \
then \
echo Creating ChangeLog && \
( cd "$(top_srcdir)" && \
echo '# Generated by Makefile. Do not edit.'; echo; \
$(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \
&& mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \
|| ( rm -f ChangeLog.tmp ; \
echo Failed to generate ChangeLog >&2 ); \
else \
echo A git clone is required to generate a ChangeLog >&2; \
fi
test test-report perf-report full-report: all
@cd tests && $(MAKE) $(AM_MAKEFLAGS) $(@)
if GDB_ENABLED
test-gdb: all
@cd tests && $(MAKE) $(AM_MAKEFLAGS) $(@)
else
test-gdb:
@echo "You need GDB"
endif # GDB_ENABLED
if VALGRIND_ENABLED
test-valgrind test-callgrind: all
@cd tests && $(MAKE) $(AM_MAKEFLAGS) $(@)
else
test-valgrind test-callgrind:
@echo "You need Valgrind"
endif # VALGRIND_ENABLED
demo: all
@cd peas-demo && $(MAKE) $(AM_MAKEFLAGS) $(@)
if GCOV_ENABLED
gcov: test
@for dir in $(GCOVDIRS); do \
(cd $$dir && $(MAKE) $(AM_MAKEFLAGS) $(@)); \
done
all-local:
@find . -name "*.gcda" -delete && find . -name "*.[ch].gcov" -delete
else
gcov:
@echo "You need to reconfigure with --enable-gcov"
endif # GCOV_ENABLED
.PHONY: test test-gdb test-valgrind test-callgrind \
test-report perf-report full-report gcov demo
if GCOV_ENABLED
gcov: all
@echo ""; \
project=`basename $(abs_srcdir)`; \
total_covered=0; \
total_actual=0; \
stats_length=`expr length " 9999 / 9999 100% "`; \
filename_width=`expr 80 - 2 - $$stats_length`; \
echo -e "Test coverage for $$project:\n"; \
for file in $(filter %.c,$(gcov_sources)); do \
gcov -o .libs/$${file/.c/.gcda} $$file > /dev/null; \
if test -f $$file.gcov; then \
actual=`grep -v ' -:' $$file.gcov | wc -l`; \
uncovered=`grep '#####:' $$file.gcov | wc -l`; \
covered=$$((actual - uncovered)); \
percent=$$((($$covered * 100) / $$actual)); \
total_covered=$$((total_covered + covered)); \
total_actual=$$((total_actual + actual)); \
filename=`echo $$file: | sed "s/^\.\///g"`; \
printf " %-*s %4i / %4i %3i%%\n" $$filename_width $$filename \
$$covered $$actual $$percent; \
fi \
done; \
printf "\nSource statements: %4i" $$total_actual; \
printf "\nCovered statements: %4i" $$total_covered; \
printf "\nTotal coverage: %3i%%\n" \
$$((($$total_covered * 100) / $$total_actual))
else
gcov:
@echo "You need to reconfigure with --enable-gcov"
endif # GCOV_ENABLED
.PHONY: gcov
This diff is collapsed.
Overview of Changes in libpeas 1.22.0
====================================
* Translation updates:
- Catalan
- Danish
Overview of Changes in libpeas 1.21.0
====================================
* Consider all an interfaces potential properties
* Fix PeasEngine virtual annotations
* Allow extensions to be an Abstract Base Class
* Cache an extension type's base class and interfaces
* Translation updates:
- Belarusian
- Croatian
- Simplified Chinese
Overview of Changes in libpeas 1.20.0
====================================
* Translation updates:
- British English
- Friulian
- Hebrew
- Occitan
- Polish
- Portuguese
Overview of Changes in libpeas 1.18.0
====================================
* Translation updates:
- Latvian
- Occitan
Overview of Changes in libpeas 1.17.0
====================================
* Fix Python plugin loader module paths
* Do not add pyexecdir to Python's paths at runtime
* Add support for embedded C plugins
* Order the PeasEngine:plugin-list by dependencies
* Keep plugins order in PeasExtensionSet
* Misc bugfixes
* Translation updates:
- Basque
- Chinese
- Lithuanian
- Occitan
- Serbian
- Serbian (Latin)
Overview of Changes in libpeas 1.16.0
====================================
* Translation updates:
- Brazilian Portuguese
- Chinese (Taiwan)
- Danish
- Finnish
- French
- Galicians
- German
- German
- Greek
- Indonesian
- Italian
- Kazakh
- Korean
- Lithuanian
- Persian
- Polish
- Portuguese
- Russian
- Slovak
- Slovenian
- Swedish
- Thai
Overview of Changes in libpeas 1.15.0
====================================
* Add g_autoptr() autocleanup support
* Fix Python tests on OpenBSD
* Fix libpeas crash on windows
* Simplify __all__ support in the Python plugin loader
* Misc bugfixes
* Translation updates:
- Czech
- Hungarian
- Icelandic
- Norwegian bokmål
- Occitan
- Romanian
- Spanish
- Turkish
Overview of Changes in libpeas 1.14.0
====================================
* Misc bugfixes
* Translation updates:
- Aragonese
- Bosnian
- Chinese (Taiwan)
- Danish
- Finnish
- French
- Greek
- Indonesian
- Italian
- Kazakh
- Korean
- Korean
- Lithuanian
- Norwegian bokmål
- Polish
- Serbian
- Slovak
- Slovenian
- Swedish
- Turkish
Overview of Changes in libpeas 1.13.0
====================================
* Removed support for Seed plugins
* Added support for Lua 5.1 plugins using the LGI bindings
* PeasEngine is now thread-safe
* Added support for non-global plugins loaders
* Load C plugins with local linkage
* Use Python to implement the plugin loader's logic
* Support Python plugins that define __all__
* Use Lua to implement the plugin loader's logic
* Prevent the accidental escaping of globals with Lua plugins
* Misc bugfixes
* Translation updates:
- Basque
- Brazilian Portuguese
- Czech
- Friulian
- Galician
- Hebrew
- Hungarian
- Japanese
- Kannada
- Nepali
- Russian
- Spanish
- Turkish
Overview of Changes in libpeas 1.12.1
====================================
* Dist the GResources XML of the Python plugin loaders
Overview of Changes in libpeas 1.12.0
====================================
* Add easy python profiling support
* Disable GLib diagnostics in tests
* Fix various deprecation warning from GTK+
* Check return values from Python API
* [osx] Check for bundle before resource path
* Improved dependency-less support for OS X
* Misc bugfixes
* Translation updates:
- Assamese
- Bengali (India)
- Brazilian Portuguese
- Catalan
- Catalan (Valencian)
- Czech
- Danish
- French
- Galicians
- German
- Greek
- Gujarati
- Hebrew
- Hindi
- Hungarian
- Indonesian
- Kannada
- Korean
- Lithuanian
- Marathis
- Norwegian bokmål
- Oriya
- Polish
- Punjabi
- Russian
- Simplified Chinese
- Slovenian
- Spanish
- Swedish
- Tamil
- Telugus
- Traditional Chinese
Overview of Changes in libpeas 1.10.1
====================================
* Fix initializing Python loader from Python application
* Prevent and warn when trying to enable multiple loaders
* W32: Allow shared libs to be built
* Misc bugfixes
Overview of Changes in libpeas 1.10.0
====================================
* Remove support for gjs-based Javascript plugins
* Misc bugfixes
Overview of Changes in libpeas 1.9.0
====================================
* Misc bugfixes
* Translation updates:
- Tajik
Overview of Changes in libpeas 1.8.0
====================================
* Misc bugfixes
* Translation updates:
- Aragonese
- Portuguese
- Tadjik
- Uyghur
Overview of Changes in libpeas 1.7.0
====================================
* Add python3 loader
* Translation updates:
- Friulan
- Kannada
- Odia
Overview of Changes in libpeas 1.6.2
====================================
* Fix gjs single-include issues
* Translation updates:
- Slovak
Overview of Changes in libpeas 1.6.1
====================================
* Better SIGINT handling for python signals module
* Translation updates:
- Kannada
Overview of Changes in libpeas 1.6.0
====================================
* Remove the vala demo plugin
* Add min required and max allowed version for glib and Gdk
* Translation updates:
- Assamese
- Bengali (India)
- Galician
- Gujarati
- Hindi
- Latvian
- Marathi
- Polish
- Thai
- Türkçe
Overview of Changes in libpeas 1.5.0
====================================
* Warn if activate or deactivate are not implemented
* Find extension construct properties also in interface prerequisites
* Fix interface sorting in GJS and Seed
* Added peas_engine_prepend_search_path
* Added peas_plugin_info_get_external_data
* Misc bugfixes
* Translation updates:
- Greek
- Indonesian
Overview of Changes in libpeas 1.3.0
====================================
* Extensions can now implement multiple interfaces.
* Added GSettings API to PeasPluginInfo.
* Misc improvement and fixes.
* Translation updates:
- Russian
- Bulgarian
- Brazilian Portuguese
- Galicians
- Danish
- Serbian
- German
- Norwegian bokmål
- Polish
- Swedish
- Belarusian
- Telugu
- Catalan (Valencian)
- Catalan
- Hebrew
- Japanese
- Slovenian
- Czech
- Spanish
Overview of Changes in libpeas 1.2
====================================
* Fix using Python plugins.
* Misc improvement and fixes.
* Translation updates:
- Assamese
- Esperanto
- Telugu
Overview of Changes in libpeas 1.1.4
====================================
* Fix to work with PyGObject 3.
* Do not expose the peas_extension_set_call* API to GObject-Introspection.
* Disable log hooks used by PyGObject and Seed.
* Doc updates.
* Misc improvement and fixes.
* Translation updates:
- Asturian
- Thai
Overview of Changes in libpeas 1.1.3
====================================
* Do not expose the PeasExtension API using GObject-Introspection
* Misc improvement and fixes.
Overview of Changes in libpeas 1.1.2
====================================
* Doc updates.
* Link against pygobject 3.
* Do not cast pointers to unsigned integers.
* Translation updates:
- Indonesian
Overview of Changes in libpeas 1.1.1
====================================
* PeasExtension has been deprecated
* You should be able to use C plugins without GObject-Introspection.
* The plugin manager's disable plugins dialog will no longer show
hidden plugins.
Overview of Changes in libpeas 1.1.0
====================================
* Add support gjs-based Javascript extensions
* Seed Javascript extension support improvements
- Use the new() keyword to instantiate new Javascript extensions.
- Previously used "copied arrays" have been deprecated.
- Allow using prototypes when defining new extensions.
* Add peas_extension_set_foreach()
- Also deprecate the old peas_extension_set_call() method as a result.
* Drop support for Gtk+ 2
* Translation updates:
- Lithuanian
- Japanese
- Turkish
- Esperanto
- Persian
- Catalan (Valencian)
- Finnish
Introducing libpeas
===================
libpeas is a gobject-based plugins engine, and is targetted at giving every
application the chance to assume its own extensibility. It is currently used by
several Gnome applications like gedit and Totem.
It takes its roots in the old gedit plugins engine, and provides an extensive set
of features mirroring the desiderata of most of the applications providing an
extension framework.
Multiple extension points
-------------------------
One of the most frustrating limitations of the Gedit plugins engine was that it
only allows extending a single class, called GeditPlugin. With libpeas, this
limitation vanishes, and the application writer is now able to provide a set of
GInterfaces the plugin writer will be able to implement as his plugin requires.
On-demand programming language support
--------------------------------------
libpeas comes with a set of supported languages (currently, C, Lua 5.1,
Python 2 and Python 3). Those languages are supported through “loaders” which
are loaded on demand. What it means is that you only pay for what you use: if
you have no Python plugin, the Python interpreter won't be loaded in memory.
Of course, the same goes for the C loader.
Damn simple to use (or at least we try hard)
--------------------------------------------
Adding support for libpeas-enabled plugins in your own application is a matter
of minutes. You only have to create an instance of the plugins engine, and
call methods on the implementations of the various extension points. That's it,
no clock harmed.
A shared library for everyone
-----------------------------