<commit_before># 0.8.20 Release (NOT YET RELEASED)

RELEASE NOTES ARE IN PREPARATION.
RELEASE DID NOT HAPPEN YET.

(release notes written till 5b73f740e7feeb13a1a71ec5395a8afd28fdc806 PAM?)

- guid: 547d48e2-c044-4a8e-9d32-ca6b6fb914d9
- author: <NAME>
- pubDate: Fri, 20 Oct 2017 21:08:07 +0200
- shortDesc:



## What is Elektra?

Elektra serves as a universal and secure framework to access configuration
parameters in a global, hierarchical key database.
For a small demo see here:

[![asciicast](https://asciinema.org/a/cantr04assr4jkv8v34uz9b8r.png)](https://asciinema.org/a/cantr04assr4jkv8v34uz9b8r)

## Highlights

- libelektra.org: new website+managed by libelektra
- plugin+bindings for Haskell and Ruby
- improved shell completion
- new plugins: yamlcpp, camel, mini, date, file, range,
               multifile, xerces, ipaddr

### <<ONE POINT PER HIGHLIGHT>> (TODO, not yet done)

### libelektra.org

Unfortunately this release is delayed.  The reason for this is, that
our community server was compromised and we needed to reinstall everything
from scratch.

We took advantage of the situation, and reinstalled everything properly
managed by [puppet-libelektra](https://github.com/ElektraInitiative/puppet-libelektra).

Thanks to <NAME>, for rescuing us from the difficult situation.

TODO, not yet written

All our pages are now available via https.

  (was already announced earlier, but this is the first time
   that a release of Elektra includes the source code of
   the website)

The backend uses Elektra itself.

Thanks to <NAME> for the new website.

#### Haskell and Ruby

Ruby includes libtools bindings.

### Shell Completion

The new tool `kdb complete` suggests how to complete an Elektra path.
It considers mountpoints and bookmarks correctly.

Thanks to <NAME>.

The new `kdb complete` tool is now used for zsh and fish bindings.

Thanks to <NAME> and <NAME>.

### New Plugins

TODO: file, range, ipaddr, yamlcpp, camel, mini

The date plugin supports validation of dates according to three standards:

* `RFC2822`
* `ISO8601`
* `POSIX`

The [multifile plugin](https://www.libelektra.org/plugins/multifile)
allows us to integrate many configuration files via globbing with
a single mount command. It supports `.d` configuration directories
as often used today.

The [xerces plugin](https://www.libelektra.org/plugins/xerces)
supplants the [xmltool plugin](https://www.libelektra.org/plugins/xmltool)
and allows us to use XML files not following a specific schemata.
Attributes are mapped to Elektra's metadata, multiple keys with the
same names are mapped to arrays.


## Documentation

- extended [FAQ](/doc/help/elektra-faq.md)
- Added "Hello, Elektra" and logging tutorial,
  thanks to René Schwaiger
- <NAME> (@krit0n) improved some tutorials
- pass options to PDFLaTeX compiler,
  thanks to René Schwaiger
- small fixes, thanks to <NAME>
- fix many spelling mistakes, use American english, fix formatting,
  fix+add links, unify title style, fix code blocks, add titles,
  fix PDF manual
  thanks to René Schwaiger

## Features

- conditionals: allow multiple assigns and conditions
- jna bindings: greatly improved, now uses maven+doxygen
  thanks to <NAME>
- improve curlget plugin, is now able to upload configuration files
  thanks to <NAME> and <NAME> (CMake fixes)
- kdb rmmeta, thanks to <NAME>
- fcrypt: list available GPG keys when config is missing, thanks to <NAME>
- added useful scripts:
  - [mount-list-all-files](https://master.libelektra.org/doc/help/kdb-mount-list-all-files.md)
  - [mountpoint-info](https://master.libelektra.org/doc/help/kdb-mountpoint-info.md)
  - [stash](https://master.libelektra.org/doc/help/kdb-stash.md)
  - [backup](https://master.libelektra.org/doc/help/kdb-backup.md)
  - [restore](https://master.libelektra.org/doc/help/kdb-restore.md)
  - [check-env-dep](https://master.libelektra.org/doc/help/kdb-check-env-dep.md)
  - [change-resolver](https://master.libelektra.org/doc/help/kdb-change-resolver.md)
  - [change-storage](https://master.libelektra.org/doc/help/kdb-change-storage.md)
- limit min/max depth for `kdb ls` (`-mM`)
- base64 also works as filter for binary data (not just encrypted data),
  thanks to <NAME>

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

TODO check:
- new files?
- INI meta, line continuation now tab?
- make scripts work on macOS (readlink and sed),
  thanks to <NAME> and <NAME>
- fcrypt config parameters?

## Development

- TODO: ELEKTRA_NOT_NULL, ELEKTRA_MALLOC_ERROR
- new positions for global plugins,
  thanks to <NAME>
- <NAME> added generateKeySet to randomly generate large key sets.
- add vagrant and docker support, thanks to <NAME> (@krit0n)
- support for CLion
- portability improvements for logger, thanks to <NAME>iger
- metadata consistency check within source repo, thanks to <NAME>

## Other

- OPMPHM preparation work, thanks to <NAME>
  (For this release, please keep ENABLE_OPTIMIZATIONS turned off)
- kdb: errors are more colorful, add infos to report issues,
       use `$EDITOR` if `sensible-editor` and `editor` is not found.
       René Schwaiger fixed preposition and format of the messages.
- added Spanish translation for qt-gui
  thanks to AdanGQ (@pixelead0)
- DBUS support for qt-gui (listening to configuration changes)
  thanks to <NAME>
- genconf: let augeas list all lenses
- improvements for CentOS and Debian Packages,
  thanks to <NAME>
- travis improvements, fixes, and many builds added, thanks to <NAME> and <NAME>
- ronn now always uses UTF-8 as encoded and is no longer required
  as essential dependency to get man pages, thanks to <NAME>waiger
- GitHub now recognizes that we have a BSD licence, thanks to <NAME>iger<commit_msg>doc: write a bit more release notes<commit_after># 0.8.20 Release (NOT YET RELEASED)

RELEASE NOTES ARE IN PREPARATION.
RELEASE DID NOT HAPPEN YET.

(git diff till src/bindings/swig/python/tests/CMakeLists.txt)

- guid: 547d48e2-c044-4a8e-9d32-ca6b6fb914d9
- author: <NAME>
- pubDate: Fri, 20 Oct 2017 21:08:07 +0200
- shortDesc:



## What is Elektra?

Elektra serves as a universal and secure framework to access configuration
settings in a global, hierarchical key database.
For a small demo see here:

[![asciicast](https://asciinema.org/a/cantr04assr4jkv8v34uz9b8r.png)](https://asciinema.org/a/cantr04assr4jkv8v34uz9b8r)

TODO: create new demo?

## Highlights

- libelektra.org: new website+managed by libelektra
- plugin+bindings for Haskell and Ruby
- improved shell completion
- new plugins: yamlcpp, camel, mini, date, file, range,
               multifile, xerces, ipaddr

### <<ONE POINT PER HIGHLIGHT>> (TODO, not yet done)

### libelektra.org

Unfortunately this release is delayed.  The reason for this is, that
our community server was compromised and we needed to reinstall everything
from scratch.

We took advantage of the situation, and reinstalled everything properly
managed by [puppet-libelektra](https://github.com/ElektraInitiative/puppet-libelektra).

Thanks to <NAME>, for rescuing us from the difficult situation.

TODO, not yet written

All our pages are now available via https.

  (was already announced earlier, but this is the first time
   that a release of Elektra includes the source code of
   the website)

The backend uses Elektra itself.

Thanks to <NAME> for the new website.

#### Haskell and Ruby

Ruby includes libtools bindings.

Haskell has generic CMake and C Code so that Elektra plugins can be written
exclusively in Haskell.

TODO src/bindings/haskell/README.md plugins/haskell

Several Haskell examples exist in src/bindings/haskell/examples/

### Shell Completion

The new tool `kdb complete` suggests how to complete an Elektra path.
It considers mountpoints and bookmarks correctly.

Thanks to <NAME>.

The new `kdb complete` tool is now used for zsh and fish bindings.

Thanks to <NAME> and <NAME>waiger.

### New Plugins

TODO: file, range, ipaddr, yamlcpp, camel, mini

The date plugin supports validation of dates according to three standards:

* `RFC2822`
* `ISO8601`
* `POSIX`

The [multifile plugin](https://www.libelektra.org/plugins/multifile)
allows us to integrate many configuration files via globbing with
a single mount command. It supports `.d` configuration directories
as often used today.

The [xerces plugin](https://www.libelektra.org/plugins/xerces)
supplants the [xmltool plugin](https://www.libelektra.org/plugins/xmltool)
and allows us to use XML files not following a specific schemata.
Attributes are mapped to Elektra's metadata, multiple keys with the
same names are mapped to arrays.


## Documentation

- extended [FAQ](/doc/help/elektra-faq.md)
- Added "Hello, Elektra" and logging tutorial,
  thanks to René Schwaiger
- <NAME> (@krit0n) improved some tutorials
- pass options to PDFLaTeX compiler,
  thanks to <NAME>
- small fixes, thanks to <NAME>
- fix many spelling mistakes, use American english, fix formatting,
  fix+add links, unify title style, fix code blocks, add titles,
  fix PDF manual
  thanks to René Schwaiger

## Features

- conditionals: allow multiple assigns and conditions
- jna bindings: greatly improved, now uses maven+doxygen
  thanks to <NAME>
- improve curlget plugin, is now able to upload configuration files
  thanks to <NAME> and <NAME> (CMake fixes)
- kdb rmmeta, thanks to <NAME>
- fcrypt: list available GPG keys when config is missing, thanks to <NAME>
- added useful scripts:
  - [mount-list-all-files](https://master.libelektra.org/doc/help/kdb-mount-list-all-files.md)
  - [mountpoint-info](https://master.libelektra.org/doc/help/kdb-mountpoint-info.md)
  - [stash](https://master.libelektra.org/doc/help/kdb-stash.md)
  - [backup](https://master.libelektra.org/doc/help/kdb-backup.md)
  - [restore](https://master.libelektra.org/doc/help/kdb-restore.md)
  - [check-env-dep](https://master.libelektra.org/doc/help/kdb-check-env-dep.md)
  - [change-resolver](https://master.libelektra.org/doc/help/kdb-change-resolver.md)
  - [change-storage](https://master.libelektra.org/doc/help/kdb-change-storage.md)
- limit min/max depth for `kdb ls` (`-mM`)
- base64 also works as filter for binary data (not just encrypted data),
  thanks to <NAME>

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

TODO check:
- new files?
- INI meta, line continuation now tab?
- make scripts work on macOS (readlink and sed),
  thanks to <NAME> and <NAME>
- fcrypt config parameters?

## Maintainers

- LICENSE.md now contains BSD 3-Clause License without any additional non-license text
- AUTHORS renamed to AUTHORS.md
- NEWS.md is now a generated file containing all news concatenated
- CMake 2.8.8 is no longer supported, 3.0 is now needed
- fix macOS RPATH, remove old policies, thanks to <NAME>
- new option BUILD_DOCSET to build DocSet
- option ENABLE_OPTIMIZATIONS should be turned off (experimental hash map support)
- add TARGET_TOOL_DATA_FOLDER for installation of tool data (for rest-backend and rest-frontend)

## Development

- TODO: ELEKTRA_NOT_NULL, ELEKTRA_MALLOC_ERROR
- use `(void)` instead of `()` (added `-Wstrict-prototypes`)
- new positions for global plugins,
  thanks to <NAME>
- <NAME> added generateKeySet to randomly generate large key sets.
- add vagrant and docker support, thanks to <NAME> (@krit0n)
- improve support for CLion, netbeans and oclint
- portability improvements for logger, thanks to <NAME>
- metadata consistency check within source repo, thanks to Thomas Waser
- CMake: require version 3.0

## Other

- OPMPHM preparation work, thanks to <NAME>
  (For this release, please keep ENABLE_OPTIMIZATIONS turned off)
- kdb: errors are more colorful, add infos to report issues,
       use `$EDITOR` if `sensible-editor` and `editor` is not found.
       <NAME> fixed preposition and format of the messages.
- added Spanish translation for qt-gui
  thanks to AdanGQ (@pixelead0)
- DBUS support for qt-gui (listening to configuration changes)
  thanks to <NAME>
- genconf: let augeas list all lenses
- improvements for CentOS and Debian Packages,
  thanks to <NAME>
- travis improvements, fixes, and many build variants added, thanks to <NAME> and <NAME>
- ronn now always uses UTF-8 as encoded and is no longer required
  as essential dependency to get man pages, thanks to <NAME>
- GitHub now recognizes that we have a BSD licence, thanks to <NAME>
- Uninstallation Script also uninstalls directories and python files, thanks to <NAME>
{'fraction_non_alphanumeric': 0.09033068886968816, 'fraction_numerical': 0.01366742596810934, 'mean_word_length': 4.258983890954151, 'pattern_counts': {'":': 0, '<': 66, '<?xml version=': 0, '>': 66, 'https://': 28, 'lorem ipsum': 0, 'www.': 6, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6249825', 'n_tokens_mistral': 4197, 'n_tokens_neox': 3964, 'n_words': 1530}