docs: Update changelog

This commit is contained in:
Stein Magnus Jodal 2015-08-09 22:39:42 +02:00
parent 21f941c323
commit f3e61daa92

View File

@ -7,21 +7,52 @@ This changelog is used to track all major changes to Mopidy.
v1.1.0 (UNRELEASED)
===================
Mopidy 1.1 is here!
Since the release of 1.0, we've closed or merged approximately 55 issues and
pull requests through about 400 commits by a record high 20 extraordinary
people, including 14 newcomers. That's less issues and commits than in the 1.0
release, but even more contributors, and a doubling of the number of newcomers.
Thanks to :ref:`everyone <authors>` who has :ref:`contributed <contributing>`!
As we promised with the release of Mopidy 1.0, any extension working with
Mopidy 1.0 should continue working with all Mopidy 1.x releases. However, this
release brings a lot stronger enforcement of our documented APIs. If an
extension doesn't use the APIs properly, it may no longer work. The advantage
of this change is that Mopidy is now more robust against errors in extensions,
and also provides vastly better error messages when extensions misbehave. This
should make it easier to create quality extensions.
The major features of Mopidy 1.1 are:
- Validation of the arguments to all core API methods, as well as all responses
from backends and all data model attributes.
- New bundled backend, Mopidy-File. It is similar to Mopidy-Local, but allows
you to browse and play music from local disk without running a scan to index
the music first. The drawback is that it doesn't support searching.
- The Mopidy-MPD server should now be up to date with the 0.19 version of the
MPD protocol.
Dependencies
------------
- Mopidy now requires Requests.
- Heads up: Porting from GStreamer 0.10 to 1.x and support for running Mopidy
with Python 3.4+ is not far off on our roadmap.
Core API
--------
- Calling the following methods with ``kwargs`` is being deprecated.
(PR: :issue:`1090`)
- **Deprecated:** Calling the following methods with ``kwargs`` is being
deprecated. (PR: :issue:`1090`)
- :meth:`mopidy.core.library.LibraryController.search`
- :meth:`mopidy.core.library.PlaylistsController.filter`
- :meth:`mopidy.core.library.TracklistController.filter`
- :meth:`mopidy.core.library.TracklistController.remove`
- :meth:`mopidy.core.LibraryController.search`
- :meth:`mopidy.core.PlaylistsController.filter`
- :meth:`mopidy.core.TracklistController.filter`
- :meth:`mopidy.core.TracklistController.remove`
- Updated core controllers to handle backend exceptions in all calls that rely
on multiple backends. (Issue: :issue:`667`)
@ -33,13 +64,13 @@ Core API
``tl_track`` versions of the calls. (Fixes: :issue:`1131` PR: :issue:`1136`,
:issue:`1140`)
- Add :meth:`mopidy.core.playback.PlaybackController.get_current_tlid`.
- Add :meth:`mopidy.core.PlaybackController.get_current_tlid`.
(Part of: :issue:`1137`)
- Update core to handle backend crashes and bad data. (Fixes: :issue:`1161`)
- Add `max_tracklist_length` config and limitation. (Fixes: :issue:`997`
PR: :issue:`1225`)
- Add :confval:`core/max_tracklist_length` config and limitation. (Fixes:
:issue:`997` PR: :issue:`1225`)
- Added ``playlist_deleted`` event. (Fixes: :issue:`996`)
@ -52,7 +83,7 @@ Models
- Memory usage for models has been greatly improved. We now have a lower
overhead per instance by using slots, intern identifiers and automatically
reuse instances. For the test data set this was developed against, a library
of ~14000 tracks, went from needing ~75MB to ~17MB. (Fixes: :issue:`348`)
of ~14.000 tracks, went from needing ~75MB to ~17MB. (Fixes: :issue:`348`)
- Added :attr:`mopidy.models.Artist.sortname` field that is mapped to
``musicbrainz-sortname`` tag. (Fixes: :issue:`940`)
@ -68,7 +99,7 @@ Extension support
-----------------
- Add new methods to :class:`~mopidy.ext.Extension` class for getting cache,
config and data dirs specific to your extension:
config and data directories specific to your extension:
- :meth:`mopidy.ext.Extension.get_cache_dir`
- :meth:`mopidy.ext.Extension.get_config_dir`
@ -78,6 +109,58 @@ Extension support
both when Mopidy is run by a regular user and when run as a system service.
(Fixes: :issue:`843`, PR: :issue:`1232`)
- Add :func:`mopidy.httpclient.format_proxy` and
:func:`mopidy.httpclient.format_user_agent`. (Part of: :issue:`1156`)
- It is now possible to import :mod:`mopidy.backends` without having GObject or
GStreamer installed. In other words, a lot of backend extensions should now
be able to run tests in a virtualenv with global site-packages disabled. This
removes a lot of potential error sources. (Fixes: :issue:`1068`, PR:
:issue:`1115`)
Local backend
-------------
- Filter out :class:`None` from
:meth:`~mopidy.backend.LibraryProvider.get_distinct` results. All returned
results should be strings. (Fixes: :issue:`1202`)
Stream backend
--------------
- Move stream playlist parsing from GStreamer to the stream backend. (Fixes:
:issue:`671`)
File backend
------------
The :ref:`Mopidy-File <ext-file>` backend is a new bundled backend. It is
similar to Mopidy-Local since it works with local files, but it differs in a
few key ways:
- Mopidy-File lets you browse your media files by their file hierarchy.
- It supports multiple media directories, all exposed under the "Files"
directory when you browse your library with e.g. an MPD client.
- There is no index of the media files, like the JSON or SQLite files used by
Mopidy-Local. Thus no need to scan the music collection before starting
Mopidy. Everything is read from the file system when needed and changes to
the file system is thus immediately visible in Mopidy clients.
- Because there is no index, there is no support for search.
Our long term plan is to keep this very simple file backend in Mopidy, as it
has a well defined and limited scope, while splitting the more feature rich
Mopidy-Local extension out to an independent project. (Fixes: :issue:`1004`,
PR: :issue:`1207`)
M3U backend
-----------
- Support loading UTF-8 encoded M3U files with the ``.m3u8`` file extension.
(PR: :issue:`1193`)
MPD frontend
------------
@ -120,74 +203,19 @@ MPD frontend
outputting track data to clients. (PR: :issue:`1230`)
- The MPD commands ``lsinfo`` and ``listplaylists`` are now implemented using
the :meth:`~mopidy.core.PlaylistsProvider.as_list` method, which retrieves a
lot less data and is thus much faster than the deprecated
:meth:`~mopidy.core.PlaylistsProvider.get_playlists`. The drawback is that
the :meth:`~mopidy.core.PlaylistsController.as_list` method, which retrieves
a lot less data and is thus much faster than the deprecated
:meth:`~mopidy.core.PlaylistsController.get_playlists`. The drawback is that
the ``Last-Modified`` timestamp is not available through this method, and the
timestamps in the MPD command responses are now always set to the current
time.
Stream backend
--------------
- Move stream playlist parsing from GStreamer to the stream backend. (Fixes:
:issue:`671`)
Local backend
-------------
- Filter out :class:`None` from
:meth:`~mopidy.backend.LibraryProvider.get_distinct` results. All returned
results should be strings. (Fixes: :issue:`1202`)
File backend
------------
The :ref:`Mopidy-File <ext-file>` backend is a new bundled backend. It is
similar to Mopidy-Local since it works with local files, but it differs in a
few key ways:
- Mopidy-File lets you browse your media files by their file hierarchy.
- It supports multiple media directories, all exposed under the "Files"
directory when you browse your library with e.g. an MPD client.
- There is no index of the media files, like the JSON or SQLite files used by
Mopidy-Local. Thus no need to scan the music collection before starting
Mopidy. Everything is read from the file system when needed and changes to
the file system is thus immediately visible in Mopidy clients.
- Because there is no index, there is no support for search.
Our long term plan is to keep this very simple file backend in Mopidy, as it
has a well defined and limited scope, while splitting the more feature rich
Mopidy-Local extension out to an independent project. (Fixes: :issue:`1004`,
PR: :issue:`1207`)
M3U backend
-----------
- Support loading UTF-8 encoded M3U files with the ``.m3u8`` file extension.
(PR: :issue:`1193`)
Utils
-----
- Add :func:`mopidy.httpclient.format_proxy` and
:func:`mopidy.httpclient.format_user_agent`. (Part of: :issue:`1156`)
Internal changes
----------------
- Tests have been cleaned up to stop using deprecated APIs where feasible.
(Partial fix: :issue:`1083`, PR: :issue:`1090`)
- It is now possible to import :mod:`mopidy.backends` without having GObject or
GStreamer installed. In other words, a lot of backend extensions should now
be able to run tests in a virtualenv with global site-packages disabled. This
removes a lot of potential error sources. (Fixes: :issue:`1068`, PR:
:issue:`1115`)
v1.0.8 (2015-07-22)
===================