From: Marcel van der Veldt Date: Tue, 24 Jun 2025 11:36:35 +0000 (+0200) Subject: Introduce (stability/development) stage on providers (#2248) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=0919144bbec2f055c29fb3142d545b074f24bc2f;p=music-assistant-server.git Introduce (stability/development) stage on providers (#2248) --- diff --git a/music_assistant/models/provider.py b/music_assistant/models/provider.py index 6dd596ef..b089a09d 100644 --- a/music_assistant/models/provider.py +++ b/music_assistant/models/provider.py @@ -9,7 +9,7 @@ from music_assistant.constants import CONF_LOG_LEVEL, MASS_LOGGER_NAME if TYPE_CHECKING: from music_assistant_models.config_entries import ProviderConfig - from music_assistant_models.enums import ProviderFeature, ProviderType + from music_assistant_models.enums import ProviderFeature, ProviderStage, ProviderType from music_assistant_models.provider import ProviderManifest from zeroconf import ServiceStateChange from zeroconf.asyncio import AsyncServiceInfo @@ -119,6 +119,12 @@ class Provider: """Return a (default) instance name postfix for this provider instance.""" return None + @property + @final + def stage(self) -> ProviderStage: + """Return the stage of this provider.""" + return self.manifest.stage + def update_config_value(self, key: str, value: Any, encrypted: bool = False) -> None: """Update a config value.""" self.mass.config.set_raw_provider_config_value(self.instance_id, key, value, encrypted) diff --git a/music_assistant/providers/airplay/manifest.json b/music_assistant/providers/airplay/manifest.json index c67cd3eb..2007c393 100644 --- a/music_assistant/providers/airplay/manifest.json +++ b/music_assistant/providers/airplay/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "airplay", + "stage": "stable", "name": "AirPlay", "description": "Support for players that support the AirPlay protocol.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/apple_music/manifest.json b/music_assistant/providers/apple_music/manifest.json index 44d212f5..4632dac8 100644 --- a/music_assistant/providers/apple_music/manifest.json +++ b/music_assistant/providers/apple_music/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "apple_music", + "stage": "beta", "name": "Apple Music", "description": "Support for the Apple Music streaming provider in Music Assistant.", "codeowners": ["@MarvinSchenkel"], diff --git a/music_assistant/providers/audible/manifest.json b/music_assistant/providers/audible/manifest.json index bdeb5017..90f29012 100644 --- a/music_assistant/providers/audible/manifest.json +++ b/music_assistant/providers/audible/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "audible", + "stage": "stable", "name": "Audible", "description": "Audible provider", "codeowners": ["@ztripez"], diff --git a/music_assistant/providers/audiobookshelf/manifest.json b/music_assistant/providers/audiobookshelf/manifest.json index 2c147836..0dcfe66c 100644 --- a/music_assistant/providers/audiobookshelf/manifest.json +++ b/music_assistant/providers/audiobookshelf/manifest.json @@ -1,14 +1,11 @@ { "type": "music", "domain": "audiobookshelf", + "stage": "stable", "name": "Audiobookshelf", "description": "Audiobookshelf (audiobookshelf.org) as audiobook and podcast provider", - "codeowners": [ - "@fmunkes" - ], - "requirements": [ - "aioaudiobookshelf==0.1.7" - ], + "codeowners": ["@fmunkes"], + "requirements": ["aioaudiobookshelf==0.1.7"], "documentation": "https://music-assistant.io/music-providers/audiobookshelf", "multi_instance": true } diff --git a/music_assistant/providers/bluesound/manifest.json b/music_assistant/providers/bluesound/manifest.json index e1888f79..4de69fb5 100644 --- a/music_assistant/providers/bluesound/manifest.json +++ b/music_assistant/providers/bluesound/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "bluesound", + "stage": "beta", "name": "Bluesound", "description": "BluOS Player provider for Music Assistant.", "codeowners": ["@cyanogenbot"], diff --git a/music_assistant/providers/builtin/manifest.json b/music_assistant/providers/builtin/manifest.json index dc489276..26c1fbde 100644 --- a/music_assistant/providers/builtin/manifest.json +++ b/music_assistant/providers/builtin/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "builtin", + "stage": "stable", "name": "Music Assistant", "description": "Built-in/generic provider that handles generic urls and playlists.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/builtin_player/manifest.json b/music_assistant/providers/builtin_player/manifest.json index 78d54be7..db99e48a 100644 --- a/music_assistant/providers/builtin_player/manifest.json +++ b/music_assistant/providers/builtin_player/manifest.json @@ -1,11 +1,10 @@ { "type": "player", "domain": "builtin_player", + "stage": "alpha", "name": "Music Assistant", "description": "Support for playing to the Music Assistant Web Interface", - "codeowners": [ - "@music-assistant" - ], + "codeowners": ["@music-assistant"], "documentation": "https://music-assistant.io/player-support/builtin/", "multi_instance": false, "builtin": true, diff --git a/music_assistant/providers/chromecast/manifest.json b/music_assistant/providers/chromecast/manifest.json index e4b650c9..841b424f 100644 --- a/music_assistant/providers/chromecast/manifest.json +++ b/music_assistant/providers/chromecast/manifest.json @@ -1,19 +1,14 @@ { "type": "player", "domain": "chromecast", + "stage": "stable", "name": "Chromecast", "description": "Support for Chromecast based players.", - "codeowners": [ - "@music-assistant" - ], - "requirements": [ - "PyChromecast==14.0.7" - ], + "codeowners": ["@music-assistant"], + "requirements": ["PyChromecast==14.0.7"], "documentation": "https://music-assistant.io/player-support/google-cast/", "multi_instance": false, "builtin": false, "icon": "cast", - "mdns_discovery": [ - "_googlecast._tcp.local." - ] + "mdns_discovery": ["_googlecast._tcp.local."] } diff --git a/music_assistant/providers/deezer/manifest.json b/music_assistant/providers/deezer/manifest.json index 81e2bbae..ce76db85 100644 --- a/music_assistant/providers/deezer/manifest.json +++ b/music_assistant/providers/deezer/manifest.json @@ -1,9 +1,10 @@ { "type": "music", "domain": "deezer", + "stage": "stable", "name": "Deezer", "description": "Support for the Deezer streaming provider in Music Assistant.", - "codeowners": ["@arctixdev", "@micha91"], + "codeowners": ["@arctixdev", "@micha91"], "documentation": "https://music-assistant.io/music-providers/deezer/", "requirements": ["deezer-python-async==0.3.0", "pycryptodome==3.23.0"], "multi_instance": true diff --git a/music_assistant/providers/dlna/manifest.json b/music_assistant/providers/dlna/manifest.json index 149ffe00..95eee266 100644 --- a/music_assistant/providers/dlna/manifest.json +++ b/music_assistant/providers/dlna/manifest.json @@ -1,14 +1,11 @@ { "type": "player", "domain": "dlna", + "stage": "stable", "name": "UPnP/DLNA Player provider", "description": "Support for players that are compatible with the UPnP/DLNA (DMR) standard.", - "codeowners": [ - "@music-assistant" - ], - "requirements": [ - "async-upnp-client==0.44.0" - ], + "codeowners": ["@music-assistant"], + "requirements": ["async-upnp-client==0.44.0"], "documentation": "https://music-assistant.io/player-support/dlna/", "multi_instance": false, "builtin": false, diff --git a/music_assistant/providers/fanarttv/manifest.json b/music_assistant/providers/fanarttv/manifest.json index a39b2593..7c130f27 100644 --- a/music_assistant/providers/fanarttv/manifest.json +++ b/music_assistant/providers/fanarttv/manifest.json @@ -1,6 +1,7 @@ { "type": "metadata", "domain": "fanarttv", + "stage": "stable", "name": "fanart.tv", "description": "fanart.tv is a community database of artwork for movies, tv series and music.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/filesystem_local/manifest.json b/music_assistant/providers/filesystem_local/manifest.json index 7c3ea523..c0c1d3cf 100644 --- a/music_assistant/providers/filesystem_local/manifest.json +++ b/music_assistant/providers/filesystem_local/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "filesystem_local", + "stage": "stable", "name": "Filesystem (local disk)", "description": "Support for music files that are present on a local accessible disk/folder.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/filesystem_smb/manifest.json b/music_assistant/providers/filesystem_smb/manifest.json index 53bc716e..5743debd 100644 --- a/music_assistant/providers/filesystem_smb/manifest.json +++ b/music_assistant/providers/filesystem_smb/manifest.json @@ -1,11 +1,12 @@ { - "type": "music", - "domain": "filesystem_smb", - "name": "Filesystem (remote share)", - "description": "Support for music files that are present on remote SMB/CIFS.", - "codeowners": ["@music-assistant"], - "requirements": [], - "documentation": "https://music-assistant.io/music-providers/filesystem/", - "multi_instance": true, - "icon": "network" - } + "type": "music", + "domain": "filesystem_smb", + "stage": "stable", + "name": "Filesystem (remote share)", + "description": "Support for music files that are present on remote SMB/CIFS.", + "codeowners": ["@music-assistant"], + "requirements": [], + "documentation": "https://music-assistant.io/music-providers/filesystem/", + "multi_instance": true, + "icon": "network" +} diff --git a/music_assistant/providers/fully_kiosk/manifest.json b/music_assistant/providers/fully_kiosk/manifest.json index 1059df8e..b8879496 100644 --- a/music_assistant/providers/fully_kiosk/manifest.json +++ b/music_assistant/providers/fully_kiosk/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "fully_kiosk", + "stage": "stable", "name": "Fully Kiosk Browser", "description": "Support for media players from the Fully Kiosk app.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/gpodder/manifest.json b/music_assistant/providers/gpodder/manifest.json index 903b3cfc..976c9e6e 100644 --- a/music_assistant/providers/gpodder/manifest.json +++ b/music_assistant/providers/gpodder/manifest.json @@ -1,11 +1,10 @@ { "type": "music", "domain": "gpodder", + "stage": "stable", "name": "gPodder", "description": "gPodder podcast provider", - "codeowners": [ - "@fmunkes" - ], + "codeowners": ["@fmunkes"], "documentation": "https://music-assistant.io/music-providers/gpodder", "multi_instance": true } diff --git a/music_assistant/providers/hass/manifest.json b/music_assistant/providers/hass/manifest.json index 4fee6af8..1b10ef64 100644 --- a/music_assistant/providers/hass/manifest.json +++ b/music_assistant/providers/hass/manifest.json @@ -1,6 +1,7 @@ { "type": "plugin", "domain": "hass", + "stage": "stable", "name": "Home Assistant", "description": "Connect Music Assistant to Home Assistant.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/hass_players/manifest.json b/music_assistant/providers/hass_players/manifest.json index 3c0fae3e..f6df2017 100644 --- a/music_assistant/providers/hass_players/manifest.json +++ b/music_assistant/providers/hass_players/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "hass_players", + "stage": "stable", "name": "Home Assistant MediaPlayers", "description": "Use (supported) Home Assistant media players as players in Music Assistant.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/ibroadcast/manifest.json b/music_assistant/providers/ibroadcast/manifest.json index 7eed9405..c16a6cb6 100644 --- a/music_assistant/providers/ibroadcast/manifest.json +++ b/music_assistant/providers/ibroadcast/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "ibroadcast", + "stage": "stable", "name": "iBroadcast", "description": "Support for the iBroadcast streaming provider in Music Assistant.", "codeowners": ["@robsonke"], diff --git a/music_assistant/providers/itunes_podcasts/manifest.json b/music_assistant/providers/itunes_podcasts/manifest.json index 4210726c..f9ff4f23 100644 --- a/music_assistant/providers/itunes_podcasts/manifest.json +++ b/music_assistant/providers/itunes_podcasts/manifest.json @@ -1,11 +1,10 @@ { "type": "music", "domain": "itunes_podcasts", + "stage": "stable", "name": "iTunes Podcast Search", "description": "Search podcasts via iTunes API in Music Assistant.", - "codeowners": [ - "@fmunkes" - ], + "codeowners": ["@fmunkes"], "icon": "podcast", "documentation": "https://music-assistant.io/music-providers/itunes-podcasts/", "multi_instance": false diff --git a/music_assistant/providers/jellyfin/manifest.json b/music_assistant/providers/jellyfin/manifest.json index d895263f..8bdac1d9 100644 --- a/music_assistant/providers/jellyfin/manifest.json +++ b/music_assistant/providers/jellyfin/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "jellyfin", + "stage": "stable", "name": "Jellyfin Media Server Library", "description": "Support for the Jellyfin streaming provider in Music Assistant.", "codeowners": ["@lokiberra", "@Jc2k"], diff --git a/music_assistant/providers/lastfm_scrobble/manifest.json b/music_assistant/providers/lastfm_scrobble/manifest.json index 0778f773..d1e163b2 100644 --- a/music_assistant/providers/lastfm_scrobble/manifest.json +++ b/music_assistant/providers/lastfm_scrobble/manifest.json @@ -1,6 +1,7 @@ { "type": "plugin", "domain": "lastfm_scrobble", + "stage": "beta", "name": "LastFM Scrobbler", "description": "Scrobble your music to Last.fm and others with a compatible API like Libre.fm", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/listenbrainz_scrobble/manifest.json b/music_assistant/providers/listenbrainz_scrobble/manifest.json index f2abd338..8f2019b2 100644 --- a/music_assistant/providers/listenbrainz_scrobble/manifest.json +++ b/music_assistant/providers/listenbrainz_scrobble/manifest.json @@ -1,6 +1,7 @@ { "type": "plugin", "domain": "listenbrainz_scrobble", + "stage": "beta", "name": "ListenBrainz Scrobbler", "description": "Scrobble your music to ListenBrainz", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/lrclib/manifest.json b/music_assistant/providers/lrclib/manifest.json index 7eb8be33..230f06e1 100644 --- a/music_assistant/providers/lrclib/manifest.json +++ b/music_assistant/providers/lrclib/manifest.json @@ -1,6 +1,7 @@ { "type": "metadata", "domain": "lrclib", + "stage": "beta", "name": "LRCLIB", "description": "LRCLIB is a completely free service for finding and contributing synchronized lyrics, with an easy-to-use and machine-friendly API.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/musicbrainz/manifest.json b/music_assistant/providers/musicbrainz/manifest.json index f3c48835..62351d25 100644 --- a/music_assistant/providers/musicbrainz/manifest.json +++ b/music_assistant/providers/musicbrainz/manifest.json @@ -1,6 +1,7 @@ { "type": "metadata", "domain": "musicbrainz", + "stage": "stable", "name": "MusicBrainz", "description": "MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public. Music Assistant uses MusicBrainz primarily to identify (unique) media items and therefore this provider can not be disabled. However, note that lookups will only be performed if this info is absent locally.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/musiccast/manifest.json b/music_assistant/providers/musiccast/manifest.json index ae24d76b..b4bd6bf1 100644 --- a/music_assistant/providers/musiccast/manifest.json +++ b/music_assistant/providers/musiccast/manifest.json @@ -1,18 +1,12 @@ { "type": "player", "domain": "musiccast", + "stage": "beta", "name": "MusicCast", "description": "MusicCast for Music Assistant", - "requirements": [ - "aiomusiccast==0.14.8", - "setuptools>=1.0.0" - ], - "codeowners": [ - "@fmunkes" - ], - "mdns_discovery": [ - "_http._tcp.local." - ], + "requirements": ["aiomusiccast==0.14.8", "setuptools>=1.0.0"], + "codeowners": ["@fmunkes"], + "mdns_discovery": ["_http._tcp.local."], "documentation": "https://music-assistant.io/player-support/musiccast", "multi_instance": false } diff --git a/music_assistant/providers/nugs/manifest.json b/music_assistant/providers/nugs/manifest.json index b6f07fbf..e52d8a6f 100644 --- a/music_assistant/providers/nugs/manifest.json +++ b/music_assistant/providers/nugs/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "nugs", + "stage": "beta", "name": "Nugs.net", "description": "Nugs.net support for Music Assistant: Live Music provider.", "codeowners": ["@brian10048"], diff --git a/music_assistant/providers/opensubsonic/manifest.json b/music_assistant/providers/opensubsonic/manifest.json index cc0d6aaa..6113e186 100644 --- a/music_assistant/providers/opensubsonic/manifest.json +++ b/music_assistant/providers/opensubsonic/manifest.json @@ -1,14 +1,11 @@ { "type": "music", "domain": "opensubsonic", + "stage": "stable", "name": "OpenSubsonic Media Server Library", "description": "Support for OpenSubsonic based streaming providers in Music Assistant.", - "codeowners": [ - "@khers" - ], - "requirements": [ - "py-opensonic==7.0.2" - ], + "codeowners": ["@khers"], + "requirements": ["py-opensonic==7.0.2"], "documentation": "https://music-assistant.io/music-providers/subsonic/", "multi_instance": true } diff --git a/music_assistant/providers/player_group/manifest.json b/music_assistant/providers/player_group/manifest.json index 9c2da78e..5e971f18 100644 --- a/music_assistant/providers/player_group/manifest.json +++ b/music_assistant/providers/player_group/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "player_group", + "stage": "beta", "name": "Playergroup", "description": "Create (permanent) groups of your favorite players. \nSupports both syncgroups (to group speakers of the same ecocystem to play in sync) and universal groups to group speakers of different ecosystems to play the same audio (but not in sync).", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/plex/manifest.json b/music_assistant/providers/plex/manifest.json index 419abf2f..a27207c0 100644 --- a/music_assistant/providers/plex/manifest.json +++ b/music_assistant/providers/plex/manifest.json @@ -1,14 +1,11 @@ { "type": "music", "domain": "plex", + "stage": "unmaintained", "name": "Plex Media Server Library", "description": "Support for the Plex streaming provider in Music Assistant.", - "codeowners": [ - "@micha91" - ], - "requirements": [ - "plexapi==4.17.0" - ], + "codeowners": ["@micha91"], + "requirements": ["plexapi==4.17.0"], "documentation": "https://music-assistant.io/music-providers/plex/", "multi_instance": true } diff --git a/music_assistant/providers/podcastfeed/manifest.json b/music_assistant/providers/podcastfeed/manifest.json index 0d793014..2676bfe3 100644 --- a/music_assistant/providers/podcastfeed/manifest.json +++ b/music_assistant/providers/podcastfeed/manifest.json @@ -1,11 +1,10 @@ { "type": "music", "domain": "podcastfeed", + "stage": "stable", "name": "Podcast RSS Feed", "description": "A parser for podcast rss feeds", - "codeowners": [ - "@saeugetier" - ], + "codeowners": ["@saeugetier"], "documentation": "https://music-assistant.io/music-providers/podcastfeed/", "multi_instance": true } diff --git a/music_assistant/providers/qobuz/manifest.json b/music_assistant/providers/qobuz/manifest.json index 61f77022..871c8722 100644 --- a/music_assistant/providers/qobuz/manifest.json +++ b/music_assistant/providers/qobuz/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "qobuz", + "stage": "stable", "name": "Qobuz", "description": "Qobuz support for Music Assistant: Lossless (and hi-res) Music provider.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/radiobrowser/manifest.json b/music_assistant/providers/radiobrowser/manifest.json index 263a29d5..ebea1545 100644 --- a/music_assistant/providers/radiobrowser/manifest.json +++ b/music_assistant/providers/radiobrowser/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "radiobrowser", + "stage": "stable", "name": "RadioBrowser", "description": "Search radio streams from RadioBrowser in Music Assistant.", "codeowners": ["@gieljnssns"], diff --git a/music_assistant/providers/siriusxm/manifest.json b/music_assistant/providers/siriusxm/manifest.json index d1a36b58..3cbc9488 100644 --- a/music_assistant/providers/siriusxm/manifest.json +++ b/music_assistant/providers/siriusxm/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "siriusxm", + "stage": "stable", "name": "SiriusXM", "description": "Support for the SiriusXM streaming radio provider in Music Assistant.", "codeowners": ["@btoconnor"], diff --git a/music_assistant/providers/snapcast/manifest.json b/music_assistant/providers/snapcast/manifest.json index 82f0d023..55c311c5 100644 --- a/music_assistant/providers/snapcast/manifest.json +++ b/music_assistant/providers/snapcast/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "snapcast", + "stage": "stable", "name": "Snapcast", "description": "Support for snapcast server and clients.", "codeowners": ["@SantiagoSotoC"], diff --git a/music_assistant/providers/sonos/manifest.json b/music_assistant/providers/sonos/manifest.json index 6408e8cb..0b89a28e 100644 --- a/music_assistant/providers/sonos/manifest.json +++ b/music_assistant/providers/sonos/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "sonos", + "stage": "stable", "name": "SONOS", "description": "SONOS Player provider for Music Assistant.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/sonos_s1/manifest.json b/music_assistant/providers/sonos_s1/manifest.json index 07739470..ae6a4759 100644 --- a/music_assistant/providers/sonos_s1/manifest.json +++ b/music_assistant/providers/sonos_s1/manifest.json @@ -1,15 +1,11 @@ { "type": "player", "domain": "sonos_s1", + "stage": "stable", "name": "SONOS S1", "description": "SONOS Player provider for Music Assistant for the S1 hardware, based on the Soco library. Select this provider if you have Sonos devices on the S1 operating system (with the S1 Controller app)", - "codeowners": [ - "@music-assistant" - ], - "requirements": [ - "soco==0.30.10", - "defusedxml==0.7.1" - ], + "codeowners": ["@music-assistant"], + "requirements": ["soco==0.30.10", "defusedxml==0.7.1"], "documentation": "https://music-assistant.io/player-support/sonos/", "multi_instance": false, "builtin": false diff --git a/music_assistant/providers/soundcloud/manifest.json b/music_assistant/providers/soundcloud/manifest.json index ffcf9864..dad27a41 100644 --- a/music_assistant/providers/soundcloud/manifest.json +++ b/music_assistant/providers/soundcloud/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "soundcloud", + "stage": "stable", "name": "Soundcloud", "description": "Support for the Soundcloud streaming provider in Music Assistant.", "codeowners": ["@domanchi", "@gieljnssns"], diff --git a/music_assistant/providers/spotify/manifest.json b/music_assistant/providers/spotify/manifest.json index 01574ac6..52d3dacb 100644 --- a/music_assistant/providers/spotify/manifest.json +++ b/music_assistant/providers/spotify/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "spotify", + "stage": "stable", "name": "Spotify", "description": "Support for the Spotify streaming provider in Music Assistant.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/spotify_connect/manifest.json b/music_assistant/providers/spotify_connect/manifest.json index 9567aa15..5236767f 100644 --- a/music_assistant/providers/spotify_connect/manifest.json +++ b/music_assistant/providers/spotify_connect/manifest.json @@ -1,6 +1,7 @@ { "type": "plugin", "domain": "spotify_connect", + "stage": "alpha", "name": "Spotify Connect", "description": "Add Spotify Connect support to ANY Music Assistant player.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/squeezelite/manifest.json b/music_assistant/providers/squeezelite/manifest.json index ad7cb55f..d9eda7c8 100644 --- a/music_assistant/providers/squeezelite/manifest.json +++ b/music_assistant/providers/squeezelite/manifest.json @@ -1,6 +1,7 @@ { "type": "player", "domain": "squeezelite", + "stage": "stable", "name": "Squeezelite (slimproto players)", "description": "Support for Squeezelite, a software-based player implementing the slimproto protocol, which was originally designed for the Squeezebox hardware players. Other players and/or original Squeezebox hardware might also work with this provider, but without any guarantees/support.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/subsonic_scrobble/manifest.json b/music_assistant/providers/subsonic_scrobble/manifest.json index 702a9193..7ff71392 100644 --- a/music_assistant/providers/subsonic_scrobble/manifest.json +++ b/music_assistant/providers/subsonic_scrobble/manifest.json @@ -1,6 +1,7 @@ { "type": "plugin", "domain": "subsonic_scrobble", + "stage": "beta", "name": "Subsonic Scrobbler", "description": "Report your music playback back to Subsonic server", "codeowners": ["@clusters"], diff --git a/music_assistant/providers/test/manifest.json b/music_assistant/providers/test/manifest.json index a8cd64d7..53691435 100644 --- a/music_assistant/providers/test/manifest.json +++ b/music_assistant/providers/test/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "test", + "stage": "alpha", "name": "Test / demo provider", "description": "Test/Demo provider that creates a collection of fake media items.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/theaudiodb/manifest.json b/music_assistant/providers/theaudiodb/manifest.json index 9b2eaecf..ba1604da 100644 --- a/music_assistant/providers/theaudiodb/manifest.json +++ b/music_assistant/providers/theaudiodb/manifest.json @@ -1,6 +1,7 @@ { "type": "metadata", "domain": "theaudiodb", + "stage": "stable", "name": "The Audio DB", "description": "TheAudioDB is a community Database of audio artwork and metadata with a JSON API.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/tidal/manifest.json b/music_assistant/providers/tidal/manifest.json index c94c2359..a03aac37 100644 --- a/music_assistant/providers/tidal/manifest.json +++ b/music_assistant/providers/tidal/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "tidal", + "stage": "stable", "name": "Tidal", "description": "Support for the Tidal streaming provider in Music Assistant.", "codeowners": ["@jozefKruszynski"], diff --git a/music_assistant/providers/tunein/manifest.json b/music_assistant/providers/tunein/manifest.json index 57429700..157aa503 100644 --- a/music_assistant/providers/tunein/manifest.json +++ b/music_assistant/providers/tunein/manifest.json @@ -1,6 +1,7 @@ { "type": "music", "domain": "tunein", + "stage": "stable", "name": "Tune-In Radio", "description": "Play your favorite radio stations from Tune-In in Music Assistant.", "codeowners": ["@music-assistant"], diff --git a/music_assistant/providers/ytmusic/manifest.json b/music_assistant/providers/ytmusic/manifest.json index eefb914c..7ab36ca5 100644 --- a/music_assistant/providers/ytmusic/manifest.json +++ b/music_assistant/providers/ytmusic/manifest.json @@ -1,10 +1,16 @@ { "type": "music", "domain": "ytmusic", + "stage": "experimental", "name": "YouTube Music", "description": "Support for the YouTube Music streaming provider in Music Assistant.", "codeowners": ["@MarvinSchenkel"], - "requirements": ["ytmusicapi==1.10.3", "yt-dlp==2025.6.9", "duration-parser==1.0.1", "bgutil-ytdlp-pot-provider==1.1.0"], + "requirements": [ + "ytmusicapi==1.10.3", + "yt-dlp==2025.6.9", + "duration-parser==1.0.1", + "bgutil-ytdlp-pot-provider==1.1.0" + ], "documentation": "https://music-assistant.io/music-providers/youtube-music/", "multi_instance": true } diff --git a/pyproject.toml b/pyproject.toml index 4618f7dc..33bf6bd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ dependencies = [ "ifaddr==0.2.0", "mashumaro==3.16", "music-assistant-frontend==2.15.2", - "music-assistant-models==1.1.46", + "music-assistant-models==1.1.47", "mutagen==1.47.0", "orjson==3.10.18", "pillow==11.2.1", diff --git a/requirements_all.txt b/requirements_all.txt index f1166903..b50e2a2b 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -30,7 +30,7 @@ ifaddr==0.2.0 liblistenbrainz==0.5.6 mashumaro==3.16 music-assistant-frontend==2.15.2 -music-assistant-models==1.1.46 +music-assistant-models==1.1.47 mutagen==1.47.0 orjson==3.10.18 pillow==11.2.1