2014/07/07 (1.2.28)
- Added templates for token verification emails.
- Refresh tags from file before playing.
- Write tags to file on change.

2014/07/06 (1.2.26)
- New WebAPI endpoint: /skip (POST).
- Added listeners cound in status.json.
- Fixed an error in the built-in manual.
- Unified error handling and reporting.

2014/06/27 (1.2.24)
- WebAPI reports all tags in the cloud, not 5+ tracks only.

2014/06/26 (1.2.23)
- Revised WebAPI.
- Built-in docs for WebAPI.
- New web API method: track/update.json.
- New CLI command: ardj web tokens (lists active tokens).

2014/06/23 (1.2.20)
- New CLI command: ardj replaygain scan.

2014/06/20 (1.2.19)
- Removed useless sticky label debug logging.
- Changed label prefix from @ to a more convenient #.
- Fixed track skipping with ices.
- New CLI command: ardj skip.
- Monitor now checks children every 1 second, not 5.
- Fixed 'tags' output when there aren't any tags.
- New CLI command: ardj reload.
- Listener counter no longer needs admin access to icecast2.
- Can now run ices from source tree without preparing PYTHONPATH.

2014/06/19 (1.2.15)
- New command: ardj jabber probe.
- Added back support for ices0, because of crossfade and ReplayGain.
- Enable logging from within bin/ardj.
- Better support for running from within the source tree.
- Fixed the status command failing on new databases.
- Replaced the incoming_labels setting with default_labels.
- Added default_labels to default config.
- Pick a totally random track from the database when all other
  strategies fail (e.g., incorrect playlist file).

2014/06/09 (1.2.12)
- Using VirtualEnv for local development and testing.
- No longer installing system-wide config files (in /etc).
- Fixed broken dependencies.
- Removed manual handling of files uploaded via XMPP.
- New, faster CLI.
- Subprocess monitor names log files on child errors.
- Initialize database when running the server.
- Added missing scripts to setup.py.
- Fixed install paths in setup.py.
- Only run scrobbler and jabber if configured.
- New command: ardj tracks export-csv.
- Support for built-in failure audio file.

2013/09/30 (1.2.2)
- Fix permissions on config files during component startup.

2013/09/30 (1.2.1)
- Simpler error messages when there's no config file.
- Better autoconfiguration.
- Process monitor now prints pids.
- Kill subprocesses on ^C with SIGKILL instead of SIGTERM.
- Fixed an error in ardj print-next-track, which made ezstream
  crash instead of playing pre-packaged audio samples.
- More messages to guide through the initial setup.

2013/09/30 (1.2.0)
- When running ardj locally, use notify-send when track changes.
- Can now run a background audio player with 'ardj serve`,
  good for desktop usage.
- Can now tag tracks by artist, example:
  tag -tagme rock loud --artist="Slick Idiot"
- Can now tag tracks by file name, example:
  tag live --filename="%/KMFDM (Live)/%"
- Fixed broken tests.
- Fixed handling of / by the built-in web server.
- Fixed errors in setup.py

2013/05/23 (1.1.0)
- The new recommended way to run the server is from the source tree.
- New child process monitor that controls all necessary subprocesses,
  launched by `ardj serve'.  Default configuration files are created
  on startup.
- Files can now be manually added to the media library, then recorded
  in the database by `ardj find-new-files'.
- Removed webapi (a web layer that was previously used to query for
  the next track to play).
- Added a new subprocess for the scrobbler.
- Fixed last.fm tag scanning.
- Fixed ReplayGain scanning.
- Fixed Debian and Ubuntu init scripts.
- Updated ezstream codec parameters.
- Fixed paths in example ezstream.xml.
- Added a small step-by-step install guide.
- Dumped ices in favor of ezstream.
- Added support for $MAIL in `ardj console'.
- Added colors to `ardj console'.
- Added new cli command `dedup`: merges tracks with equal file names.
- Added new syntax to the `tags' command to process multiple tags and whole artists.
- Newer tracks are now always merged into the older ones.
- Fixed merging of tracks with not all fields filled (e.g., weight).

2012/06/05 (1.0.18)
- Fixed the jabber bot crashing when no chat room jid is set.
- Fixed init scripts for ardj-jabber and ardj-server.
- Added post-install tasks to setup.py
- Added built-in playlists that work out-of-the-box
- Added support for setup.py --prefix

2012/05/30 (1.0.17)
- Fixed logging in ardj-ices.
- Added missing man page
- Added MANIFEST.in to setup.py
- Added to the PYPI repository.
- Removed useless parts of Makefile.

2011/12/04 (1.0.12)
 - Fixed connection spinning in contrib/hotline.
 - Fixed Unicode problems in ardj console (CLI).
 - Fixed the voters command in fresh install (Jabber).
 - Fixed a bug in the MySQL database driver.
 - Fixed missing tags when downloading from Jamendo.
 - Fixed missing schedule update (cron).
 - Fixed ISE handling in contrib/newswire url shortener.
 - Fixed the SQL command (jabber).
 - Fixed some error logging.
 - Fixed running from the source tree.
 - Fixed the database console.
 - Fixed lasting transactions in web UI.
 - Fixed prerolls.
 - Fixed sticky labels.
 - Fixed last.fm schedule updates.
 - Fixed broken last.fm links.
 - Fixed exception logging.
 - Fixed database locks by failed WebAPI handlers.
 - Added history for twitter-fetcher (contrib).
 - Added an option to disable voting (config).
 - Added automatic promotion of most active voters to admins.
 - Added support for sysvinit (Debian).
 - Added a default response for commands echo, sql and show-news-from-jamendo (Jabber).
 - Added better logging for the skip command (Jabber).
 - Added a handler to retrieve current track info (WebAPI).
 - Added authentication to certain web api calls.
 - Added api/status.js (WebAPI).
 - Added nice -n15 to the downloaded music processor.
 - Added more methods to the Python track API.
 - Added a way to share tracks without external URL info.
 - Added a CLI command to dump daily/hourly vote stats.
 - Added CORS to Web API.
 - Added spam protection to the twitter widget (contrib).
 - Added image and download options to the set command.
 - Added the "minutes" property to playlists.
 - Added a way to refresh length of certain tracks (CLI).
 - Added an API method to find tracks by tag.
 - Added current_ts to status.json (WebAPI).
 - Added upstart job name to syslog.
 - Removed old commands: hotline, icelog, listeners, mail (CLI).
 - Changed tags order in tags/show: subtags go last.
