Skip to content

Commit

Permalink
Release v3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jodal committed Dec 22, 2019
2 parents a9ddb36 + 32a9a5e commit f1dfb53
Show file tree
Hide file tree
Showing 297 changed files with 9,629 additions and 27,916 deletions.
21 changes: 12 additions & 9 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,22 @@ workflows:
version: 2
test:
jobs:
- py27
#- py37
#- black
#- check-manifest
- py38
- py37
- black
- check-manifest
- docs
- flake8

jobs:
py37: &test-template
py38: &test-template
docker:
- image: mopidy/ci-python:3.7
- image: mopidy/ci-python:3.8
steps:
- checkout
- restore_cache:
name: Restoring tox cache
key: tox-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}
key: tox-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.cfg" }}
- run:
name: Run tests
command: |
Expand All @@ -31,7 +31,7 @@ jobs:
--cov-report=xml
- save_cache:
name: Saving tox cache
key: tox-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}
key: tox-v1-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.cfg" }}
paths:
- ./.tox
- ~/.cache/pip
Expand All @@ -40,7 +40,10 @@ jobs:
- store_test_results:
path: test-results

py27: *test-template
py37:
<<: *test-template
docker:
- image: mopidy/ci-python:3.7

black: *test-template

Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ build/
cover/
coverage.xml
dist/
docs/_build/
docs/.doctrees/
docs/_build/
mopidy.log*
nosetests.xml
tmp/
Expand Down
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,4 @@ Nick Aquina <nickaquina@gmail.com> <fantostisch@users.noreply.github.com>
Jarryd Tilbrook <jrad.tilbrook@gmail.com>
Matthieu Melquiond <matt.llvw@gmail.com>
Geoffroy Youri Berret <kaliko@azylum.org>
Hugo van Kemenade <hugovk@users.noreply.github.com>
17 changes: 17 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: 2

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

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

formats:
- pdf
- epub
3 changes: 3 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,6 @@
- Dan Stowell <danstowell@users.sourceforge.net>
- Gildas Le Nadan <gildas@endemic-systems.com>
- Zvonimir Fras <zvonimir@zvonimirfras.com>
- Simon <schaefer@fidion.de>
- Vivien Henry <vivien.henry@outlook.fr>
- Hugo van Kemenade <hugovk@users.noreply.github.com>
6 changes: 6 additions & 0 deletions AUTHORS.update
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

# Keep authors in the order of appearance and use awk to filter out dupes
git log --format='- %aN <%aE>' --reverse | awk '!x[$0]++' > AUTHORS
4 changes: 3 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
include *.py
include *.rst
include *.txt
include .mailmap
include .readthedocs.yml
include AUTHORS
include AUTHORS.update
include LICENSE
include MANIFEST.in
include pyproject.toml
include tox.ini

recursive-include .circleci *
Expand Down
78 changes: 47 additions & 31 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,52 +2,68 @@
Mopidy
******

Mopidy is an extensible music server written in Python.
`Mopidy`_ is an extensible music server written in Python.

Mopidy plays music from local disk, Spotify, SoundCloud, Google Play Music, and
more. You edit the playlist from any phone, tablet, or computer using a range
more. You edit the playlist from any phone, tablet, or computer using a variety
of MPD and web clients.

**Stream music from the cloud**

Vanilla Mopidy only plays music from your local disk and radio streams.
Through extensions, Mopidy can play music from cloud services like Spotify,
SoundCloud, and Google Play Music. With Mopidy's extension support, backends
for new music sources can be easily added.
Vanilla Mopidy only plays music from files and radio streams. Through
`extensions`_, Mopidy can play music from cloud services like Spotify,
SoundCloud, and Google Play Music.
With Mopidy's extension support, backends for new music sources can be easily
added.

**Mopidy is just a server**

Mopidy is a Python application that runs in a terminal or in the background on
Linux computers or Macs that have network connectivity and audio output. Out of
the box, Mopidy is an MPD and HTTP server. Additional frontends for controlling
Mopidy can be installed from extensions.
Linux computers or Macs that have network connectivity and audio output.
Out of the box, Mopidy is an HTTP server. If you install the `Mopidy-MPD`_
extension, it becomes an MPD server too. Many additional frontends for
controlling Mopidy are available as extensions.

**Everybody use their favorite client**
**Pick your favorite client**

You and the people around you can all connect their favorite MPD or web client
to the Mopidy server to search for music and manage the playlist together. With
a browser or MPD client, which is available for all popular operating systems,
you can control the music from any phone, tablet, or computer.
to the Mopidy server to search for music and manage the playlist together.
With a browser or MPD client, which is available for all popular operating
systems, you can control the music from any phone, tablet, or computer.

**Mopidy on Raspberry Pi**

The Raspberry Pi is a popular device to run Mopidy on, either using Raspbian or
Arch Linux. It is quite slow, but it is very affordable. In fact, the
Kickstarter funded Gramofon: Modern Cloud Jukebox project used Mopidy on a
Raspberry Pi to prototype the Gramofon device. Mopidy is also a major building
block in the Pi Musicbox integrated audio jukebox system for Raspberry Pi.
The `Raspberry Pi`_ is an popular device to run Mopidy on, either using
Raspbian, Ubuntu, or Arch Linux.
Pimoroni recommends Mopidy for use with their `Pirate Audio`_ audio gear for
Raspberry Pi.
Mopidy is also a significant building block in the `Pi Musicbox`_ integrated
audio jukebox system for Raspberry Pi.

**Mopidy is hackable**

Mopidy's extension support and Python, JSON-RPC, and JavaScript APIs make
Mopidy perfect for building your own hacks. In one project, a Raspberry Pi was
embedded in an old cassette player. The buttons and volume control are wired up
with GPIO on the Raspberry Pi, and is used to control playback through a custom
Mopidy extension. The cassettes have NFC tags used to select playlists from
Spotify.
Mopidy a perfect base for your projects.
In one hack, a Raspberry Pi was embedded in an old cassette player. The buttons
and volume control are wired up with GPIO on the Raspberry Pi, and is used to
control playback through a custom Mopidy extension. The cassettes have NFC tags
used to select playlists from Spotify.

To get started with Mopidy, check out
`the installation docs <http://docs.mopidy.com/en/latest/installation/>`_.
.. _Mopidy: https://mopidy.com/
.. _extensions: https://mopidy.com/ext/
.. _Mopidy-MPD: https://mopidy.com/ext/mpd/
.. _Raspberry Pi: https://www.raspberrypi.org/
.. _Pirate Audio: https://shop.pimoroni.com/collections/pirate-audio
.. _Pi Musicbox: https://www.pimusicbox.com/


**Getting started**

To get started with Mopidy, begin by reading the
`installation docs <https://docs.mopidy.com/en/latest/installation/>`_.


**Project resources**

- `Documentation <https://docs.mopidy.com/>`_
- `Discourse forum <https://discourse.mopidy.com/>`_
Expand All @@ -64,13 +80,13 @@ To get started with Mopidy, check out
:alt: CircleCI build status

.. image:: https://img.shields.io/readthedocs/mopidy.svg
:target: https://docs.mopidy.com/
:alt: Read the Docs build status
:target: https://docs.mopidy.com/
:alt: Read the Docs build status

.. image:: https://img.shields.io/codecov/c/github/mopidy/mopidy/develop.svg
:target: https://codecov.io/gh/mopidy/mopidy
:alt: Test coverage
:target: https://codecov.io/gh/mopidy/mopidy
:alt: Test coverage

.. image:: https://img.shields.io/badge/chat-on%20zulip-brightgreen
:target: https://mopidy.zulipchat.com/
:alt: Chat on Zulip
:target: https://mopidy.zulipchat.com/
:alt: Chat on Zulip
28 changes: 0 additions & 28 deletions dev-requirements.txt

This file was deleted.

6 changes: 3 additions & 3 deletions docs/api/backend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ GStreamer knows how to play right before playback. For example:
playback.

- Mopidy differentiates between ``file://...`` URIs handled by
:ref:`ext-stream` and ``local:...`` URIs handled by :ref:`ext-local`.
:ref:`ext-stream` and ``local:...`` URIs handled by Mopidy-Local.
:ref:`ext-stream` can play ``file://...`` URIs pointing to tracks and
playlists located anywhere on your system, but it doesn't know a thing about
the object before you play it. On the other hand, :ref:`ext-local` scans a
the object before you play it. On the other hand, Mopidy-Local scans a
predefined :confval:`local/media_dir` to build a meta data library of all
known tracks. It is thus limited to playing tracks residing in the media
library, but can provide additional features like directory browsing and
Expand Down Expand Up @@ -96,4 +96,4 @@ Backend listener
Backend implementations
=======================

See :ref:`ext-backends`.
See the `extension registry <https://mopidy.com/ext/>`_.
54 changes: 1 addition & 53 deletions docs/api/core.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
:synopsis: Core API for use by frontends

The core API is the interface that is used by frontends like
:mod:`mopidy.http` and :mod:`mopidy.mpd`. The core layer is in between the
:mod:`mopidy.http` and Mopidy-MPD. The core layer is in between the
frontends and the backends. Don't forget that you will be accessing core
as a Pykka actor. If you are only interested in being notified about changes
in core see :class:`~mopidy.core.CoreListener`.
Expand Down Expand Up @@ -200,55 +200,3 @@ Core events

.. autoclass:: mopidy.core.CoreListener
:members:

Deprecated API features
=======================

.. warning::
Though these features still work, they are slated to go away in the next
major Mopidy release.

Core
----

.. autoattribute:: mopidy.core.Core.version
.. autoattribute:: mopidy.core.Core.uri_schemes

TracklistController
-------------------

.. autoattribute:: mopidy.core.TracklistController.tl_tracks
.. autoattribute:: mopidy.core.TracklistController.tracks
.. autoattribute:: mopidy.core.TracklistController.version
.. autoattribute:: mopidy.core.TracklistController.length

.. autoattribute:: mopidy.core.TracklistController.consume
.. autoattribute:: mopidy.core.TracklistController.random
.. autoattribute:: mopidy.core.TracklistController.repeat
.. autoattribute:: mopidy.core.TracklistController.single

PlaybackController
------------------

.. automethod:: mopidy.core.PlaybackController.get_mute
.. automethod:: mopidy.core.PlaybackController.get_volume

.. autoattribute:: mopidy.core.PlaybackController.current_tl_track
.. autoattribute:: mopidy.core.PlaybackController.current_track
.. autoattribute:: mopidy.core.PlaybackController.state
.. autoattribute:: mopidy.core.PlaybackController.time_position
.. autoattribute:: mopidy.core.PlaybackController.mute
.. autoattribute:: mopidy.core.PlaybackController.volume

LibraryController
-----------------

.. automethod:: mopidy.core.LibraryController.find_exact

PlaylistsController
-------------------

.. automethod:: mopidy.core.PlaylistsController.filter
.. automethod:: mopidy.core.PlaylistsController.get_playlists

.. autoattribute:: mopidy.core.PlaylistsController.playlists
2 changes: 1 addition & 1 deletion docs/api/frontend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,4 @@ The following requirements applies to any frontend implementation:
Frontend implementations
========================

See :ref:`ext-frontends`.
See the `extension registry <https://mopidy.com/ext/>`_.
8 changes: 1 addition & 7 deletions docs/api/http-server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ available at http://localhost:6680/mywebclient/foo.html.

::

from __future__ import absolute_import, unicode_literals

import os

from mopidy import ext
Expand Down Expand Up @@ -97,8 +95,6 @@ Mopidy $version``.

::

from __future__ import absolute_import, unicode_literals

import os

import tornado.web
Expand Down Expand Up @@ -151,8 +147,6 @@ http://localhost:6680/mywebclient/.

::

from __future__ import absolute_import, unicode_literals

import os

import tornado.web
Expand Down Expand Up @@ -194,4 +188,4 @@ http://localhost:6680/mywebclient/.
API implementors
================

See :ref:`ext-web`.
See the `extension registry <https://mopidy.com/ext/>`_.
4 changes: 2 additions & 2 deletions docs/api/http.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ The :ref:`ext-http` extension makes Mopidy's :ref:`core-api` available using
JSON-RPC over HTTP using HTTP POST and WebSockets. We also provide a JavaScript
wrapper, called :ref:`Mopidy.js <mopidy-js>`, around the JSON-RPC over
WebSocket API for use both from browsers and Node.js. The
:ref:`http-explore-extension` extension, can also be used to get you
familiarized with HTTP based APIs.
`Mopidy-API-Explorer <https://mopidy.com/ext/api-explorer>`_ extension can
also be used to get you familiarized with HTTP based APIs.


.. _http-post-api:
Expand Down

0 comments on commit f1dfb53

Please sign in to comment.