Prepare for 0.4.0 release

This commit is contained in:
Roderick van Domburg 2022-05-21 22:14:18 +02:00
parent 2e8d145bc9
commit 310b3cca81
No known key found for this signature in database
GPG key ID: A9EF5222A26F0451

View file

@ -5,46 +5,44 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) since v0.2.0. and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) since v0.2.0.
## [Unreleased] ## [0.4.0] - 2022-05-21
### Changed ### Changed
- [main] Enforce reasonable ranges for option values (breaking). - [chore] The MSRV is now 1.53
- [main] Don't evaluate options that would otherwise have no effect. - [contrib] Hardened security of the `systemd` service units
- [playback] `alsa`: Improve `--device ?` functionality for the alsa backend. - [core] `Session`: `connect()` now returns the long-term credentials
- [contrib] Hardened security of the systemd service units - [core] `Session`: `connect()` now accepts a flag if the credentails should be stored via the cache
- [main] Verbose logging mode (`-v`, `--verbose`) now logs all parsed environment variables and command line arguments (credentials are redacted). - [main] Different option descriptions and error messages based on what backends are enabled at build time
- [playback] `Sink`: `write()` now receives ownership of the packet (breaking).
- [playback] `pipe`: create file if it doesn't already exist
- [playback] More robust dynamic limiter for very wide dynamic range (breaking) - [playback] More robust dynamic limiter for very wide dynamic range (breaking)
- [core] `Session`: `connect()` now returns the long-term credentials. - [playback] `alsa`: improve `--device ?` output for the Alsa backend
- [core] `Session`: `connect()` now accespt a flag if the credentails should be stored via the cache.
- [chore] The MSRV is now 1.53.
- [playback] `gstreamer`: create own context, set correct states and use sync handler - [playback] `gstreamer`: create own context, set correct states and use sync handler
- [playback] `pipe`: create file if it doesn't already exist
- [playback] `Sink`: `write()` now receives ownership of the packet (breaking)
### Added ### Added
- [cache] Add `disable-credential-cache` flag (breaking). - [main] Enforce reasonable ranges for option values (breaking)
- [main] Use different option descriptions and error messages based on what backends are enabled at build time. - [main] Add the ability to parse environment variables
- [main] Add a `-q`, `--quiet` option that changes the logging level to warn. - [main] Log now emits warning when trying to use options that would otherwise have no effect
- [main] Add a short name for every flag and option. - [main] Verbose logging now logs all parsed environment variables and command line arguments (credentials are redacted)
- [main] Add the ability to parse environment variables. - [main] Add a `-q`, `--quiet` option that changes the logging level to WARN
- [playback] `pulseaudio`: set the PulseAudio name to match librespot's device name via `PULSE_PROP_application.name` environment variable (user set env var value takes precedence). (breaking) - [main] Add `disable-credential-cache` flag (breaking)
- [playback] `pulseaudio`: set icon to `audio-x-generic` so we get an icon instead of a placeholder via `PULSE_PROP_application.icon_name` environment variable (user set env var value takes precedence). (breaking) - [main] Add a short name for every flag and option
- [playback] `pulseaudio`: set values to: `PULSE_PROP_application.version`, `PULSE_PROP_application.process.binary`, `PULSE_PROP_stream.description`, `PULSE_PROP_media.software` and `PULSE_PROP_media.role` environment variables (user set env var values take precedence). (breaking) - [playback] `pulseaudio`: set the PulseAudio name to match librespot's device name via `PULSE_PROP_application.name` environment variable (user set env var value takes precedence) (breaking)
- [playback] `pulseaudio`: set icon to `audio-x-generic` so we get an icon instead of a placeholder via `PULSE_PROP_application.icon_name` environment variable (user set env var value takes precedence) (breaking)
- [playback] `pulseaudio`: set values to: `PULSE_PROP_application.version`, `PULSE_PROP_application.process.binary`, `PULSE_PROP_stream.description`, `PULSE_PROP_media.software` and `PULSE_PROP_media.role` environment variables (user set env var values take precedence) (breaking)
### Fixed ### Fixed
- [main] Prevent hang when discovery is disabled and there are no credentials or when bad credentials are given. - [connect] Don't panic when activating shuffle without previous interaction
- [main] Don't panic when parsing options. Instead list valid values and exit.
- [main] `--alsa-mixer-device` and `--alsa-mixer-index` now fallback to the card and index specified in `--device`.
- [core] Removed unsafe code (breaking) - [core] Removed unsafe code (breaking)
- [playback] Adhere to ReplayGain spec when calculating gain normalisation factor. - [main] Fix crash when built with Avahi support but Avahi is locally unavailable
- [playback] `alsa`: Use `--volume-range` overrides for softvol controls - [main] Prevent hang when discovery is disabled and there are no credentials or when bad credentials are given
- [connect] Don't panic when activating shuffle without previous interaction. - [main] Don't panic when parsing options, instead list valid values and exit
- [main] Fix crash when built with Avahi support but Avahi is locally unavailable. - [main] `--alsa-mixer-device` and `--alsa-mixer-index` now fallback to the card and index specified in `--device`.
- [playback] Adhere to ReplayGain spec when calculating gain normalisation factor
- [playback] `alsa`: make `--volume-range` overrides apply to Alsa softvol controls
### Removed ### Removed
- [playback] `alsamixer`: previously deprecated option `mixer-card` has been removed. - [playback] `alsamixer`: previously deprecated options `mixer-card`, `mixer-name` and `mixer-index` have been removed
- [playback] `alsamixer`: previously deprecated option `mixer-name` has been removed.
- [playback] `alsamixer`: previously deprecated option `mixer-index` has been removed.
## [0.3.1] - 2021-10-24 ## [0.3.1] - 2021-10-24
@ -119,7 +117,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.1.0] - 2019-11-06 ## [0.1.0] - 2019-11-06
[unreleased]: https://github.com/librespot-org/librespot/compare/v0.3.1..HEAD [0.4.0]: https://github.com/librespot-org/librespot/compare/v0.3.1..v0.4.0
[0.3.1]: https://github.com/librespot-org/librespot/compare/v0.3.0..v0.3.1 [0.3.1]: https://github.com/librespot-org/librespot/compare/v0.3.0..v0.3.1
[0.3.0]: https://github.com/librespot-org/librespot/compare/v0.2.0..v0.3.0 [0.3.0]: https://github.com/librespot-org/librespot/compare/v0.2.0..v0.3.0
[0.2.0]: https://github.com/librespot-org/librespot/compare/v0.1.6..v0.2.0 [0.2.0]: https://github.com/librespot-org/librespot/compare/v0.1.6..v0.2.0