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.
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
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 meta data 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!
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!
kdb set: do not print what was not done
kdb editorhandles non-modified files (will not do anything)
kdbdoes, can be disabled with
-vnow tells even more details (e.g.
kdb-importoutputs the key about to import)
format=% -> %to have
key -> value.
ipv6keys. (Thanks to Felix Berlakovich)
In the perpetual effort to improve software quality, we made several improvements: (This information is mainly intended for Elektra’s developers.)
ELEKTRA_ASSERTprints better messages on failure and does not need
VERBOSEmacro at many places.
outputs(The file is generated in the build directory and contains all external-links. To validate them, use
./scripts/link-checker) (Thanks to Kurt Micheli)
markdownlinkconverterhandles directories correctly (using
stat). (Thanks to Kurt Micheli)
array. (Thanks to Marvin Mall)
limited(Thanks to Marvin Mall)
infos/statusand allows devs to easily add/rem entries. (Thanks to Kurt Micheli)
configurable(Thanks to Kurt Micheli)
PLUGINargument and make it useful also for other library symlinks.
ENABLE_DEBUG. (Thanks to Marvin Mall)
ENABLE_DEBUGalso works with
ENABLE_ASANnow allows devs to additionally enable sanitizers. Thanks to Gabriel Rauter.
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
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
That means that
kdb mount file.json /examples/json json still will find
json plugins even if they are not called
Another breaking change in
libtools is that
appendNamespace was renamed
Error messages changed a bit, so if you tried to parse them, make sure
to make the
e of error case-insensitive (
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
They can now be included or excluded like other
For consistency reasons the libraries were also renamed
but symlinks allow you to link against their old names
This information is intended for package maintainers.
BINDINGS=ALL. It is recommended to use
SWIGbindings instead, which will be added with
BINDINGS. They will be added on glibc systems where
TARGET_DOCUMENTATION_TEXT_FOLDERwas added for that purpose. The files are:
Other new files are:
EXPERIMENTAL, not added by default, but with
site_ruby/_kdb.so(ruby binding, only in
testmod_fcrypt(test binaries in
Changed files are:
libelektragetenv.so., but still available as symlink)
libelektraintercept.so, but still available as symlink)
Elektra should work on every system that has
cmake and a
For this release we increased portability to better work with macOS, CentOS 7, and OpenSuse 42.
cmake(most parts still work with version 2)
A big thanks to Kai-Uwe Behrmann, Mihael Pranjić and Sebastian Bachmann.
~paths (Thanks to Thomas Waser)
ENABLE_DEBUG#988 (Thanks to Thomas Waser)
KDBenvironment variable in shell tests and fix counting of tests for
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-Docu can be found here
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 email@example.com.
Permalink to this NEWS entry
For more information, see https://libelektra.org
Best regards, Markus