Elektra  0.8.25
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:

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!

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

scripts/copy-template -p pluginname

, where pluginname specifies the name of your new plugin. *(René Schwaiger)*

Crypto

CSVStorage

Directory Value

fcrypt

fstab

Haskell

Interpreter Plugins

JNI

HexNumber

List

mINI

network

Type

Regex Dispatcher

Typechecker

Tcl

YAJL

YAML CPP

# Mount plugin
kdb mount config.yaml /tests/yamlcpp yamlcpp
# Store single key-value pair
kdb set /tests/yamlcpp/level1/level2/level3 value
# Old behavior
kdb ls /tests/yamlcpp
#> user/tests/yamlcpp/level1
#> user/tests/yamlcpp/level1/level2
#> user/tests/yamlcpp/level1/level2/level3
# New behavior
kdb ls /tests/yamlcpp
#> user/tests/yamlcpp/level1/level2/level3

. *(René Schwaiger)*

kdb mount test.yaml user/tests/yamlcpp yamlcpp
kdb setmeta user/tests/yamlcpp/array array ''
kdb export user/tests/yamlcpp/array yamlcpp
#> []
kdb mount test.yaml user/tests/yamlcpp yamlcpp
kdb set user/tests/yamlcpp/null
kdb setmeta user/tests/yamlcpp/null comment 'Null Key'
kdb export user/tests/yamlcpp/null yamlcpp
#> !<!elektra/meta>
#> - ~
#> - comment: Null Key

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:

  1 commit  by Mihael Pranjic <mpranj@limun.org>
  2 commits by Thomas Waser <thomas.waser@libelektra.org>
  7 commits by Michael Zronek <michael.zronek@gmail.com>
 12 commits by Kurt Micheli <e1026558@student.tuwien.ac.at>
 17 commits by Peter Nirschl <peter.nirschl@gmail.com>
 21 commits by Klemens Böswirth <k.boeswirth+git@gmail.com>
197 commits by Markus Raab <elektra@markus-raab.org>
102 commits by Thomas Wahringer <thomas.wahringer@libelektra.org>
117 commits by Daniel Bugl <me@omnidan.net>
265 commits by Lukas Winkler <derwinlu+git@gmail.com>
249 commits by Armin Wurzinger <e1528532@student.tuwien.ac.at>
744 commits by 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-Docu 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 elekt.nosp@m.ra@m.nosp@m.arkus.nosp@m.-raa.nosp@m.b.org.

Permalink to this NEWS entry

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

Best regards, Elektra Initiative