0.8.17 Release

Survey

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:

Why should I use Elektra?

The three main points relevant for most people are:

  1. Even though Elektra provides a global keydatabase configuration files stay human read- and writable which allows us to integrate unmodified software.
  2. Flexible adoption on how the configuration is accessed via plugins: you can run arbitrary code, e.g. do a git commit or log/notify when configuration files are changed.
  3. Elektra allows you to specify configuration values:

Read more about Why using Elektra, which also contains since this release unique features, further reasons and limitations.

For a small demo see here

asciicast

Highlights

Beginner friendly tasks

In this release starting developing Elektra gets easier:

For details about ELEKTRA_DEBUG and CMake, see individual points below.

Find-Tools

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.

Developers should now add MetaData for their scripts..

Thanks to Kurt Micheli!

macOS Support

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:

jenkins

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!

Fixes

Rework Add Plugin

CMake

for maintainers:

for developers:

and fixes:

See more about changes to plugin adding in CMake in the plugin decision.

Experimental GSettings support

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.

Common Provider Names

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

New Cachefilter Plugin

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.

Qt GUI 0.0.12

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:

Thanks to Gabriel Rauter and Raffael Pancheri for the engagement in improving qt-gui.

Colored kdb tool

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.

Documentation

ELEKTRA_DEBUG build

ENABLE_DEBUG now enables a debug build for Elektra. It has nothing to do with debug symbols, but:

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:

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

Other

Compatibility

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:

Renamed files:

Removed files:

Temporarily removed files:

Get It!

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

Stay tuned!

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.

Permalink to this NEWS entry

For more information, see https://libelektra.org

Best regards, Markus