0.9.5 Release

We are proud to release Elektra 0.9.5.

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.

You can also read the news on our website

You can try out the latest Elektra release using our docker image elektra/elektra. This is the quickest way to get started with Elektra without compiling and other obstacles, simply run docker run -it elektra/elektra.

Highlights

kdbOpen Contracts

The signature of kdbOpen has been changed from

KDB *  kdbOpen (Key * errorKey);

to

KDB * kdbOpen(const KeySet * contract, Key *parentKey);

You can use kdbOpen (NULL, errorKey) to get the same behavior as before.

The new parameter contract is similar to what could be done via kdbEnsure (which has been removed). Currently, the contract allows you to mount global plugins and add data into the global KeySet (passed to all plugins) during kdbOpen. This alone is already quite powerful, but we might more functionality in future releases.

For now, there are three use cases for the contract parameter. All of them are covered by helper functions:

int elektraGOptsContract (KeySet * contract, int argc, const char * const * argv, const char * const * envp, const Key * parentKey, KeySet * goptsConfig);
int elektraIoContract (KeySet * contract, ElektraIoInterface * ioBinding);
int elektraNotificationContract (KeySet * contract);

With elektraGOptsContract you can mount and set up the gopts plugin used for command-line argument parsing. The other two functions are the new way to configure Elektra's notification feature.

For more information take a look at doc/dev/kdb-contracts.md

Plugins

The following section lists news about the plugins we updated in this release.

Cache

internalnotification

Dbus & Dbusrecv

YAML Smith & Yan LR

Zeromqsend & Zeromqrecv

Libraries

The text below summarizes updates to the C (and C++)-based libraries of Elektra.

Compatibility

Core

Io

Notification

Bindings

Bindings allow you to utilize Elektra using various programming languages. This section keeps you up-to-date with the multi-language support provided by Elektra.

JNA

Outlook

Ongoing work on bringing the JNA binding up to scratch and improving developer experience. Both for JNA binding API consumers, as well as future JNA binding contrubutors. (Michael Tucek)

Python & Lua

Add support for keyset.remove(key). (Manuel Mausz)

Tools

Examples

Documentation

Tests

Packaging

Build

CMake

Docker

Infrastructure

Cirrus

GitHub Actions

Jenkins

Website

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

Outlook

We are currently working on following topics:

Statistics

We closed 20 issues for this release.

About 19 authors changed 515 files with 19081 insertions(+) and 10602 deletions(-) in 375 commits.

Thanks to all authors for making this release possible!

Join the Initiative!

We welcome new contributors! Read here about how to get started.

As first step, you could give us feedback about these release notes. Contact us via our issue tracker.

Get the Release!

You can download the release from here or GitHub

The hashsums are:

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

The following GPG Key was used to sign this release: 12CC44541E1B8AD9B66AFAD55262E7353324914A

Already built API documentation can be found here or on GitHub.

Stay tuned!

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

If you also want to participate, or for any questions and comments please contact us via our issue tracker on GitHub.

Permalink to this NEWS entry

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

Best regards, Elektra Initiative