We are proud to release Elektra 0.8.23.
In 717 commits 11 authors changed 835 files with 31144 insertions(+), 21773 deletions(-).
Elektra serves as a universal and secure framework to access configuration settings in a specified, 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
To keep persistent configuration settings in sync with the configuration settings of applications, notifications are needed. For notifications it is important that they do not block the execution of the applications. In Elektra we achieve this using transport plugins.
Elektra's notification feature has received its first transport plugin pair:
D-Bus.
Transport plugins provide a link between applications using Elektra.
These plugins send and receive notifications when a key is modified within the
key database.
The existing dbus
plugin has been modified to use an asynchronous I/O binding
for sending messages, if available.
The new dbusrecv
plugin is responsible for receiving messages sent from the
dbus
plugin and other sources with the same
message format.
For more details see the notification tutorial or the example applications.
Thanks to Thomas Wahringer.
The goal of the Web UI is to provide safe and unified access to all configuration settings of a system. Different to other UIs, it generates its interface according specifications as found in Elektra.
For example, if a configuration setting only has a number of choices, you get exactly these choices within the user interface.
To get outstanding usability, Web UI now provides:
Furthermore:
Note that new version of the Web UI requires Elektra 0.8.23 or later.
Thanks to Daniel Bugl.
We started to overhaul our build system to improve build times and responsiveness. It focuses heavily on containerisation to improve hardware utilization.
If you are interested in #devops
have a look at our
Jenkinsfile.
Daily builds Debian packages for Stretch are available again in our
stretch repository.
Add it to your sources.list
:
deb [trusted=yes] https://debian-stretch-repo.libelektra.org/ stretch main
deb-src [trusted=yes] https://debian-stretch-repo.libelektra.org/ stretch main
Thanks to Lukas Winkler.
We added even more functionality, which could not make it to the highlights:
kdb ls
now has -0
option to allow key names with newlines (needed for Web UI)We improved the documentation in the following ways:
.
at end of short helpcheck/type/min
and check/type/max
are deprecatedAs 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).
We removed:
12
from kdb mv
from docuWe changed:
kdb get
, kdb mv
and kdb cp
now use error code 11
if keys are not foundkdb cp
and kdb mv
now fail instead
of doing something unexpected, thanks to René Schwaiger for reportingShell scripts:
These notes are of interest for people maintaining packages of Elektra:
spec
and list
plugin is required.
So if ENABLE_TESTING
is checked, CMake checks the presence of a storage,
a resolver, the list and the spec plugin,
thanks to René SchwaigerWe added:
kdbnotificationinternal.h
, kdbioplugin.h
.kdbio_glib.h
and kdbio_uv.h
libelektra-dbusrecv.so
build-web
, run-elektrad
, and run-web
testmod_dbusrecv
ENABLE_ASAN
in the constants pluginkdb-run-elektrad.1
and kdb-run-web.1
We removed:
Base64.pdf
is not installed anymoredoc_docker_jenkinsnode_README_md.3elektra
,
doc_docker_README_md.3elektra
, and doc_vagrant_README_md.3elektra
The website is generated from the repository, so all information about plugins, bindings and tools are always up-to-date. Furthermore, we changed:
These notes are of interest for people developing Elektra:
. run_env
is a script to be sourced from the build directory.
It sets environment variables, so that Elektra from the build
directory is used (instead of the installed one).
All current versions of Clang-Format (6.0+) and the outdated Clang-Format 5 will now produce exactly the same output for the whole codebase, thanks to René Schwaiger.
To make enums nicely formatting, make sure at least one member is documented.
You can now add a Markdown Shell Recorder test for a plugin
via the CMake function add_plugin
by adding TEST_README
.
Furthermore TEST_REQUIRED_PLUGINS
allows us to specify which
additional plugins are required,
thanks to René Schwaiger
const
was added to exceptions in catch blocks
thanks to René Schwaiger
We now mention to read doc/DESIGN.md in the contributing guidelines.
The CMake functions
add_plugin
add_msr_test
add_msr_test_plugin
, and the newadd_shell_recorder_test
now allow you to specify a list of required plugins for Shell Recorder and Markdown Shell Recorder tests.
The Markdown Shell Recorder now compares the whole output of stderr
with the text following the directive STDERR:
,
thanks to René Schwaiger
You can now leave the text following the directive STDERR:
in a Markdown Shell Recorder test empty:
true # Print nothing to `stderr`
# STDERR:
. The Markdown Shell Recorder will then check if the command printed nothing to the standard error output.
The Shell Recorder now also prints the content of the protocol file if a test was unsuccessful or you used the command switch -p
,
and always cleans up the protocol,
thanks to René Schwaiger
We added an Markdown Shell Recorder test for the Constants plugin.
The Markdown Shell Recorder now prints the path of the test file. thanks to René Schwaiger
The Haskell binding now explicitly requires GHC installed with a minimum version of 8.0.0 during cmake thanks to René Schwaiger and Lukas Winkler
If any of the tests in make run_memcheck
fail valgrind will now set an exit-code which will get picked up by make,
thanks to Lukas Winkler
We introduced Git reference repositories to save I/O on our build system, thanks to Lukas Winkler
Set LD_LIBRARY_PATH
in all tests removing the need to specify it for running ctest,
thanks to Lukas Winkler
Provide the RUN_SERIAL
property to all tests that can not be run in parallel,
thanks to Lukas Winkler
Speeding up your test runs via ctest -j
is now possible,
thanks to Lukas Winkler
We now disable the Xerces plugin if you use GCC with enabled ASAN to build Elektra. This update makes sure that you do not build the plugin with compilation settings that are known to cause problems.
Documentation and debugging capabilities of Markdown Shell Recorder were improved.
We added style guidelines for CMake code to
doc/CODING.md
.
Many problems were resolved with the following fixes:
dump
, resolver
, list, and spec), all test of the test suite now finish successfully again,
thanks to René Schwaigerkdb-test
type
next to check/type
-Werror
),
thanks to René SchwaigerElektra Initiative are the people behind Elektra. Our goal is to build up expertise with configuration settings and improve the situation in the FLOSS landscape. To learn more about the needs of configuration-wise non-trivial FLOSS applications, we have workshops. After a successful workshop with the LCDproc's maintainer, the next Workshop will be with people from KDE.
We will use the opportunity of Akademy being in Vienna. We already got positive feedback from kconfig maintainers (David Faure and Aleix Pol).
If you are interested, you can sign up. We are looking forward to an informative, interactive and interesting workshop!
We are currently working on following topics:
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 GitHub
Already built API documentation can be found online or GitHub.
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 elektra@markus-raab.org.
For more information, see https://libelektra.org
Best regards, Elektra Initiative