******* Changes ******* This change log is used to track all major changes to Mopidy. 0.1.0a4 (in development) ======================== Another great release. **Changes** - Exit early if not Python >= 2.6, < 3. - Include Sphinx scripts for building docs, pylintrc, tests and test data in the packages created by ``setup.py`` for i.e. PyPI. - MPD frontend: - Search improvements, including support for multi-word search. - Backend API: - The ``id`` field of :class:`mopidy.models.Track` has been removed, as it is no longer needed after the CPID refactoring. - :meth:`mopidy.backends.BaseLibraryController.find_exact()` now accepts keyword arguments of the form ``find_exact(artist=['foo'], album=['bar'])``. - :meth:`mopidy.backends.BaseLibraryController.search()` now accepts keyword arguments of the form ``search(artist=['foo', 'fighters'], album=['bar', 'grooves'])``. 0.1.0a3 (2010-08-03) ==================== In the last two months, Mopidy's MPD frontend has gotten lots of stability fixes and error handling improvements, proper support for having the same track multiple times in a playlist, and support for IPv6. We have also fixed the choppy playback on the libspotify backend. For the road ahead of us, we got an updated :doc:`release roadmap ` with our goals for the 0.1 to 0.3 releases. Enjoy the best alpha relase of Mopidy ever :-) **Changes** - MPD frontend: - Support IPv6. - ``addid`` responds properly on errors instead of crashing. - ``commands`` support, which makes RelaXXPlayer work with Mopidy. (Fixes: :issue:`6`) - Does no longer crash on invalid data, i.e. non-UTF-8 data. - ``ACK`` error messages are now MPD-compliant, which should make clients handle errors from Mopidy better. - Requests to existing commands with wrong arguments are no longer reported as unknown commands. - ``command_list_end`` before ``command_list_start`` now returns unknown command error instead of crashing. - ``list`` accepts field argument without quotes and capitalized, to work with GMPC and ncmpc. - ``noidle`` command now returns ``OK`` instead of an error. Should make some clients work a bit better. - Having multiple identical tracks in a playlist is now working properly. (CPID refactoring) - Despotify backend: - Catch and log :exc:`spytify.SpytifyError`. (Fixes: :issue:`11`) - Libspotify backend: - Fix choppy playback using the Libspotify backend by using blocking ALSA mode. (Fixes: :issue:`7`) - Backend API: - A new data structure called ``cp_track`` is now used in the current playlist controller and the playback controller. A ``cp_track`` is a two-tuple of (CPID integer, :class:`mopidy.models.Track`), identifying an instance of a track uniquely within the current playlist. - :meth:`mopidy.backends.BaseCurrentPlaylistController.load()` now accepts lists of :class:`mopidy.models.Track` instead of :class:`mopidy.models.Playlist`, as none of the other fields on the ``Playlist`` model was in use. - :meth:`mopidy.backends.BaseCurrentPlaylistController.add()` now returns the ``cp_track`` added to the current playlist. - :meth:`mopidy.backends.BaseCurrentPlaylistController.remove()` now takes criterias, just like :meth:`mopidy.backends.BaseCurrentPlaylistController.get()`. - :meth:`mopidy.backends.BaseCurrentPlaylistController.get()` now returns a ``cp_track``. - :attr:`mopidy.backends.BaseCurrentPlaylistController.tracks` is now read-only. Use the methods to change its contents. - :attr:`mopidy.backends.BaseCurrentPlaylistController.cp_tracks` is a read-only list of ``cp_track``. Use the methods to change its contents. - :attr:`mopidy.backends.BasePlaybackController.current_track` is now just for convenience and read-only. To set the current track, assign a ``cp_track`` to :attr:`mopidy.backends.BasePlaybackController.current_cp_track`. - :attr:`mopidy.backends.BasePlaybackController.current_cpid` is the read-only CPID of the current track. - :attr:`mopidy.backends.BasePlaybackController.next_cp_track` is the next ``cp_track`` in the playlist. - :attr:`mopidy.backends.BasePlaybackController.previous_cp_track` is the previous ``cp_track`` in the playlist. - :meth:`mopidy.backends.BasePlaybackController.play()` now takes a ``cp_track``. 0.1.0a2 (2010-06-02) ==================== It has been a rather slow month for Mopidy, but we would like to keep up with the established pace of at least a release per month. **Changes** - Improvements to MPD protocol handling, making Mopidy work much better with a group of clients, including ncmpc, MPoD, and Theremin. - New command line flag ``--dump`` for dumping debug log to ``dump.log`` in the current directory. - New setting :attr:`mopidy.settings.MIXER_ALSA_CONTROL` for forcing what ALSA control :class:`mopidy.mixers.alsa.AlsaMixer` should use. 0.1.0a1 (2010-05-04) ==================== Since the previous release Mopidy has seen about 300 commits, more than 200 new tests, a libspotify release, and major feature additions to Spotify. The new releases from Spotify have lead to updates to our dependencies, and also to new bugs in Mopidy. Thus, this is primarily a bugfix release, even though the not yet finished work on a Gstreamer backend have been merged. All users are recommended to upgrade to 0.1.0a1, and should at the same time ensure that they have the latest versions of our dependencies: Despotify r508 if you are using DespotifyBackend, and pyspotify 1.1 with libspotify 0.0.4 if you are using LibspotifyBackend. As always, report problems at our IRC channel or our issue tracker. Thanks! **Changes** - Backend API changes: - Removed ``backend.playback.volume`` wrapper. Use ``backend.mixer.volume`` directly. - Renamed ``backend.playback.playlist_position`` to ``current_playlist_position`` to match naming of ``current_track``. - Replaced ``get_by_id()`` with a more flexible ``get(**criteria)``. - Merged the ``gstreamer`` branch from Thomas Adamcik: - More than 200 new tests, and thus several bugfixes to existing code. - Several new generic features, like shuffle, consume, and playlist repeat. (Fixes: :issue:`3`) - **[Work in Progress]** A new backend for playing music from a local music archive using the Gstreamer library. - Made :class:`mopidy.mixers.alsa.AlsaMixer` work on machines without a mixer named "Master". - Make :class:`mopidy.backends.DespotifyBackend` ignore local files in playlists (feature added in Spotify 0.4.3). Reported by Richard Haugen Olsen. - And much more. 0.1.0a0 (2010-03-27) ==================== "*Release early. Release often. Listen to your customers.*" wrote Eric S. Raymond in *The Cathedral and the Bazaar*. Three months of development should be more than enough. We have more to do, but Mopidy is working and usable. 0.1.0a0 is an alpha release, which basicly means we will still change APIs, add features, etc. before the final 0.1.0 release. But the software is usable as is, so we release it. Please give it a try and give us feedback, either at our IRC channel or through the `issue tracker `_. Thanks! **Changes** - Initial version. No changelog available.