# Changelog ## Future release ### General - Changes are now documented in `CHANGELOG.md` instead of inside individual Github releases ### Server - API version is now 7.0 - ⚠️ Removed support for authentication via cookies (deprecated in Polaris 0.13.0) - ⚠️ Removed support for authentication via the `Basic` scheme when using the HTTP `Authorization` header (deprecated in Polaris 0.13.0) - Fixed a bug where all music sources would be deleted when trying to add sources with duplicate names - Additional metadata fields are now indexed: lyricist, composer, genre and label (thanks @pmphfm) - Endpoints returning thumbnail images or audio files no longer use HTTP `content-encoding` - The `/thumbnail` endpoint now supports an optional parameter for small/large/native image sizing. (thanks @Saecki) ### Web client - Volume slider now applies non-linearly - Artist names are now displayed in the Random Albums and Recent Albums pages ## Polaris 0.13.5 ### Server - Added support for AIFF and WAVE files (thanks @gahag) ### Web Client - Improved performance when scrolling large playlists - Fixed display and playback issues when a song was used multiple times in a playlist - Playlist duration can now display number of days - Fixed a bug where the playlist panel could have blank space in very tall browser windows - Major dependencies updates ## Polaris 0.13.4 ### Server Adjustments to logging behavior. On Linux: - Running without `-f` emits a log file - Running with `-f` and no `--log` option does not emit a log file - Running with `-f` and `--log` option emits a log file On Windows: - Running with UI feature (`polaris.exe` in releases) emits a log file - Running without UI feature (`polaris-cli.exe` in releases) and no --log option does not emit a log file - Running without UI feature (`polaris-cli.exe` in releases) and --log option emits a log file ## Polaris 0.13.3 ### Server - Fixed a bug where music that is no longer on disk was still considered in the collection, even after re-indexing - On Windows, Polaris now creates a log file - On Linux, Polaris now creates a log file, even when running with the -f option ## Polaris 0.13.2 ### Web client - Fixed a bug where it was not possible to view or edit which users have administrator rights - Fixed a bug where, in some cases, drag and dropping a specific disc from an album would not queue the entire disc ## Polaris 0.13.1 ### Server - Fixed a bug where the Windows installer would create unusable installations. #122 ## Polaris 0.13.0 ### API changes - Bumped API version number to 6.0. - Added new endpoints to manage users, mount points and settings more granularly. - Added support for authenticating via bearer tokens generated by the /auth endpoint. These token can be submitted via Bearer HTTP Authorization headers, or as a URL parameters (`?auth_token=…`). - Authentication using cookies or Basic HTTP Authorization headers is deprecated and will be removed in a future revision. - Authentication cookies no longer expire after 24 hours. The newly added bearer tokens also have no expiration date. - Last.fm account linking now requires a short-lived auth token obtain from the newly added `lastfm/link_token' endpoint. Server - ⚠️Breaking change⚠️ If you use a config file, the `reindex_every_n_seconds` and `album_art_pattern` fields must now be in a [settings] section. - ⚠️Breaking change⚠️ The installation process on Linux has changed a lot. See the README for updated installation instructions. A summary of the changes is available [here](https://github.com/ogarcia/docker-polaris/issues/2). - Embedded album art is now supported for mp3, flac and m4a files (thanks @Saecki). - OPUS files can now be indexed and streamed (thanks @zaethan). - APE files can now be indexed and streamed. - The collection indexer has been rewritten for better performance. This also fixed an issue where on some machines, the web client would be unusable while indexing (thanks @inicola for the code reviews). - Thumbnail generation is now slightly faster, and works with more pixel formats (notably RGBA16). - Polaris now uses actix-web instead or rocket. This change fixes numerous performance and stability issues. - Sqlite is now bundled by default when building Polaris and was removed from the list of prerequisites. This can be controlled with the `bundle-sqlite` feature flag when compiling Polaris. - The default album art pattern now includes the jpeg extension in addition to jpg. - Album art patterns are now case insensitive. Web client - ⚠️Breaking change⚠️ Your current playlist will appear broken after this update. Please clear the current playlist using the trash can icon. Saved playlists are not affected. - Added a logout button. - Reworked interface for managing user accounts. - Added a shuffle button to randomly re-order the content of the current playlist. - The total duration of the current playlist is now displayed. - Audio output can now be toggled on/off by clicking the volume icon. - Individual discs from multi-disc albums can now be dragged into the playlist. - When browsing to an album, songs are now displayed and queued in filepath order. - Fixed a bug where albums could not be dragged from the random or recent views. - Fixed a bug where directories with a # sign in their name could not be browsed to. ## Polaris 0.12.0 ### Server - Library indexing speed is now significantly faster - When indexing files that have malformed ID3 tags, information preceding the error will no longer be discarded - Deleted users can no longer make requests using an existing session - When using a config file, existing users, mounts points and DDNS settings are no longer removed before applying the configuration - When using a config file to create users, blank usernames are now ignored - Improved architecture and added more unit tests API Changes - API version number bumped to 4.0 - The auth endpoint now returns HTTP cookies instead of a JSON response - Client requests to update Last.fm status no longer return an error if no Last.fm account is associated with the user - The thumbnail endpoint now supports an option to disable padding to a square image Web client - The web client now uses Vue instead of Riot as its UI framework - Added support for theming ## Polaris 0.11.0 ### Server - Compatible with current versions of the Rust nightly compiler - Fixed a rare crash when indexing corrupted mp3 files - On Linux, Polaris now notifies systemd after starting up - Release tarball for Linux version now includes a top-level directory - User sessions no longer break across server restarts (more improvements still to do on this: #36) - ⚠️ Breaking change: due to improvements in Polaris credentials management, you will have to re-create your users and playlists after upgrading to this version. If you want to preserve your playlists, you can use a program like DB Browser for SQLite to back up your playlists (from db.sqlite within your Polaris installation directory) and restore them after you re-create users with the same names. ### Web client - Song durations are now listed when available - Fixed a bug where clicking on breadcrumbs did not always work when the Polaris server is hosted on Windows - Current track info now shows in browser tab title - Fixed a semi-rare bug where indexing would not start during initial setup flow - Improved handling of untagged songs - Fixed a bug where playlist had padding in Chrome - Fixed a bug where folder icons did not render on some systems Thank you to @lnicola for working on most of the server changes! ## Polaris 0.10.0 ### Server - Polaris servers now ship with an interactive API documentation, available at http://localhost:5050/swagger - When using a prefix URL in Polaris config files, a / will no longer be added automatically at the end of the prefix ### Web client - Automatically bring up player panel when songs are queued - Fixed a bug where songs were not always correctly sorted by track number in browser panel - Fixed a bug where some button hitboxes didn't match their visuals ## Polaris 0.9.0 ### Server - Rewrote all endpoints and server setup using Rocket instead of Iron - Fixed a bug where special characters in URL to collection folders were not handled correctly (bumped API version number) - Server API is now unit tested - Fixed a bug where lastFM integration endpoints did not work - ⚠️ Compiling Polaris now requires the nightly version of the Rust compiler ### Web client - Encode special characters in URL to collection folders ## Polaris 0.8.0 ### Server - Added new API endpoints for search - Added new API endpoints for Last.fm integration - Thumbnails are now stored as .jpg images instead of .png - Duration of some audio files is now being indexed - On Linux when running as a forking process, a .pid file will be written - Fixed a bug where usernames were inserted in session even after failed authentication ### Web client - Added search panel - Added settings tab to link Last.fm account ## Polaris 0.7.1 ### Server - Added support for prefix_url option in configuration files - Improved performance of thumbnail creation ## Polaris 0.7.0 ### Server - Added support for the Partial-Content HTTP header when serving music, this fixes several streaming/seeking issues when using the web client (especially in Chrome) - New API endpoints for playlist management - New command line argument (-p) to run on a custom port (contribution from @jxs) - New command line argument (-f) to run in foreground on Linux (contribution from @jxs) - Fixed a bug where tracks were queued out of order - Updated program icon on Windows Web client - Added support for playlists - Added a button to to queue the current directory (thanks @jxs) ## Polaris 0.6.0 ### Server - Internal improvements to database management (now using Diesel) - Configuration settings are now stored in the database, polaris.toml config files are no longer loaded by default - Added API endpoints to read and write configuration - User passwords are now encrypted in storage - Fixed a bug where results of api/browse were not sorted correctly Web client - Settings can now be edited from the web UI - Collection re-index can now be triggered from the web UI - Added initial setup configuration flow to help set up first user and mount point - Visual changes ## Polaris 0.5.1 This is a minor release, pushing quite a bit of internal cleanup in the wild. Server - Removed OpenSSL dependency on Windows - No longer send a HTTP cookie after authentication ## Polaris 0.5.0 This releases adds Linux support and a variety of improvements to the web client. ### Server - Added Linux support - Moved location of configuration file on Windows to `%appdata%\Permafrost\Polaris\polaris.toml` ### Web client - Performance improvements from upgrading RiotJS to 3.4.4 (from 2.6.2) - Added support for browsing random and recently added albums - Minor visual changes (colors, whitespace, etc.) - Updated favicon - Fixed a bug where songs containing special characters in their title would not play - Persist playlist and player state across sessions ## Polaris 0.4.0 This release adds new features supporting the development of polaris-android. ### Server - Added API endpoint to pull recently added albums - Added support for the Authorization HTTP header (in addition to the existing /auth API endpoint) ## Polaris 0.3.0 This release is an intermediate release addressing issues with the installation process and updating internals. ### General - Fixed missing OpenSSL DLL in Windows installer (fixes Issue #3) - Split every file into an individual installer component ### Server - Added API endpoint to pull random albums - Upgraded dependencies - Added unit tests to indexing and metadata decoding ### Web client - Web interface playlist now displays more tracks (enough to fill a 4k monitor at normal font size) ## Polaris 0.2.0 This release is focused on polish and performance, solidifying the basics that were put together in version 0.1.0. Here are the major changes: ### General - Polaris now has a project logo - Windows installer now supports upgrading an existing install (from 0.2.0 to higher - versions) - Added support for multi-disc albums ### Server - Major performance improvements to /browse and /flatten API requests (up to 1000x - faster for large requests) - Added API endpoint for version number - Album covers are now served as thumbnails rather than at source size - Moved configuration file outside of /Program Files - Added support for Ogg Vorbis, FLAC and APE metadata - Fixed a bug where most albums didn't show an artist name - Fixed a bug where uppercase extensions were not recognized - Upgraded compiler to Rust 1.13 ### Web client - Complete visual overhaul of the Polaris web client - Performance improvements for handling large playlist in Polaris web client - Added error messages when playing songs in unsupported formats ## Polaris 0.1.0 This is the very first Polaris release, celebrating the minimum viable product! Features in this release: - Server application with Windows Installer - Support for multiple users - Support for serving custom music directories - Support for custom album art pattern matching - Support for broadcasting IP to YDNS - Web UI to browse collection, manage playlist and listen to music