sdl (1.6.0-1) UNRELEASED; urgency=low

  * Enable redis/sentinel port and sentinel master name configuration

 -- Petri Ovaska <petri.ovaska@nokia.com>  Thu, 10 Mar 2022 09:59:23 +0300

sdl (1.5.1-1) UNRELEASED; urgency=low

  * Add set, get and listKeys -sdltool CLI commands

 -- Petri Ovaska <petri.ovaska@nokia.com>  Fri, 17 Sep 2021 12:33:24 +0300

sdl (1.5.0-1) UNRELEASED; urgency=low

  * New listKeys API to support glob-style search pattern
  * Deprecated old findKeys and findKeysAsync API

 -- Petri Ovaska <petri.ovaska@nokia.com>  Fri, 17 Sep 2021 11:54:21 +0300

sdl (1.4.0-1) UNRELEASED; urgency=low

  * Add synchronous readiness check API

 -- Timo Tietavainen <timo.tietavainen@nokia.com>  Wed, 11 Aug 2021 08:02:59 +0300

sdl (1.3.0-1) UNRELEASED; urgency=low

  * Definable timeout for DB backend readiness in synchronous SDL API
  * Fix SDL configuration file path Valgrind errors

 -- Timo Tietavainen <timo.tietavainen@nokia.com>  Thu, 05 Aug 2021 15:25:59 +0300

sdl (1.2.1-1) UNRELEASED; urgency=low

  * Multiple DBAAS Redis standalone groups

 -- Petri Ovaska <petri.ovaska@nokia.com>  Mon, 31 May 2021 14:06:32 +0300

sdl (1.2.0-1) UNRELEASED; urgency=low

  * Multiple DBAAS Redis Sentinel groups
  * New namespace (--ns) option in sdltool test-get-set -command

 -- Petri Ovaska <petri.ovaska@nokia.com>  Wed, 26 May 2021 17:27:08 +0300

sdl (1.1.3-1) UNRELEASED; urgency=low

  * Rename rpm and Debian makefile targets to rpm-pkg and deb-pkg.
  * Update CI Dockerfile to utilize rpm-pkg and deb-pkg makefile targets.

 -- Timo Tietavainen <timo.tietavainen@nokia.com>  Sat, 16 May 2020 12:25:59 +0300

sdl (1.1.2-1) UNRELEASED; urgency=low

  * Add makefile targets to build rpm and Debian packages.

 -- Timo Tietavainen <timo.tietavainen@nokia.com>  Fri, 15 May 2020 20:01:25 +0300

sdl (1.1.1-1) UNRELEASED; urgency=low

  * Add unit test code coverage (gcov) make target.

 -- Timo Tietavainen <timo.tietavainen@nokia.com>  Mon, 11 May 2020 11:35:53 +0300

sdl (1.1.0-1) unstable; urgency=medium

  * Add public helper classes for UT mocking.

 -- Timo Tietavainen <timo.tietavainen@nokia.com>  Thu, 09 Jan 2020 11:28:07 +0200

sdl (1.0.4-1) unstable; urgency=medium

  * Initial release

 -- Rolf Badorek <rolf.badorek@nokia.com>  Tue, 12 Nov 2019 15:35:00 +0300
