libmpdclient 2.22 (2023/12/22)
* drop the unmaintained Vala bindings
* fix "version.h" conflicts when used as a Meson subproject
* support MPD protocol 0.24.0
  - command "save [create|replace|append]"

libmpdclient 2.21 (2023/12/20)
* meson.build: allow using as a Meson subproject
* add mpd_recv_replay_gain_status()
* support MPD protocol 0.24.0
  - tag "Mood", "TitleSort"
  - "oneshot" consume state
  - allow range in "playlistmove"
  - commands "searchcount", "stickernames"
  - added attribute for songs
  - search: support constraint "added-since"

libmpdclient 2.20 (2021/11/23)
* support MPD protocol 0.23
  - getvol
  - position argument for searchadd, findadd, load and playlistadd
  - whence argument for addid and add
  - range argument for playlistdelete
* support MPD protocol 0.22.4
  - binarylimit
* support MPD protocol 0.22.0
  - readpicture
* support MPD protocol 0.21.0
  - albumart
* support tags "ComposerSort", "Ensemble", "Movement",
  "MovementNumber", "Location"
* queue: make "priority" parameter unsigned

libmpdclient 2.19 (2020/07/03)
* fix off-by-one bug in MPD_HOST parser
* add function mpd_lookup_replay_gain_mode()
* playlist: add function mpd_run_playlist_move()
* identify messages with length over the buffer limit
* support MPD protocol 0.16
 - replay gain
* support MPD protocol 0.19
 - idle events "neighbor" and "mount"
* support MPD protocol 0.20
 - rangeid
* support MPD protocol 0.21
  - command "tagtypes all"

libmpdclient 2.18 (2020/01/20)
* more out-of-memory checks
* partition: add mpd_recv_partition()
* support MPD protocol 0.21
 - "oneshot" single state
* support MPD protocol 0.22
 - status: add mpd_status_get_partition()
 - commands "delpartition", "moveoutput"

libmpdclient 2.17 (2019/12/04)
* search: add mpd_search_add_db_songs_to_playlist()
* idle: support event "partition"
* support MPD protocol 0.19
  - "listneighbors"
* support MPD protocol 0.22
  - "getfingerprint"
* support tags "MPD_TAG_LABEL", "MPD_TAG_MUSICBRAINZ_WORKID", "Grouping",
  "Work", "Conductor"
* support MPD partitions
* mpd_async_set_keepalive() returns bool
* mpd_connection_set_keepalive() returns bool
* fix build failure on Haiku

libmpdclient 2.16 (2018/10/09)
* support MPD protocol 0.19
  - "mount", "unmount", "listmounts"
* support MPD protocol 0.17
  - "load" with range
* add mpd_output_get_attribute()
* use UINX_MAX instead of `(unsigned)-1` to avoid undefined behavior

libmpdclient 2.15 (2018/09/02)
* support MPD protocol 0.21
  - search: support search expressions
  - search: descending sort
  - search: support sorting by "Last-Modified"
  - song: audio format
* support MPD protocol 0.17
  - player: command "seekcur"
* fix `-Wrestrict` compiler warning

libmpdclient 2.14 (2018/02/11)
* support MPD protocol 0.21
  - command "outputset"
  - mpd_output_get_plugin()
  - receive output attributes
* MSVC compatibility
* improved local and abstract socket support

libmpdclient 2.13 (2017/07/25)
* fix build with meson > 0.38.1
* fix connect error "Operation now in progress"

libmpdclient 2.12 (2017/07/21)
* support MPD protocol 0.21
  - support tag "OriginalDate"
  - command "tagtypes" plus "disable", "enable", "clear"
* support MPD protocol 0.20
  - support "plchanges" and "plchangesposid" with range
* support MPD protocol 0.19
  - commands "addtagid", "cleartagid"
  - command "listfiles"
  - grouping for "list" and "count"
  - tag "AlbumSort"
  - "seekid" with float time
* use relative #include paths to avoid clashes with other libmpdclient copies
* build with Meson instead of autotools

libmpdclient 2.11 (2017/03/20)
* fix heap corruption with mpd_connection_new_async()
* add space before "window" search argument
* detect getaddrinfo() at configure time
* add support for ArtistSort and AlbumArtistSort tags
* support MPD protocol 0.21
  - audio format specifications "dsd64" etc.
  - the "sort" parameter for commands "find"/"search"

libmpdclient 2.10 (2015/02/23)
* support abstract sockets with "@" prefix
* support tag "MUSICBRAINZ_RELEASETRACKID"
* add TCP keepalive internal and external APIs
* support MPD protocol 0.19
  - status: support sample formats "float" and "dsd"
  - song: report duration with milliseconds precision
  - search: support constraint "modified-since"
* support MPD protocol 0.20
  - the "window" parameter for commands "find"/"search"

libmpdclient 2.9 (2013/10/29)
* directory: support attribute "Last-Modified"
* support MPD protocol 0.18
  - command "readcomments"
  - command "toggleoutput"
  - command "volume"
  - the "base" constraint for commands "find"/"search"

libmpdclient 2.8 (2013/04/09)
* song: support attribute "Prio"
* queue: fix the ranged "prio" command
* queue: support open ranges

libmpdclient 2.7 (2012/02/04)
* status: add nextsong/nextsongid support

libmpdclient 2.6 (2011/10/23)
* mpd/client.h: include message.h
* queue: support song priorities

libmpdclient 2.5 (2011/07/06)
* playlist: implement the command "listplaylists"
* idle: support event "sticker"
* support the client-to-client protocol (MPD 0.17)

libmpdclient 2.4 (2011/01/03)
* configure.ac, resolver: implement flag --disable-tcp
* resolver: fix IPv4/IPv6 on the loopback device
* player: support the command "clearerror"
* connection: add function mpd_connection_get_server_error_location()
* settings: expose connection settings
* iso8601, send: format string workarounds for WIN32
* Makefile.am: fix doxygen in out-of-tree build

libmpdclient 2.3 (2010/05/25)
* get default timeout from environment variable MPD_TIMEOUT
* fix assertion failures on malformed URI
* song: support attribute "Range"

libmpdclient 2.2 (2010/04/25)
* MixRamp support
* fix the LIBMPDCLIENT_CHECK_VERSION() macro

libmpdclient 2.1 (2009/12/06)
* status: added mpd_status_get_elapsed_ms()
* sticker: added sticker support
* song: copy last_modified value in mpd_song_dup()
* socket, async: use WSAGetLastError() instead of errno on WIN32
* socket: connect in non-blocking mode
* socket: set the close-on-exec flag
* tag: support C++
* sync: optimistic write, reduce select() calls
* Makefile.am: use --version-script only with GNU ld
* added library version compile-time checks

libmpdclient 2.0 (2009/10/03)
* complete rewrite and API redesign
* shared library with a documented stable API
* asynchronous API
* too many minor changes to list here

libmpdclient 0.13 (2007/05/28)
libmpdclient 0.12.1 (2007/03/21)
libmpdclient 0.12 (2006/09/22)
libmpdclient 0.11.1 (2004/06/18)
libmpdclient 0.11 (2004/06/17)
libmpdclient 0.10 (2004/03/03)
* these versions were never actually released; its sources were copied
  into the C/C++ clients