Again we managed to release with many new features and plugins (lua, enum, list, crypto, csvstorage, conditionals, mathcheck, filecheck, logchange) many fixes, and especially with a vastly improved polished documentation.
The Documentation Initiative is a huge success and now the documentation of Elektra is in a state where someone (preferable a linux guru), never heard of Elektra, still can use Elektra only by reading man pages.
There are now many ways to show a man page:
kdb --help
or kdb help <command>
man kdb
Ian Donnelly wrote man pages for all the tools delivered with Elektra. Additionally, nearly all README.md are now also converted to man pages and also to Doxygen.
Kurt Micheli did an amazing work with a new doxygen filter. The filter allows all Elektra Markdown pages to be also included in the doxygen documentation. Thus all technical concepts are now explained in Markdown pages, this filter is essential.
But even more, the filter also includes all man pages written for the tools, giving a nice html view for them. (In addition to the Markdown rendering on GitHub).
Enjoy the result.
A big thanks to Kurt Micheli!
We shifted our goals a bit: We want to prefer simplicity to flexibility. Not because we do no like flexibility, but because we think we achieved enough of it. Currently (and in future) you can use Elektra:
But we cut flexibility regarding:
Raffael Pancheri again updated his qt-gui to version 0.0.9 (beta) with important of fixes and improvements:
A bit thanks to Raffael Pancheri!
As always, the API and API is fully forward-compatible, i.e. programs compiled against an older 0.8 versions of Elektra will continue to work.
The behavior of some plugins, however, changed:
ENABLE_CXX11 does not exist anymore, it is always on. We do not care about 199711L compilers anymore, which makes development easier, without losing any actually used platform.
Some programs that are only used in-source are not installed anymore. (by Pino Toscano)
Python and Lua plugins are enabled now in -DPLUGINS=ALL
.
Python3 plugin was renamed to python.
Manuel Mausz add a lightweight alternative to the python plugin: the lua plugin. In a similar way, someone can write scripts, which are executed on every access to the key database.
To mount a lua based filter, you can use:
kdb mount file.ini /lua ini lua script=/path/to/lua/lua_filter.lua
Even though it works well, it is classified as technical preview.
Thanks to Manuel Mausz for this plugin!
In this technical preview, Peter Nirschl demonstrates how a plugin can encrypt Elektra’s values. In test cases it is already able to do so, but for the end user an easy way for key derivation is missing.
A big thanks to Peter Nirschl!
The INI plugin got a near rewrite. Now it handles many situations better, has many more options and features, including:
Thanks to Thomas Waser for this work!
This plugin allows you to check and even calculate keys from
other keys using an polish prefix notation.
It supports the typical operations + - / *
and
<, <=, ==, !=, =>, >, :=
. To mount, check and
calculate values, one would use:
kdb mount mathcheck.dump /example/mathcheck dump mathcheck
kdb setmeta user/example/mathcheck/k check/math "== + a b"
kdb setmeta user/example/mathcheck/k check/math ":= + a b"
For details see the documentation.
Thanks to Thomas Waser for this important plugin!
Currently, Elektra has some limitations on how many plugins can be added to certain placement. Because of the rapidly growing number of plugins, some combinations are not possible anymore.
This plugin tackles the issue, by delegating the work to an arbitrary number of subplugins. As a bonus, it works lazily and thus might avoid the loading of some plugins all together.
Thanks to Thomas Waser for this plugin!
Brings if
inside Elektra. It lets you check if some keys have
the values they should have.
kdb mount conditionals.dump /tmount/conditionals conditionals dump
kdb set user/tmount/conditionals/fkey 3.0
kdb set user/tmount/conditionals/hkey hello
kdb setmeta user/tmount/conditionals/key check/condition "(hkey == 'hello') ? (fkey == '3.0')" # success
kdb setmeta user/tmount/conditionals/key check/condition "(hkey == 'hello') ? (fkey == '5.0')" # fail
For details see the documentation.
Again, thanks to Thomas Waser for this plugin!
You can now mount csv-files. To mount test.csv
simply use:
kdb mount test.csv /csv csvstorage
There are many options, e.g. changing the delimiter, use header for the key names or predefine how the columns should be named. For details see the documentation.
Thanks to Thomas Waser!
This plugin lets you validate lineendings, encodings, null, bom and unprintable characters.
The also new plugin lineendings is already superseded by the filecheck plugin.
Thanks to Thomas Waser!
The Enum plugin checks string values of Keys by comparing it against a list of valid values.
Thanks to Thomas Waser!
We are proud that Machinekit starts using Elektra.
Alexander Rössler is digging into all details, and already enhanced the DBUS Plugin for their needs. DBus now can emit a message for every changed key.
A big thanks to Alexander Rössler!
kdb rm system/elektra/version
)kdb set
avoids fetching unnecessary namespacesYou can download the release from here and now also here on GitHub
This release tarball now is also available signed by me using gpg
already built API documentation 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 mail elektra@markus-raab.org.
For more information, see https://libelektra.org
Btw. the whole release happened with elektrify-getenv enabled.
Best regards, Markus