Releases: serenity-rs/songbird
v0.2.1
This patch release adds support for the yt-dlp
fork of youtube-dl
, and fixes track events to correctly fire events when multiple timed handlers are present on a track.
Thanks to the following for their contributions:
Added
- [docs] Docs: added documentation for
yt-dlp
feature (#106) (@Lunarmagpie) c:73323e5 - [input] Input: Allows yt-dlp usage as another youtube-dl fork (#90) (@Miezhiko) c:6fcb196
Fixed
v0.2.0 — Magpie
Magpies are a common sight year-round; strong, intelligent, industrious, and loyal.
Taking after the humble magpie, this breaking release makes API changes favouring extensibility, patching some of the API rough spots, and adding resilience to some additional classes of failure.
Thanks to the following for their contributions:
Upgrade Pathway
- References to
songbird::{opus, Bitrate};
should now usesongbird::driver::{opus, Bitrate};
. - Custom
Inputs
(i.e.,Reader::Extension
/ExtensionSeek
) now need to implementinput::reader::MediaSource
rather than justRead
and/orSeek
. - Sources which do not support seeking should have an
unreachable!()
function body or always return an error, asMediaSource::is_seekable()
is used to gate support. - Many event handler types in
songbird::EventContext
have changed to unitenum
s, rather thanstruct
variants. - New body types are included in
songbird::events::context_data::*
. Config
structs have been made non-exhaustive; they should be initialised viaConfig::default()
.- Channel join operations may now timeout after a default 10s—which should be handled.
- Errors returned when joining a channel will now inform you whether you should try to
leave
a channel before rejoining. - Youtube-dl variants of
songbird::input::error::Error
have had their case altered fromDL
->Dl
. TrackState
sent from the driver are no longer boxed objects.DriverDisconnect
events have been introduced, which cover all disconnect events. As a result,DriverConnectFailed
andDriverReconnectFailed
are deprecated.- Tokio 0.2 support is deprecated. Related features will be removed as of Songbird 0.3.
Added
- [driver] Driver: Automate (re)connection logic (#81) (@FelixMcFelix) c:210e3ae
- [input] Input: Add separate YouTube title and channel to Metadata (#75) (@vilgotf) c:edcd39a
- [input] Input: Implement StdError for DcaError, input::Error (#73) (@vilgotf) c:e1fc041
- [gateway] Gateway: Add debug logging around shard handling (@FelixMcFelix) c:b3caf05
- [gateway] Gateway: Add connection timeout, add
Config
to gateway. (#51) (@FelixMcFelix) c:d303e0a
Changed
- [deps] Deps: Bump async-tungstenite version -> 0.14 (@FelixMcFelix) c:47e20d6
- [docs] Chore: Update Lavalink URLs (@FelixMcFelix) c:3efe756
- [deps] Deps: Bump twilight versions -> [0.5, 0.7) (#87) (@vilgotf) c:91d7542
- [tracks] Tracks: Remove box around TrackState (#84) (@vilgotf) c:91d7542
- [deps] Deps: Bump twilight versions -> 0.5 (#79) (@vilgotf) c:d2bb277
- [input] Input, Driver: Make error messages more idiomatic (#74) (@vilgotf) c:a96f033
- [docs] Chore: Rewrite update pathway. (@FelixMcFelix) c:8000da6
- [deps] Deps: Bump DiscoRTP version -> 0.4 (@FelixMcFelix) c:7fc971a
- [deps] Deps: Bump twilight versions -> 0.4 (@FelixMcFelix) c:fc94ddb
- [deps] Deps: Bump xsalsa20poly1305 version -> 0.7 (@FelixMcFelix) c:eb22443
- [input] Input: Change all Youtube-dl functions to take
AsRef<str>
(#70) (@clarity0) c:a1ba760 - [gateway] Chore: Adapt #60, #64 in line with other breaking changes. (@FelixMcFelix) c:63d53b2
- [input] Use symphonia::io::MediaSource for Reader extensions (#61) (@james7132) c:a86898c
- [input] Input: Rename YTDL error variants for Clippy (#55) (@FelixMcFelix) c:3c7f86d
- [events] Events: Break out and non-exhaust context body structs (#54) (@FelixMcFelix) c:e7af0ff
- [driver] Driver: Move
Bitrate
import out of crate root. (#53) (@FelixMcFelix) c:1eed9dd - [deps] Deps: Bump DiscoRTP version -> 0.3 (#52) (@FelixMcFelix) c:bc952d0
Fixed
- [driver] Driver: Fix incorrect leave behaviour in Drop handler (@FelixMcFelix) c:dad48ca
- [benchmarks] Fix: Update Benchmark Imports (@FelixMcFelix) c:338a042
- [lint] Chore: Clippy fixes for new lints (@FelixMcFelix) c:a1c4f07
- [fmt] Chore: Repair formatting. (@FelixMcFelix) c:cd2ade9
- [fmt] Chore: Fix clippy warnings (useless clones). (@FelixMcFelix) c:21b8383
- [gateway] Gateway: Fix repeat joins on same channel from stalling (#47) (@FelixMcFelix) c:95dd19e
v0.1.8
v0.1.7
This release mainly patches an occasionally spinning task, due to a critical WebSocket read error.
Thanks to the following for their code contributions:
And special thanks to @jtscuba and @JellyWX for their efforts in reproducing, debugging and diagnosing the above issue.
Changed
Fixed
- [driver] Driver: Fix for busy-wait in WS thread. (#78) (@FelixMcFelix) c:b925309
v0.1.6
This patch release fixes a driver crash on leaving a channel, adds a utility method for requesting the current channel ID, and limits a sub-dependency to ensure compatibility with Rust v1.48.0.
Thanks to the following for their contributions:
Added
- [gateway] Gateway: Introduce Call::current_channel (#60) (@DoumanAsh) c:22214a0
Fixed
- [deps] Deps: Prevent MSRV breakage via
spinning_top
(#64) (@FelixMcFelix) c:a88b185 - [driver] Driver: Fix crash on
.leave()
(#63) (@FelixMcFelix) c:24d8da6
v0.1.5
This patch release adds bugfixes for incorrect seeking in Restartable sources and resource usage of inactive Driver
s, as well as some utility methods and reduced logging.
Thanks to the following for their contributions:
Added
- [gateway] Gateway: Allow connection info to be retrieved (#49) (@FelixMcFelix) c:db79940
- [misc] Repo: Organise and document processes and architecture (#43) (@FelixMcFelix) c:1fcc8c0
Changed
- [deps] Deps: Update async-tungstenite -> 0.13 (#50) (@FelixMcFelix) c:f230b41
- [driver] Driver: Reduce logging level in general (#48) (@FelixMcFelix) c:a3f86ad
Fixed
- [driver] Prevent mixer thread from waking while inactive (#46) (@FelixMcFelix) c:a9b4cb7
- [input] Fix input source timestamp pre-input argument decimal formatting (#45) (@DasEtwas) c:c488ce3
- [examples] Break reference cycle in voice storage example (#44) (@FelixMcFelix) c:b9a926c
v0.1.4
This patch release updates introduces a new event type, to expose a driver's SSRC externally on connect.
Thanks to the following for their contributions:
Added
- [events] Events: Add
SsrcKnown
event (@FelixMcFelix) c:f3f5242 - [misc] Chore: Add missing changelog notes for 0.1.3 (@FelixMcFelix) c:0e860dc
Changed
- [deps] Deps: Update async-tungstenite -> 0.12 (@FelixMcFelix) c:a40fac3
v0.1.3
This patch release corrects the process drop logic to cleanup all chained child processes, and for Input
s to be safe to drop in async contexts. Additionally, this adds backwards-compatibility for Tokio 0.2 in serenity-based bots.
Thanks to the following for their contributions:
Added
- [deps] Chore + Deps: Add the
log
feature to tracing (@FelixMcFelix) c:1863d39 - [driver] Library: Add compatibility for legacy Tokio 0.2 (#40) (@FelixMcFelix) c:aaab975
Fixed
- [input] Fix: hand off process killing to blocking thread, await all children. (@FelixMcFelix) c:b245309
v0.1.2
This patch release fixes a PID/zombie process leak affecting bots running on Linux/Mac, and prevents youtube-dl warnings from being converted into fatal errors.
This release also changes Songbird
managers to use DashMap internally, which should substantially speed up concurrent shard accesses to the central call registry.
Thanks to the following for their contributions:
Changed
- [gateway] Gateway: Move from RwLock to DashMap (@FelixMcFelix) c:a0e905a
- [misc] Chore: Categorise v0.1.1 commits (@FelixMcFelix) c:196d5be
Fixed
- [driver] Input & Driver: Fix zombie processes on Unix (#39) (@FelixMcFelix) c:fe2282c
- [input] Fix: Prevent ytdl treating warnings as errors. (@FelixMcFelix) c:658fd83
v0.1.1
This is a short patch release, fixing some error message spam under network failures, adding some new convenience event classes, as well as making it easier to cancel many event handlers.
Thanks to the following for their contributions:
Added
- [events] Events: Add Play/Pause events. (@FelixMcFelix) c:868c44c
- [events] Events: Add (re)connect success/fail events. (@FelixMcFelix) c:cb2398f
- [driver] Driver: Add ability to clear all global event handlers. (@FelixMcFelix) c:55b8e7f
Fixed
- [driver] Driver: Fix noisy errors, UDP message send failure spam. (@FelixMcFelix) c:dcb6ad9