diff --git a/docs/changelog.rst b/docs/changelog.rst index f4b796d7..d51b4bf1 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -5,6 +5,21 @@ Changelog This changelog is used to track all major changes to Mopidy. +v1.0.3 (2015-04-28) +=================== + +Bug fix release. + +- HTTP: Another follow-up to the Tornado <3.0 fixing. Since the tests aren't + run for Tornado 2.3 we didn't catch that our previous fix wasn't sufficient. + (Fixes: :issue:`1153`, PR: :issue:`1154`) + +- Audio: Follow-up fix for :issue:`1097` still exhibits issues for certain + setups. We are giving this get an other go by setting the buffer size to + maximum 100ms instead of a fixed number of buffers. (Fixes: :issue:`1147`, + PR: :issue:`1154`) + + v1.0.2 (2015-04-27) =================== diff --git a/docs/conf.py b/docs/conf.py index fa75dd79..ec74fcbe 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -105,6 +105,9 @@ from mopidy.utils.versioning import get_version release = get_version() version = '.'.join(release.split('.')[:2]) +# To make the build reproducible, avoid using today's date in the manpages +today = '2015' + exclude_trees = ['_build'] pygments_style = 'sphinx' diff --git a/docs/index.rst b/docs/index.rst index e9775030..3a2998d5 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -54,6 +54,8 @@ extension. The cassettes have NFC tags used to select playlists from Spotify. To get started with Mopidy, start by reading :ref:`installation`. +.. _getting-help: + **Getting help** If you get stuck, you can get help at the `Mopidy discussion forum diff --git a/mopidy/__init__.py b/mopidy/__init__.py index cabe0012..c2823270 100644 --- a/mopidy/__init__.py +++ b/mopidy/__init__.py @@ -30,4 +30,4 @@ except ImportError: warnings.filterwarnings('ignore', 'could not open display') -__version__ = '1.0.2' +__version__ = '1.0.3' diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py index 45ad73ff..7cca954a 100644 --- a/mopidy/audio/actor.py +++ b/mopidy/audio/actor.py @@ -164,7 +164,8 @@ class _Outputs(gst.Bin): # All tee branches need a queue in front of them. # But keep the queue short so the volume change isn't to slow: queue = gst.element_factory_make('queue') - queue.set_property('max-size-buffers', 15) + queue.set_property('max-size-time', 100 * gst.MSECOND) + self.add(element) self.add(queue) queue.link(element) diff --git a/mopidy/backend.py b/mopidy/backend.py index 63184853..2bbc1eea 100644 --- a/mopidy/backend.py +++ b/mopidy/backend.py @@ -395,7 +395,7 @@ class BackendListener(listener.Listener): Marker interface for recipients of events sent by the backend actors. Any Pykka actor that mixes in this class will receive calls to the methods - defined here when the corresponding events happen in the core actor. This + defined here when the corresponding events happen in a backend actor. This interface is used both for looking up what actors to notify of the events, and for providing default implementations for those listeners that are not interested in all events. diff --git a/mopidy/http/handlers.py b/mopidy/http/handlers.py index e2faa944..6bbfcbab 100644 --- a/mopidy/http/handlers.py +++ b/mopidy/http/handlers.py @@ -1,5 +1,6 @@ from __future__ import absolute_import, unicode_literals +import functools import logging import os import socket @@ -91,13 +92,14 @@ class WebSocketHandler(tornado.websocket.WebSocketHandler): if hasattr(tornado.ioloop.IOLoop, 'current'): loop = tornado.ioloop.IOLoop.current() else: - loop = tornado.ioloop.IOLoop.instance() # Fallback for 2.3 + loop = tornado.ioloop.IOLoop.instance() # Fallback for pre 3.0 # This can be called from outside the Tornado ioloop, so we need to # safely cross the thread boundary by adding a callback to the loop. for client in cls.clients: # One callback per client to keep time we hold up the loop short - loop.add_callback(_send_broadcast, client, msg) + # NOTE: Pre 3.0 does not support *args or **kwargs... + loop.add_callback(functools.partial(_send_broadcast, client, msg)) def initialize(self, core): self.jsonrpc = make_jsonrpc_wrapper(core) diff --git a/tests/test_version.py b/tests/test_version.py index 6071e2cd..1bdcfe01 100644 --- a/tests/test_version.py +++ b/tests/test_version.py @@ -57,5 +57,6 @@ class VersionTest(unittest.TestCase): self.assertVersionLess('0.19.4', '0.19.5') self.assertVersionLess('0.19.5', '1.0.0') self.assertVersionLess('1.0.0', '1.0.1') - self.assertVersionLess('1.0.1', __version__) - self.assertVersionLess(__version__, '1.0.3') + self.assertVersionLess('1.0.1', '1.0.2') + self.assertVersionLess('1.0.2', __version__) + self.assertVersionLess(__version__, '1.0.4')