Skip to content

Commit

Permalink
Release v3.3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kingosticks committed Apr 28, 2022
2 parents 6f7b93e + cf9961d commit 0c80dca
Show file tree
Hide file tree
Showing 36 changed files with 1,581 additions and 154 deletions.
11 changes: 7 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,21 @@ jobs:
- name: "Test: Python 3.9"
python: "3.9"
tox: py39
- name: "Test: Python 3.10"
python: "3.10"
tox: py310
coverage: true
- name: "Lint: check-manifest"
python: "3.9"
python: "3.10"
tox: check-manifest
- name: "Lint: flake8"
python: "3.9"
python: "3.10"
tox: flake8
- name: "Lint: mypy"
python: "3.9"
python: "3.10"
tox: mypy
- name: "Docs"
python: "3.9"
python: "3.10"
tox: docs

name: ${{ matrix.name }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: "3.9"
python-version: "3.10"
- name: "Install dependencies"
run: python3 -m pip install build
- name: "Build package"
run: python3 -m build
- uses: pypa/gh-action-pypi-publish@v1.4.1
- uses: pypa/gh-action-pypi-publish@v1.5.0
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
4 changes: 2 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
version: 2

python:
version: 3.7
version: "3.7"
install:
- method: pip
path: .
extra_requirements:
- docs

sphinx:
builder: htmldir
builder: dirhtml
configuration: docs/conf.py

formats:
Expand Down
2 changes: 1 addition & 1 deletion docs/api/backend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ GStreamer knows how to play right before playback. For example:
pushing raw audio data into a GStreamer ``appsrc`` element.

- Mopidy-SoundCloud created it's own URI scheme, after the model of Spotify,
and use URIs of the following forms: ``soundcloud:search``,
and uses URIs of the following forms: ``soundcloud:search``,
``soundcloud:user-...``, ``soundcloud:exp-...``, and ``soundcloud:set-...``.
Playback is handled by converting the custom ``soundcloud:..`` URIs to
``http://`` URIs immediately before they are passed on to GStreamer for
Expand Down
2 changes: 1 addition & 1 deletion docs/api/http-server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Tornado application example
===========================

The :ref:`ext-http` extension's web server is based on the `Tornado
<http://www.tornadoweb.org/>`__ web framework. Thus, it has first class support
<https://www.tornadoweb.org/>`__ web framework. Thus, it has first class support
for Tornado request handlers.

In the following example, we create a :class:`tornado.web.RequestHandler`
Expand Down
49 changes: 49 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,55 @@ This changelog is used to track all major changes to Mopidy.
For older releases, see :ref:`history`.


v3.3.0 (2022-04-29)
===================

- Core: Fixes invalid verbosity logging levels. (Fixes: :issue:`1947`,
PR: :issue:`2021`)

- Core: Fix TypeError exception when playing track with unnamed artists.
(Fixes: :issue:`1991`, PR: :issue:`2012`)

- Core: Fix startup crash when loading invalid extensions. (PR:
:issue:`1990`)

- Core: Fix error-handling when fetching backend support info. (PR:
:issue:`1964`)

- Core: Align values supported by the ``field`` argument to
:meth:`mopidy.core.LibraryController.get_distinct` with Mopidy search query
fields, with the exception of 'any'. Deprecated field 'track' with the
goal of removing it in the next major release, use 'track_name' instead.
Backends should support both `track` and `track_name` until they require
a version of Mopidy where `track` has been removed.
(Fixes: :issue:`1900`, PR: :issue:`1899`)

- Core: Add ``musicbrainz_albumid``, ``musicbrainz_artistid``,
``musicbrainz_trackid``, and ``disc_no`` to the permitted search query
fields. (Fixes: :issue:`1900`, PR: :issue:`1899`)

- Audio: Fix TypeError when handling create output pipeline errors.
(Fixes: :issue:`1924`, PR: :issue:`2040`)

- Audio: Fix seek when stopped. (Fixes: :issue:`2005`, PR: :issue:`2006`)

- Config: Fix support for inline comments, a regression introduced during
our Python 3 migration. (Fixes: :issue:`1868`, PR: :issue:`2041`)

- HTTP: Fix missing CORS headers on RPC response. (Fixes: :issue:`2028`,
PR: :issue:`2029`)

- HTTP: Improve CSRF protection Content-Type check. (PR: :issue:`1997`)

- HTTP: Fix support for websocket clients connecting/disconnecting
during broadcast. (PR: :issue:`1993`)

- Add Python 3.10 to our test matrix.

- Core: Added and improved configuration parsing code for extension
developers. (PR: :issue:`2010`)


v3.2.0 (2021-07-08)
===================

Expand Down
2 changes: 1 addition & 1 deletion docs/extensiondev.rst
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ your HTTP requests::
)
)

response = session.get('http://example.com')
response = session.get('https://example.com')
# Now do something with ``response`` and/or make further requests using the
# ``session`` object.

Expand Down
2 changes: 1 addition & 1 deletion mopidy/audio/actor.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def add_output(self, description):
logger.error(
'Failed to create audio output "%s": %s', description, ex
)
raise exceptions.AudioException(bytes(ex))
raise exceptions.AudioException(ex)

self._add(output)
logger.info('Audio output set to "%s"', description)
Expand Down
16 changes: 9 additions & 7 deletions mopidy/backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

from mopidy.models import Image, Playlist, Ref, SearchResult, Track

# TODO Fix duplication with mopidy.internal.validation.SEARCH_FIELDS
SearchField = Literal[
# TODO Fix duplication with mopidy.internal.validation.TRACK_FIELDS_WITH_TYPES
TrackField = Literal[
"uri",
"track_name",
"album",
Expand All @@ -27,13 +27,15 @@
"genre",
"date",
"comment",
"any",
"disc_no",
"musicbrainz_albumid",
"musicbrainz_artistid",
"musicbrainz_trackid",
]

# TODO Fix duplication with mopidy.internal.validation.DISTINCT_FIELDS
DistinctField = Literal[
"uri", "name", "genre", "date", "comment", "musicbrainz_id"
]
SearchField = Literal[TrackField, "any"]

DistinctField = TrackField

F = TypeVar("F")
QueryValue = Union[str, int]
Expand Down
6 changes: 5 additions & 1 deletion mopidy/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@
ConfigValue,
Deprecated,
DeprecatedValue,
Float,
Hostname,
Integer,
List,
LogColor,
LogLevel,
Pair,
Path,
Port,
Secret,
Expand All @@ -28,7 +30,9 @@
__all__ = [
# TODO List everything that is reexported, not just the unused parts.
"ConfigValue",
"Float",
"List",
"Pair",
]

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -143,7 +147,7 @@ def format_initial(extensions_data):


def _load(files, defaults, overrides):
parser = configparser.RawConfigParser()
parser = configparser.RawConfigParser(inline_comment_prefixes=(";",))

# TODO: simply return path to config file for defaults so we can load it
# all in the same way?
Expand Down

0 comments on commit 0c80dca

Please sign in to comment.