0.8.19 Release

What is Elektra?

Elektra solves a non-trivial issue: how to abstract configuration in a way that software can be integrated and reconfiguration can be automated. Elektra solves this problem in a holistic way. Read why Elektra for an explanation of why such a solution is necessary. It can be seen as a virtual file system for configuration files.

Highlights

More Tutorials

Elektra already has an open and welcoming environment, with many interesting discussions. It is our interest that we keep it that way. To make this a bit more formal we added a code of conduct.

But without good introductions, it is easy to get lost in such a large initiative like Elektra. Thus we focused on writing great tutorials for this release!

Thanks to Armin Wurzinger for pointing to areas of improvement. A big thanks to Marvin Mall, Kurt Micheli, Christoph Weber and Thomas Waser!

If you like the tutorials, we would love to read from you. Please feel free to start a discussion or ask a question. We also added a FAQ and updated CONTRIBUTING

Ruby Bindings

We now provide Ruby bindings for Elektra. The bindings are based on the C++ bindings and are generated by SWIG. A strong focus was put on a good integration with standard Ruby features and conventions, such as naming conventions, predicates, key and metadata iteration...

A short introduction shows some basic usage scenarios. More detailed examples can be found in the examples directory.

A big thanks to Bernhard Denner!

Cleanup of Core

Following methods were hidden (static) or removed:

These are dozens of methods and it was required to adapt the unit tests to work with the hidden methods.

A big thanks to Kurt Micheli!

Usability

Plugins

New

Major Enhancements

Development

In the perpetual effort to improve software quality, we made several improvements: (This information is mainly intended for Elektra’s developers.)

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).

It is now possible to enquiry which plugins provide a specific format. This needed changes in libtools, which got a new major revision. Changes in the plugin's contract are fully compatible: You can now use storage/ini instead of storage ini in infos/provides which gives you the information that ini is a storage format (and not anything else the plugin might provide). For compatibility reasons, the build system still adds storage ini even if only storage/ini is specified.

That means that kdb mount file.json /examples/json json still will find json plugins even if they are not called json but yajl.

Another breaking change in libtools is that appendNamespace was renamed to prependNamespace.

Error messages changed a bit, so if you tried to parse them, make sure to make the e of error case-insensitive ([eE]).

In the C++ binding, rewindMeta is now const and some methods to check if a key is in a namespace were added.

The intercept libraries were moved to a common folder. They can now be included or excluded like other BINDINGS. For consistency reasons the libraries were also renamed (libelektraintercept-fs.so and libelektraintercept-env.so.0), but symlinks allow you to link against their old names (lib/libelektraintercept.so and lib/libelektragetenv.so.0).

Package Maintainers

This information is intended for package maintainers.

Other new files are:

Changed files are:

Portability

Elektra should work on every system that has CMake and a C/C++ compiler.

For this release we increased portability to better work with macOS, CentOS 7, and OpenSuse 42.

A big thanks to Kai-Uwe Behrmann, Mihael Pranjić and Sebastian Bachmann.

Fixed Issues

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