\label{doc_news_2020-10-30_0_9_3_md_md_doc_news_2020_10_30_0_9_3}%
\Hypertarget{doc_news_2020-10-30_0_9_3_md_md_doc_news_2020_10_30_0_9_3}%

\begin{DoxyItemize}
\item guid\+: 9b9e8889-\/0c77-\/45ce-\/8441-\/8bdf26a110ac
\item author\+: Mihael Pranjić
\item pub\+Date\+: Fri, 30 Oct 2020 23\+:03\+:43 +0100
\item short\+Desc\+: TOML Storage Plugin
\end{DoxyItemize}

We are proud to release Elektra 0.\+9.\+3. This release again brings us a big step towards Elektra 1.\+0. It introduces the new soon-\/to-\/be-\/default storage plugin\+: TOML.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3228}{}\doxysection{What is Elektra?}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3228}
Elektra serves as a universal and secure framework to access configuration settings in a global, hierarchical key database. For more information, visit \href{https://libelektra.org}{\texttt{ https\+://libelektra.\+org}}.

You can also read the news \href{https://www.libelektra.org/news/0.9.3-release}{\texttt{ on our website}}

You can try out the latest Elektra release using our docker image \href{https://hub.docker.com/r/elektra/elektra}{\texttt{ elektra/elektra}}. This is the quickest way to get started with Elektra without compiling and other obstacles, simply run {\ttfamily docker run -\/it elektra/elektra}.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3229}{}\doxysection{TOML}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3229}
The highlight of this release is the \href{https://www.libelektra.org/plugins/toml}{\texttt{ TOML plugin}}. The TOML plugin has a similar huge feature set as the INI plugin, but is written in a much cleaner and more maintainable way using flex and bison. Furthermore, it follows the popular \href{https://toml.io}{\texttt{ TOML spec}}.

It has nearly no run-\/time dependency, it only needs {\ttfamily base64} if binary values are needed.

A huge thanks to Jakob Fischer for this amazing work!

\begin{quote}
Warning\+: In one of the following {\ttfamily 0.\+9.$\ast$} releases, INI will be removed and TOML will become the default plugin. If you are using INI, please migrate to TOML now. \end{quote}
\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3230}{}\doxysection{Plugins}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3230}
The following section lists news about the \href{https://www.libelektra.org/plugins/readme}{\texttt{ plugins}} we updated in this release.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3231}{}\doxysubsection{xmltool}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3231}

\begin{DoxyItemize}
\item Values of KDBStream changed to fit with elektra\+Key\+Flags\+: recompilation of application is needed. \+\_\+(\+Markus Raab)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3232}{}\doxysubsection{TOML}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3232}

\begin{DoxyItemize}
\item Added the \href{https://www.libelektra.org/plugins/toml}{\texttt{ TOML plugin}}, which can read and write TOML files using flex and bison. \+\_\+(\+Jakob Fischer)\+\_\+
\item Removed the {\ttfamily null} plugin dependency of the plugin. \+\_\+(\+Jakob Fischer)\+\_\+
\item The {\ttfamily type} metakey is now set for numbers on reading. \+\_\+(\+Jakob Fischer)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3233}{}\doxysubsection{dump}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3233}

\begin{DoxyItemize}
\item The {\ttfamily dump} plugin got a major update. The new version can read old files, but only write new files. The new files {\bfseries{cannot}} be read by the old version of the plugin and will result in a \char`\"{}version error\char`\"{} message. \+\_\+(Klemens Böswirth)\+\_\+
\item The new version stores keynames relative to the mountpoint, so exported {\ttfamily dump} files can now be imported into a different mountpoint. \+\_\+(Klemens Böswirth)\+\_\+
\item {\ttfamily dump} no longer writes unnecessary zero-\/bytes into files. This means that as long as all key-\/values are human-\/readable, so is the {\ttfamily dump} output. This makes {\ttfamily dump} usable for tests and demo purposes, as it is a very simple format closely modelled after a Key\+Set\textquotesingle{}s structure. This also makes it much easier to manually fix broken {\ttfamily dump} files. You only need a text editor most of the time. \+\_\+(Klemens Böswirth)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3234}{}\doxysection{Compatibility}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3234}
Elektra {\ttfamily 0.\+9.$\ast$} does not make any compatibility promises, as we want a clean 1.\+0.\+0 release. In this release, we did the following changes\+:


\begin{DoxyItemize}
\item {\ttfamily keyswitch\+\_\+t} renamed to elektra\+Key\+Flags. \+\_\+(\+Markus Raab)\+\_\+
\item {\ttfamily option\+\_\+t} renamed to elektra\+Lock\+Flags and elektra\+Lookup\+Flags. \+\_\+(\+Markus Raab)\+\_\+
\item {\ttfamily cursor\+\_\+t} renamed to elektra\+Cursor. \+\_\+(\+Markus Raab)\+\_\+
\end{DoxyItemize}

\begin{quote}
Note\+: We made this release before merging larger changes. Please expect more fundamental changes in the next releases. \end{quote}
\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3235}{}\doxysubsection{Errors}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3235}

\begin{DoxyItemize}
\item Improved error messages. \+\_\+(\+Markus Raab)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3236}{}\doxysection{Bindings}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3236}
Bindings allow you to utilize Elektra using \href{https://www.libelektra.org/bindings/readme}{\texttt{ various programming languages}}. This section keeps you up to date with the multi-\/language support provided by Elektra.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3237}{}\doxysubsection{JNA}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3237}

\begin{DoxyItemize}
\item Made examples work again. \+\_\+(\+Markus Raab)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3238}{}\doxysection{Scripts}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3238}

\begin{DoxyItemize}
\item Fix googletest framework path in debian configure script. \+\_\+(Mihael Pranjić)\+\_\+
\item The fish completion script does not fail any more, if you try to complete a simple command that expects a namespace. For example, completing
\end{DoxyItemize}


\begin{DoxyCode}{0}
\DoxyCodeLine{kdb ls ‸}

\end{DoxyCode}


with the tab key ({\ttfamily ⇥}) ({\ttfamily ‸} represents the current cursor position) should work correctly again. \+\_\+(René Schwaiger)\+\_\+


\begin{DoxyItemize}
\item The formatting scripts using prettier now use \href{https://www.npmjs.com/package/npx}{\texttt{ {\ttfamily npx}}}, which is included in {\ttfamily npm} v5.\+2.\+0 or newer. This allows us to specify an exact version of prettier to use. \+\_\+(Klemens Böswirth)\+\_\+
\item The {\ttfamily reformat-\/shell} script now accepts the alias {\ttfamily shfmt2}, in case {\ttfamily shfmt} v3 is needed for another project. \+\_\+(Klemens Böswirth)\+\_\+
\item The config for restyled.\+io now specifies the image to use for each formatter. This clearly reflects the version used for formatting. \+\_\+(Klemens Böswirth)\+\_\+
\item Add a release script to automate the release process. \+\_\+(\+Robert Sowula)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3239}{}\doxysection{Documentation}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3239}

\begin{DoxyItemize}
\item Updated \href{http://www.libelektra.org/docgettingstarted/goals}{\texttt{ GOALS.\+md}}. \+\_\+(\+Markus Raab)\+\_\+
\item Describe hierarchy and limitations of \href{https://www.libelektra.org/plugins/hosts}{\texttt{ hosts plugin}}. \+\_\+(\+Markus Raab)\+\_\+
\item The Doxygen PDF documentation now also requires the packages
\begin{DoxyItemize}
\item {\ttfamily stix} (part of {\ttfamily texlive-\/fonts-\/extra}) and
\item {\ttfamily stmaryrd} (part of {\ttfamily texlive-\/science} or {\ttfamily texlive-\/math-\/extra}). \+\_\+(René Schwaiger)\+\_\+
\end{DoxyItemize}
\item Write down some fundamental \href{https://www.libelektra.org/decisions/readme}{\texttt{ decisions}}, mostly about key names and key set structure. \+\_\+(Markus Raab in discussions with Klemens Böswirth)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3240}{}\doxysection{Tests}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3240}

\begin{DoxyItemize}
\item Fixed the {\ttfamily is\+\_\+not\+\_\+rw\+\_\+storage} function. \+\_\+(\+Lukas Kilian)\+\_\+
\item We now ensure that the {\ttfamily check\+\_\+import} and {\ttfamily check\+\_\+export} tests run for at least one plugin. \+\_\+(\+Lukas Kilian)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3241}{}\doxysection{Build}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3241}
\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3242}{}\doxysubsection{CMake}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3242}

\begin{DoxyItemize}
\item {\ttfamily make uninstall} also uninstalls symlinks. \+\_\+(\+Markus Raab)\+\_\+
\item {\ttfamily external-\/links.\+txt} and {\ttfamily extra\+\_\+install\+\_\+manifest.\+txt} are cleaned up at cmake runs. \+\_\+(\+Markus Raab)\+\_\+
\item Increased CTest timeout for {\ttfamily testscr\+\_\+check\+\_\+kdb\+\_\+internal\+\_\+suite} due to timouts reached on slow test machines. \+\_\+(Mihael Pranjić)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3243}{}\doxysubsection{Docker}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3243}

\begin{DoxyItemize}
\item Added Alpine Linux docker image with latest Elektra installed. This image is published on docker hub as \href{https://hub.docker.com/r/elektra/elektra}{\texttt{ elektra/elektra}}. We will update the image for each Elektra release such that novices can easily test Elektra without compiling or installing. \+\_\+(Mihael Pranjić)\+\_\+
\item Remove unused {\ttfamily libgtest-\/dev} from docker images. \+\_\+(Mihael Pranjić)\+\_\+
\item Add Ubuntu Focal (20.\+04) docker image. \+\_\+(\+Robert Sowula)\+\_\+
\item Update Alpine Linux docker image to 3.\+12.\+1. \+\_\+(Mihael Pranjić)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3244}{}\doxysection{Infrastructure}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3244}
\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3245}{}\doxysubsection{Cirrus}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3245}

\begin{DoxyItemize}
\item Update Free\+BSD images from version 11.\+3 to 11.\+4. \+\_\+(Mihael Pranjić)\+\_\+
\item Increase CPU count for containers to 4. \+\_\+(Mihael Pranjić)\+\_\+
\item Use Ruby 2.\+7 on mac\+OS. \+\_\+(Mihael Pranjić)\+\_\+
\item Export Python 3.\+8 path for mac\+OS builds. \+\_\+(Mihael Pranjić)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3246}{}\doxysubsection{Jenkins}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3246}

\begin{DoxyItemize}
\item Temporarily resolve cyclic dependency between go-\/elektra and libelektra builds. \+\_\+(Mihael Pranjić)\+\_\+
\item Add a new Jenkinsfile for release automation. \+\_\+(\+Robert Sowula)\+\_\+
\item Our release pipeline now also builds deb packages for Ubuntu Focal (20.\+04). \+\_\+(\+Robert Sowula)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3247}{}\doxysubsection{Travis}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3247}

\begin{DoxyItemize}
\item Update mac\+OS builds to use GCC 10, Ruby 2.\+7.\+1 and Xcode 12.\+2. \+\_\+(Mihael Pranjić)\+\_\+
\item Increase wait time on builds to fix build timeout errors (\char`\"{}\+No output has been received in the last 10m0s\char`\"{}). \+\_\+(Mihael Pranjić)\+\_\+
\item Export Python 3.\+9 path for mac\+OS builds. \+\_\+(Mihael Pranjić)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3248}{}\doxysection{Website}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3248}
The website is generated from the repository, so all information about plugins, bindings and tools are always up to date. Furthermore, we changed\+:


\begin{DoxyItemize}
\item Renamed the source folder of the website and removed the backend. \+\_\+(\+Markus Raab)\+\_\+
\item Use strict dependency injection for website modules. \+\_\+(\+Marvin Mall)\+\_\+
\item Added {\ttfamily package-\/lock.\+json} to ensure repeatable builds. \+\_\+(\+Marvin Mall)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3249}{}\doxysection{Decisions}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3249}
We are intensively working on Elektra 1.\+0. The last details of the semantics of Elektra 1.\+0 are in discussion. The decisions are \mbox{\hyperlink{doc_decisions_README_md}{documented}}, but some of them are not finalized.

If you are interested in the discussions, please \href{https://issues.libelektra.org/3520}{\texttt{ subscribe}}.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3250}{}\doxysection{Outlook}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3250}
We are currently working on following topics\+:


\begin{DoxyItemize}
\item Elektrify KDE \+\_\+(\+Dardan Haxhimustafa)\+\_\+, \+\_\+(\+Felix Resch)\+\_\+ and \+\_\+(Mihael Pranjić)\+\_\+
\item Elektrify GNOME \+\_\+(Mihael Pranjić)\+\_\+
\item Default TOML plugin \+\_\+(\+Jakob Fischer)\+\_\+
\item Improve Plugin Framework \+\_\+(\+Vid Leskovar)\+\_\+
\item Keyname Overhaul \+\_\+(Klemens Böswirth)\+\_\+
\item Continious Releases \+\_\+(\+Robert Sowula)\+\_\+
\item FUSE Integration \+\_\+(\+Alexander Firbas)\+\_\+
\item 1.\+0 API \+\_\+(\+Philipp Gackstatter)\+\_\+
\item Improve 3-\/way merge \+\_\+(Dominic Jäger)\+\_\+
\item Shell completion \+\_\+(Ulrike Schäfer)\+\_\+
\item Improve Elektra developer experience \+\_\+(\+Hani Torabi)\+\_\+
\item Ansible bindings \+\_\+(\+Thomas Waser)\+\_\+
\end{DoxyItemize}\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3251}{}\doxysection{Statistics}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3251}
We closed \href{https://github.com/ElektraInitiative/libelektra/milestone/24?closed=1}{\texttt{ 15 issues}} for this release.

About 17 authors changed 533 files with 26133 insertions(+) and 15834 deletions(-\/) in 545 commits.

Thanks to all authors for making this release possible!\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3252}{}\doxysection{Join the Initiative!}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3252}
We welcome new contributors! Read \href{https://www.libelektra.org/devgettingstarted/ideas}{\texttt{ here}} about how to get started.

As first step, you could give us feedback about these release notes. Contact us via our \href{https://issues.libelektra.org}{\texttt{ issue tracker}}.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3253}{}\doxysection{Get the Release!}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3253}
You can download the release from \href{https://www.libelektra.org/ftp/elektra/releases/elektra-0.9.3.tar.gz}{\texttt{ here}} or \href{https://github.com/ElektraInitiative/ftp/blob/master/releases/elektra-0.9.3.tar.gz?raw=true}{\texttt{ Git\+Hub}}

The \href{https://github.com/ElektraInitiative/ftp/blob/master/releases/elektra-0.9.3.tar.gz.hashsum?raw=true}{\texttt{ hashsums are\+:}}


\begin{DoxyItemize}
\item author\+: mpranj
\item name\+: elektra-\/0.\+9.\+3.\+tar.\+gz
\item size\+: 7540609
\item md5sum\+: 649fe13100266ab0e9a4cd19b99e2049
\item sha1\+: 02900ef5c8b24cf067930068c62f2ff09b44354d
\item sha256\+: 5022a6ebf004d892ded03fcf6eb3d223942a7fadd2d68f14d847d1f7f243e1d7
\end{DoxyItemize}

The release tarball is also available signed by Mihael Pranjic using Gnu\+PG from \href{https://www.libelektra.org/ftp/elektra/releases/elektra-0.9.3.tar.gz.gpg}{\texttt{ here}} or on \href{https://github.com/ElektraInitiative/ftp/blob/master/releases/elektra-0.9.3.tar.gz.gpg?raw=true}{\texttt{ Git\+Hub}}

The following GPG Key was used to sign this release\+: 9C18145\+C22\+F9\+E746\+D743\+DEC59\+ECC0\+F4\+CF0359\+C7B

Already built API-\/\+Docu can be found \href{https://doc.libelektra.org/api/0.9.3/html/}{\texttt{ here}} or on \href{https://github.com/ElektraInitiative/doc/tree/master/api/0.9.3}{\texttt{ Git\+Hub}}.\hypertarget{doc_news_2020-10-30_0_9_3_md_autotoc_md3254}{}\doxysection{Stay tuned!}\label{doc_news_2020-10-30_0_9_3_md_autotoc_md3254}
Subscribe to the \href{https://www.libelektra.org/news/feed.rss}{\texttt{ 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 \href{http://issues.libelektra.org}{\texttt{ on Git\+Hub}}.

\href{https://www.libelektra.org/news/0.9.3-release}{\texttt{ Permalink to this NEWS entry}}

For more information, see \href{https://libelektra.org}{\texttt{ https\+://libelektra.\+org}}

Best regards, \href{https://www.libelektra.org/developers/authors}{\texttt{ Elektra Initiative}} 