First off: We created a survey questionnaire to gather more knowledge about the relevance of configuration systems. If you are involved in the development of free and open source software (FLOSS) you are the person we are looking for.
It would be a great help if you take this survey. It will be available till 18.07.2016 (anywhere on earth).
For every thoroughly and not anonymously finished survey € 40 cent will be donated to one of the following organizations of your choice:
The three main points relevant for most people are:
git commit
or log/notify when configuration files
are changed.Read more about Why using Elektra, which also contains since this release unique features, further reasons and limitations.
For a small demo see here
In this release starting developing Elektra gets easier:
ELEKTRA_DEBUG
adds run-time checks and makes stack traces
as if Elektra would not use pluginsCMakeLists.txt
for plugins got simplified, in most cases it
should be not more than calling a single function,
even if unit tests and test data are presentFor details about ELEKTRA_DEBUG
and CMake, see individual points below.
There is now a fine collection of external scripts which can
executed by kdb + <script>
. The new script kdb find-tools
provides full text search over the metadata as provided by
the scripts.
kdb find-tools -b BRIEF
to search for a short text.kdb find-tools -a AUTHOR
to search for an author.kdb find-tools -d DATE
to search for a creation date.kdb find-tools -e EXECUTE
to search for a type.Developers should now add MetaData for their scripts..
Thanks to Kurt Micheli!
Because of its POSIX support one might think it would be trivial to support macOS. Unfortunately there were many small issues, especially in the regular expression handling and the filesystem.
Nevertheless we finally fully support macOS and the newly added travis build server makes sure it will stay this way.
A huge thanks to Manuel Mausz and Mihael Pranjić for fixing the issues and setting up travis:
.so
)
thanks to Mihael PranjićNow (nearly) every build job can be triggered from Pull Requests. For example:
For a full list see here.
Thanks to Mihael Pranjić for the setup!
include <vector>
as needed by some compilers,
a big thanks to Andreas Bombe for the non-maintainer
upload in Debian to fix it for upcoming Debian releaseqsort
.)ini
.kdb export
also works under MinGW,
thanks to Gabriel Rauteradd_plugin*
oncefor maintainers:
for developers:
add_plugin
remove SHARED_SOURCES, and add ADD_TEST
and INSTALL_TEST_DATA
.and fixes:
ADD_TEST
in add_plugin
.~
.lua
executable.See more about changes to plugin adding in CMake in the plugin decision.
As part of the ongoing work of the bachelor thesis
Integration of Elektra into the GNOME desktop environment
we now have experimental support for Elektra as a GSettings backend on Linux
(We will look into getting macOS support on a later date).
When installed, applications using GSettings default backend will write to Elektra
below the /sw
key. The GSettings bindings are intended as a preview version so
please do not use them in a production system.
To build the GSettings backend you have to explicitly add the binding even if ALL
is given.
e.g. -DBINDINGS=gsettings
-DBINDINGS="ALL;gsettings"
All needed core functionality of a GSettings backend is already implemented.
This includes notification support if you have your /sw
mounted with the dbus plugin.
Please report any bugs you encounter.
For further information regarding the status of the implementations please refer to the corresponding README and ticket.
Mounting now supports to mount commonly known names even if the name is not a plugin.
If more than one plugin is available automatically the best one is selected.
The selection process works by annotating different qualities of the plugins,
see infos/status
in the README.md of individual plugins.
E.g. to mount a file using a json plugin (called yajl because of the library's name it build upon)
kdb mount file.json json
stores filtered keys internally so that they do not get accidentally lost and can be written to the storage again without the user having to remember including them in the writeout
The longer term goal is to add such global plugins per default, so that the usage of the API is easier.
For now you can simply add it using:
kdb global-mount cachefilter
Thanks to Marvin Mall.
The Qt GUI receives new features and a better gnome integration. Its version number was updated to 0.0.12 (beta). Major features:
Bug fixes:
Other improvements:
elektra-qt-editor
binary so both the desktop files TryExec works
and people not starting the gui trough kdb qt-gui
have a speaking name
in their process list.Elektra Editor
with Elektra Qt Editor
so that
we use the same name in all places apart from the tools binary.guisettings
. We also added a private function in guisettings
to
get and set settings with a boolean value.Thanks to Gabriel Rauter and Raffael Pancheri for the engagement in improving qt-gui.
A big thanks to Gabriel Rauter for improving the user experience with the kdb tool.
On errors and in kdb info
it was often quite hard to find the relevant text.
Now important parts are highlighted by bold or colorful text. This helps to spot the important information immediately without sacrificing information that would be important for a detailed analysis.
Every tool now has the option --color
and -C
which is set to auto
per default.
By writing to:
kdb set user/sw/elektra/kdb/#0/color off
one can go back to previous behavior.
elektraPluginGetData
,
thanks to Marvin MallksCopy
, ksPop
, kdbGet
and kdbSet
API descriptionENABLE_DEBUG now enables a debug build for Elektra. It has nothing to do with debug symbols, but:
RTLD_NODELETE
)ENABLE_DEBUG
is recommended for every developer, even if you are not
modifying Elektra itself. The assertions will give you hints on API misusage.
For example, keyNew
was known to be error-prone. ENABLE_DEBUG
now will report
wrong parameters by an assertion.
The old options ELEKTRA_DEBUG
and ELEKTRA_VERBOSE
are not available anymore.
Thanks to:
RTLD_NODELETE
-DENABLE_DEBUG=ON
The constants plugin was updated to provide cmake/ENABLE_LOGGER
cmake/ENABLE_DEBUG
and will no longer provide cmake/ELEKTRA_DEBUG_BUILD
cmake/ELEKTRA_VERBOSE_BUILD
LD_LIBRARY_PATH
is added to lua and python bindings needed for macOS,
thanks to Mihael PranjićNi_
namespace are now in elektraNi_
cmake/BUILTIN_PLUGIN_FOLDER
, BUILTIN_DATA_FOLDER
and BUILTIN_EXEC_FOLDER
were added.seq
as it is not available in some *BSD
,
thanks to Mihael PranjićAs always, the ABI and API is fully forward- and backward-compatible, i.e. programs compiled against an older 0.8 version of Elektra will continue to work (ABI) and you will be able to recompile every program without errors (API). This time you can even compile programs against 0.8.17 and run with 0.8.16.
For the qt-gui the svg module is added as dependency.
New and missing files in the installation:
elektra-qt-editor
is installed in the path (needed for TryExec in Desktop file)libelektrasettings.so
will be installed if gsettings
binding is enabledlibelektra-cachefilter.so
is the new cachefilter plugintool_exec/testmod_cachefilter
is its unit testtool_exec/find-tools
is a new python script to find other toolsappdata/org.libelektra.elektra-qt-editor.appdata.xml
icons/hicolor/scalable/apps/elektra-symbolic.svg
share/man/man1/kdb-find-tools.1
Renamed files:
applications/org.elektra.elektra-qt.desktop
got renamed to
applications/org.libelektra.elektra-qt-editor.desktop
.Removed files:
hosts
, ini
, lineendings
,Temporarily removed files:
testmod_lua
, testmod_python
and testmod_python2
do not work in a shared build
and are temporarily disabled if BUILD_SHARED
is enabled.
Also their test data is affected.You can download the release from here and also here on GitHub
This release tarball now is also available signed by me using gpg
already built API documentation can be found here
Subscribe to the RSS feed to always get the release notifications.
For any questions and comments, please contact the Mailing List the issue tracker on GitHub or by email elektra@markus-raab.org.
For more information, see https://libelektra.org
Best regards, Markus