0.8.24 Release

We are proud to release Elektra 0.8.24.

What is Elektra?

Elektra serves as a universal and secure framework to access configuration settings in a global, hierarchical key database. For more information, visit https://libelektra.org.

For a small demo see here:

asciicast

You can also read the news on our website

Highlights

Elektra Web 1.6

The new release of Elektra Web features many UX improvements from the usability test!

Elektra Web 1.6 video

Try it out now on: http://webdemo.libelektra.org/

1.5 changelog:

1.6 changelog:

Thanks to Daniel Bugl.

Notifications

Elektra's notification feature which allows applications to keep persistent configuration settings in sync with the key database and other applications was greatly improved with this release:

More details can be found in this news. Check out the updated notification tutorial and notification examples (polling, async and reload.

KDE Workshop

At Akademy 2018 we had a successful Config Workshop.

We generally agreed that misconfiguration is important and the situation in FLOSS needs to improve. We discussed how Elektra can be used in KDE and came up with the idea that KConfig could be moved to a Elektra plugin. Then KConfig could be patched to use Elektra instead. This would lead to the situation that KDE users would have the same user experience with the advantages of Elektra, like:

For more information see the Slides

Type System Prototype

Elektra supports specifying the semantics of keys via metakeys in the spec namespace. An example is the metakey check/range which can be used to specify that a key only holds numbers in a given range. Another metakey is check/enum which only allows specific keywords to be the content of a key. Up to now these semantics are only being checked at runtime. Therefore a type system was developed to be able to check configuration specifications statically. As an example, it would detect when one accidentally adds both a range and an enum check if their possible contents are not compatible with each other.

The type system is available as a plugin that gets mounted along with a configuration specification into the spec namespace. Furthermore we include a set of type definitions for commonly used metakeys such as check/range, check/enum, check/validation, fallback or override.

For more details see the typechecker readme

Thanks to Armin Wurzinger.

Chef Cookbook

Next to the Puppet Resource Type we now also prepared a Chef Cookbook which allows us to use Elektra from within Chef.

For example, to set mount a configuration file, you can use:

kdbmount 'system/hosts' do
    file '/etc/hosts'
    plugins 'hosts'
    action :create
end

And to add an hosts entry, you can use:

kdbset '/hosts/ipv4/showthatitworks' do
    namespace 'system'
    value '127.0.0.33'
    action :create
end

Note that currently kdb is invoked and Elektra needs to be installed for managed systems.

Thanks to Michael Zronek and Vanessa Kos.

Plugins

CCode

CPP Template

Crypto

CSVStorage

Directory Value

fcrypt

fstab

Haskell

Interpreter Plugins

JNI

HexNumber

List

mINI

network

Type

Regex Dispatcher

Typechecker

Tcl

YAJL

YAML CPP

YAML Smith

Yan LR

ZeroMQ transport plugins

Misc

Libraries

General

pluginprocess

Bindings

Notifications

Tools

Scripts

Copy Template

Documentation

Tests

(Markdown) Shell Recorder

General

Build

As written in the previous release notes:

Another important change is:

CMake

Docker

Infrastructure

Jenkins

Travis

Compatibility

As always, the ABI and API of kdb.h is fully 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 programs without errors (API).

Following changes were made:

The new plugins are:

The new tool is: kdb-find

Website

The website is generated from the repository, so all information about plugins, bindings and tools are always up-to-date.

Outlook

We are currently working on following topics:

Statistics

Following persons made in total 1734 commits:

Commits Author
1 Mihael Pranjic mpranj@limun.org
2 Thomas Waser thomas.waser@libelektra.org
7 Michael Zronek michael.zronek@gmail.com
12 Kurt Micheli e1026558@student.tuwien.ac.at
17 Peter Nirschl peter.nirschl@gmail.com
21 Klemens Böswirth k.boeswirth+git@gmail.com
197 Markus Raab elektra@markus-raab.org
102 Thomas Wahringer thomas.wahringer@libelektra.org
117 Daniel Bugl me@omnidan.net
265 Lukas Winkler derwinlu+git@gmail.com
249 Armin Wurzinger e1528532@student.tuwien.ac.at
744 René Schwaiger sanssecours@me.com

In total there were 792 files changed with 27677 insertions(+) and 39176 deletions(-).

Get It!

You can download the release from here or GitHub

The hashsums are:

The release tarball is also available signed by Markus Raab using GnuPG from here or on GitHub

Already built API documentation can be found online or GitHub.

Stay tuned!

Subscribe to the RSS feed to always get the release notifications.

For any questions and comments, please contact the issue tracker on GitHub or Markus Raab by email using elektra@markus-raab.org.

Permalink to this NEWS entry

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

Best regards, Elektra Initiative