Release v2.2.2
This commit is contained in:
commit
e9f8245e32
@ -1,10 +1,12 @@
|
||||
sudo: required
|
||||
dist: trusty
|
||||
dist: xenial
|
||||
|
||||
language: python
|
||||
|
||||
python:
|
||||
- "2.7_with_system_site_packages"
|
||||
- "2.7"
|
||||
|
||||
virtualenv:
|
||||
system_site_packages: true
|
||||
|
||||
env:
|
||||
- TOX_ENV=py27
|
||||
|
||||
@ -8,8 +8,11 @@ include LICENSE
|
||||
include MANIFEST.in
|
||||
include tox.ini
|
||||
|
||||
recursive-include .github *
|
||||
|
||||
recursive-include docs *
|
||||
prune docs/_build
|
||||
prune docs/.doctrees
|
||||
|
||||
recursive-include extra *
|
||||
|
||||
|
||||
@ -4,11 +4,15 @@ Changelog
|
||||
|
||||
This changelog is used to track all major changes to Mopidy.
|
||||
|
||||
v2.2.2 (UNRELEASED)
|
||||
|
||||
v2.2.2 (2018-12-29)
|
||||
===================
|
||||
|
||||
Bug fix release.
|
||||
|
||||
- HTTP: Fix hang on exit due to change in Tornado v5.0 IOLoop. (Fixes:
|
||||
:issue:`1715`, PR: :issue:`1716`)
|
||||
|
||||
- Files: Fix crash due to mix of text and bytes in paths that come from
|
||||
``$XDG_CONFIG_HOME/user-dirs.dirs``. (Fixes: :issue:`1676`, :issue:`1725`)
|
||||
|
||||
|
||||
@ -14,4 +14,4 @@ if not (2, 7) <= sys.version_info < (3,):
|
||||
warnings.filterwarnings('ignore', 'could not open display')
|
||||
|
||||
|
||||
__version__ = '2.2.1'
|
||||
__version__ = '2.2.2'
|
||||
|
||||
@ -100,20 +100,21 @@ class HttpServer(threading.Thread):
|
||||
|
||||
self.app = None
|
||||
self.server = None
|
||||
self.io_loop = None
|
||||
|
||||
def run(self):
|
||||
self.app = tornado.web.Application(self._get_request_handlers())
|
||||
self.server = tornado.httpserver.HTTPServer(self.app)
|
||||
self.server.add_sockets(self.sockets)
|
||||
|
||||
tornado.ioloop.IOLoop.instance().start()
|
||||
self.io_loop = tornado.ioloop.IOLoop.current()
|
||||
self.io_loop.start()
|
||||
|
||||
logger.debug('Stopped HTTP server')
|
||||
|
||||
def stop(self):
|
||||
logger.debug('Stopping HTTP server')
|
||||
tornado.ioloop.IOLoop.instance().add_callback(
|
||||
tornado.ioloop.IOLoop.instance().stop)
|
||||
self.io_loop.add_callback(self.io_loop.stop)
|
||||
|
||||
def _get_request_handlers(self):
|
||||
request_handlers = []
|
||||
|
||||
@ -38,7 +38,7 @@ def load_protocol_modules():
|
||||
|
||||
|
||||
def INT(value): # noqa: N802
|
||||
"""Converts a value that matches [+-]?\d+ into and integer."""
|
||||
r"""Converts a value that matches [+-]?\d+ into and integer."""
|
||||
if value is None:
|
||||
raise ValueError('None is not a valid integer')
|
||||
# TODO: check for whitespace via value != value.strip()?
|
||||
@ -46,7 +46,7 @@ def INT(value): # noqa: N802
|
||||
|
||||
|
||||
def UINT(value): # noqa: N802
|
||||
"""Converts a value that matches \d+ into an integer."""
|
||||
r"""Converts a value that matches \d+ into an integer."""
|
||||
if value is None:
|
||||
raise ValueError('None is not a valid integer')
|
||||
if not value.isdigit():
|
||||
|
||||
@ -3,7 +3,8 @@ application-import-names = mopidy,tests
|
||||
exclude = .git,.tox,build,js,tmp
|
||||
# Ignored flake8 warnings:
|
||||
# - E402 module level import not at top of file
|
||||
ignore = E402
|
||||
# - W504 line break after binary operator
|
||||
ignore = E402, W504
|
||||
|
||||
[wheel]
|
||||
universal = 1
|
||||
|
||||
4
tasks.py
4
tasks.py
@ -42,7 +42,7 @@ def watcher(task, *args, **kwargs):
|
||||
task(*args, **kwargs)
|
||||
try:
|
||||
run(
|
||||
'inotifywait -q -e create -e modify -e delete '
|
||||
'--exclude ".*\.(pyc|sw.)" -r docs/ mopidy/ tests/')
|
||||
r'inotifywait -q -e create -e modify -e delete '
|
||||
r'--exclude ".*\.(pyc|sw.)" -r docs/ mopidy/ tests/')
|
||||
except KeyboardInterrupt:
|
||||
sys.exit()
|
||||
|
||||
@ -23,7 +23,7 @@ class IsA(object):
|
||||
try:
|
||||
return isinstance(rhs, self.klass)
|
||||
except TypeError:
|
||||
return type(rhs) == type(self.klass) # flake8: noqa
|
||||
return type(rhs) == type(self.klass) # noqa
|
||||
|
||||
def __ne__(self, rhs):
|
||||
return not self.__eq__(rhs)
|
||||
|
||||
@ -161,7 +161,7 @@ class IssueGH69RegressionTest(protocol.BaseTestCase):
|
||||
|
||||
class IssueGH113RegressionTest(protocol.BaseTestCase):
|
||||
|
||||
"""
|
||||
r"""
|
||||
The issue: https://github.com/mopidy/mopidy/issues/113
|
||||
|
||||
How to reproduce:
|
||||
@ -174,11 +174,11 @@ class IssueGH113RegressionTest(protocol.BaseTestCase):
|
||||
|
||||
def test(self):
|
||||
self.core.playlists.create(
|
||||
u'all lart spotify:track:\w\{22\} pastes')
|
||||
r'all lart spotify:track:\w\{22\} pastes')
|
||||
|
||||
self.send_request('lsinfo "/"')
|
||||
self.assertInResponse(
|
||||
u'playlist: all lart spotify:track:\w\{22\} pastes')
|
||||
r'playlist: all lart spotify:track:\w\{22\} pastes')
|
||||
|
||||
self.send_request(
|
||||
r'listplaylistinfo "all lart spotify:track:\\w\\{22\\} pastes"')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user