Navidrome Versions Save

🎧☁️ Modern Music Server and Streamer compatible with Subsonic/Airsonic

v0.48.0

1 year ago

This release is focused on fixing bugs and security issues. Also fixes a bunch of edge cases in Smart Playlists. Thanks to all contributors who helped in this release.

Highlights

  • [UI] New Theme - Nord #1899. Thanks @renere and @tpbnick
  • [UI] New Theme - Monokai #1669. Thanks @chief8192
  • [UI] New Theme - Electric Purple #1889. Thanks @william-lohan
  • [UI] New config DefaultLanguage #1561
  • [UI] "Linkify" URLs in Album and Playlist comments #1053
  • [Server] Add "random" sort option to Smart Playlists
  • [Server] Add ListenBrainz URL config, allowing to use self-hosted solutions #1774. Thanks @andyklimczak
  • [Server] Add basic Prometheus metrics #1830. Thanks @AlekseyLobanov
  • [Server] Fix cache not honoring ND_TRANSCODINGCACHESIZE #1778
  • [Build] Fix building on Fedora. Thanks @pimzand for reporting it
  • [Build] Minimum Go version is now 1.18

Changelog

  • af5c2b5a Round song duration (instead of truncating it). Relates to #1926
  • 62e74923 Add Linkify test
  • 53a4ea67 Linkify urls in playlist comments
  • c530ccf1 Linkify urls in album comments. Fixes #1053, supersedes #1570 and #1169
  • fa5dc5af Fix adding songs to plain playlists
  • bbd3882a Some clean-up in criteria package
  • 12b4a488 Fix get info dialog in artist page. Closes #1909
  • 37f7625c Bump github.com/prometheus/client_golang from 1.12.1 to 1.13.0 (#1902)
  • 7612a558 Bump github.com/mileusna/useragent from 1.2.0 to 1.2.1 (#1901)
  • 3d5a1cef Don't allow adding songs to smart playlists
  • 552989a0 Add basic Prometheus metrics handler (#1830)
  • 6a6fa3e3 Nord Theme - Make links have a different colour (#1900)
  • c7ef4bd8 Capture "musicbrainz_releasetrackid" tag (#1827)
  • 22507c97 Add Nord Theme. Closes #1158 and supersedes #1159 (#1899).
  • 87feac04 Add make target to download some music for development purposes. Closes #1703
  • f82df703 Add nilerr linter
  • 364e699a Add asciicheck, bidichk, and durationcheck linters
  • 0798959b Add asasalint linter
  • 4209e142 Add theme Electric Purple (#1889)
  • 77dbafff Add errorlint linter
  • db67c127 Fix error comparisons
  • 7b0a8f47 Add exportloopref linter
  • 16865f0f remove deprecated linters (#1898)
  • 5965459b Update browserlist db
  • 66818b25 Allow ExternalLink icons to be styled (#1503)
  • e7fab8bb Show AlbumArtist in Album table view. Fixes #1626
  • 8befe10e fix(UI): Warn if track is already present when adding to playlist - 1604 (#1897)
  • 218d1472 Bump redux and react-redux versions
  • 50a4ce6b Fix add playlist dialog (#1758)
  • 8130c05c Mount devcontainer workspace SELinux compatible (#1816)
  • 15952a3c npm audit fix
  • 9a99a2bd Update Chinese (simplified) translations (#1633)
  • c7b65509 Bump @testing-library/jest-dom from 5.15.0 to 5.16.5 in /ui (#1836)
  • 6b09dc71 Fix new test-library eslint errors
  • 86ab3506 Upgrade react-scripts to 5.0.1
  • 413292da Reduce go mod download verbosity
  • 694968c6 Bump dependencies
  • 6dc70d68 Don't reset language to default after logout
  • bfeb8ef6 DefaultLanguage is now case-insensitive
  • ba28e9a1 Update README. Fixes #1834
  • 2f7a3c5e feat: Add listenbrainz base url configuration (#1774)
  • cb3ba23f New config DefaultLanguage. Closes #1561
  • 72cde6df fix:(middlewares.go) - Set Cookie SameSite mode to Strict - 1776 (#1777)
  • 751e42c7 Fix creating server (#1894)
  • ded9ab53 Use armhf for ARM builds
  • 416b5c7d Fix Linux 32 bits build
  • afb31c3e Fix invalid option in pipeline
  • dd57278b Upgrade to GoLang 1.19 and bump golangci-lint version
  • 2a3cd08f Fix GO-S2114 security issue
  • a7a0e239 Fix formatting
  • 4cf43ed7 Only compute version once
  • ebad96b8 Fix warning about mixing value and pointer receivers
  • e981ee27 Add test for WithTx
  • 965dbccd Upgrade to latest go-sqlite3 (it's v1.14, not v2!)
  • 695f82a1 Upgrade to Beego 2's orm
  • 16afd3a4 Remove //+build tags, as the code does not compile on older versions of Go anymore
  • 67f2a89d Fix tracks never "loved" to be selected in Smart Playlists. Refer to https://github.com/navidrome/navidrome/issues/1417#issuecomment-1163423575
  • bf1f93ef Bump github.com/go-chi/httprate from 0.5.2 to 0.6.0 (#1828)
  • ebf7354d Add more info in search log message
  • c0066ebd Add log warn when request is cancelled/interrupted
  • cd5bce7b Speed up /search subsonic endpoints by parallelizing the queries
  • d613b193 Simplify Singleton usage by leveraging Go 1.18's generics
  • a2d9aaef Fix Quality translation in Spanish
  • 49392e06 Update caniuse-lite
  • 181cb8a2 Remove interfacer linter, as it does not work with Go 1.18 and will not be updated (it is deprecated)
  • 31882abf Upgrade Ginkgo to V2
  • 0d8eaa28 Remove experimental version of context package
  • f4bffb16 Update @djherbis's packages
  • f2184730 Remove hardcoded github.com/dhowden/tag branch. Fix #1764
  • 9c3b14c5 Return 501 for "not implemented". Fixes #1785
  • 8cd405d1 Add IP to Subsonic API's invalid login log messages. Closes #1814
  • 35bec14d Add missing test case for #1778
  • 321b3c5a Fix fscache key mapping. Closes #1778
  • b7e50f77 Fix docker build in pipeline
  • 2e9c81c3 Bump github.com/mileusna/useragent from 1.0.2 to 1.1.0 (#1819)
  • 49647423 Bump github.com/sirupsen/logrus from 1.8.1 to 1.9.0 (#1821)
  • 9f62533b Bump github.com/go-chi/cors from 1.2.0 to 1.2.1 (#1822)
  • 7d58f446 Bump github.com/lestrrat-go/jwx from 1.2.17 to 1.2.25 (#1742)
  • 974816f0 Bump github.com/onsi/gomega from 1.18.1 to 1.20.0 (#1817)
  • 7665478a Upgrade golangci-lint and fix new lint error
  • bde5be34 Build with GoLang 1.18.4
  • aae79b45 Upgrade to GoLang 1.18
  • ce0db834 Fix signaler not exiting on cancel (#1638)
  • 5987cd0c Fixes a coloring glitch with the Monokai theme "unauthorized" popup (#1670)
  • e7cf74d8 Adds a Monokai theme (#1669)
  • 2ddd3acb Fix translatable label
  • 028723f7 Fix loading overridden translations from ${DataFolder}/resources/i18n
  • 50ff8bcc Add "random" sort option for Smart Playlists
  • e966d94c Force correct mime-type for JS and CSS files

v0.47.5

2 years ago

This bug-fix release includes a fix to a potential SQL injection and a couple of other niceties and fixes.

There are a few nice contributions that needs more testing, and I plan to validate and release them in the next month or so. Stay tuned!

Highlights

  • [UI] Set volume to 100% when web player is in mobile mode. Fix #1429
  • [UI] New translations: Bulgarian (thanks @MrEddX) and Catalan (thanks Sàdur)
  • [UI] Fix ActivityPanel should behave better now, with (hopefully) no more UI freezing
  • [UI] Handle invalid theme in ui state (#1504) (thanks @srichter)
  • [Server] Fix potential SQL injection in Smart Playlists (thanks @depierre)
  • [Server] Fix issue in smart playlists with values compared to 0 (See: https://github.com/navidrome/navidrome/issues/1417#issuecomment-974052454)
  • [Server] Add name and comment fields to .NSP files
  • [Server] Allowing 3rd party UIs to access x-total-count http header (#1470) (thanks @bricej13)
  • [Subsonic] Add userRating to Subsonic Album/Artist responses. Fix #1486

Changelog

86fe1e3b Bump github.com/ReneKroon/ttlcache/v2 from 2.9.0 to 2.11.0 (#1529) eed54d7e Bump github.com/lestrrat-go/jwx from 1.2.11 to 1.2.17 (#1574) ab36344d Bump github.com/microcosm-cc/bluemonday from 1.0.16 to 1.0.17 (#1560) e5d03a3b Bump github.com/Masterminds/squirrel from 1.5.1 to 1.5.2 (#1501) 30813cd3 Update translations (#1578) 6164f37c Added Bulgarian Translation (#1577) 9e79b5cb Fix potential SQL injection in Smart Playlists 8c707b4e Handle invalid theme in ui state (#1504) 910091f1 Fix playCount casing 2e1b985d Revert "Direct link to dev build" 100b8052 Update README.md bde9d5f9 Fix TypeError: Cannot read property 'id' of undefined 69615f1a Trying to fix multiple EventStream connections, one more time a99b9b4d Direct link to dev build 9892524a Connect eventStream after login 9fe97895 Try to avoid creating multiple eventStreams 5425c1a4 Update translations (#1489) afe1e4cf Fix lint for public credentials 20cdd38f Better logging for agents configuration 913a4cf5 Bump github.com/onsi/gomega from 1.16.0 to 1.17.0 (#1459) 121ada5a Bump @testing-library/jest-dom from 5.14.1 to 5.15.0 in /ui (#1456) e59a95c9 Bump github.com/golangci/golangci-lint from 1.42.1 to 1.43.0 (#1460) d75f286a Update zh-Hans.json (#1478) 30d3f1ed Add userRating to Subsonic Album/Artist responses. Closes #1486 6a1f9678 Bump github.com/ReneKroon/ttlcache/v2 from 2.8.1 to 2.9.0 (#1414) a0977ce4 Bump github.com/go-chi/chi/v5 from 5.0.4 to 5.0.7 (#1484) b3d80386 Bump github.com/lestrrat-go/jwx from 1.2.7 to 1.2.11 (#1485) 0714f082 Recover from SIGSEGVs in taglib's code cbeaadf8 Fix logging smart playlist's song count 3e282df6 Set volume to 100% when web player is in mobile mode. ce7940bb Allow overriding name and comment when importing NSP playlists 92c31c96 Fix values from annotation table cannot be compared to 0 4bf47654 Bot that adds a download link on pull requests 6d947f6f Allowing 3rd party UIs to access x-total-count http header (#1470)

v0.47.0

2 years ago

New in this release

First implementation of Smart Playlists Smart Playlists can be created as a .NSP file and they will be imported the same way as .M3U files. Some examples are available in the GitHub issue. While I don't write a documentation page for this feature, please check the info in the issue (examples, list of fields and operators). Feel free to open an issue if you are having difficulties to use it.

Lyrics support (thanks @dheerajdlalwani / @chiraglulla) Embedded lyrics are now supported by both the Subsonic API and in the UI. There's a limitation in the UI that it only works with synchronized lyrics for now, but the work with this feature is not complete and there's more things in the pipeline. Expect the following enhancements in future versions: support for external .LRC files, unsynchronized lyrics in the UI, grabbing lyrics from external services.

ListenBrainz scrobbling (thanks @srichter) Same as with Last.fm, the user needs to link ListenBrainz to their account, by going to the Personal menu in the UI and enabling Scrobble to ListenBrainz.

Speaking of external integrations, if you don't want Navidrome to connect to any external service, you can now disable everything with just one config option: EnableExternalServices=false (default is true).

Thanks for all contributors who helped in this release.

Highlights

  • [UI] More improvements to the Artist Page (#1391). Thanks @Dnouv
  • [UI] Display synced lyrics in the UI if available (#1406). Thanks @chiraglulla
  • [UI] Allow changing playlist's owner
  • [UI] Add bulk action to make playlists private/public
  • [UI] Add links to artists from songs (only when artists have albums)
  • [UI] Fix default volume (#1395). Thanks @sparkhom
  • [UI] Fix translations on Windows
  • [UI] Fix Player incorrectly scrobbles tracks when unpaused (#1397). Thanks @srichter
  • [Server] Optimize Playlists operations
  • [Server] Speed-up a bunch of SQL queries
  • [Server] ListenBrainz support (#1424). Thanks @srichter
  • [Server] New config option to disable all external integrations (#102)
  • [Subsonic API] Add GetLyrics endpoint (#1379). Thanks @dheerajdlalwani
  • [Subsonic API] Don't send invalid artistIds

Changelog

8c7d95c1 Update Translations (#1471) d4447e37 Fix sorting albums by year (should use name as secondary sort field). 3bd6f82c Rename ListenBrainz config flag and enable by default (#1443) da26c5cf Combined multiple appends into a single one (#1464) 023d7bfa Remove link from songs to artist (when artist has no albums) 48a62788 Simplify prototype definition for taglib_read 91b470c9 Show artist link in Songs lists 1c82bf51 Remove non-album artist_ids from the DB 0d9dcebf Fix playlist cannot be empty via Subsonic API 5994c31f Fix migration to support null values 804fb716 Show in the logs how long it took to startup d3a2f769 Better logging of GetSimilar call 68a84ec8 Smarter cache of external info calls (last.fm / spotify) 9e48d87f Add a new index for album, to optimize the getAlbumList?type=alphabeticalByArtist Subsonic query 9712a5b1 Fix error codes for required parameters in getAlbumList 9422373b Optimize AlbumRepository.GetAll and add a GetAllWithoutGenres method specifically for Subsonic API, where multiple-genres are not required bc8132ef Bump @testing-library/user-event from 13.2.1 to 13.5.0 in /ui 82bc8cd0 Bump github.com/go-chi/httprate from 0.5.1 to 0.5.2 1e5ab59d Bump github.com/onsi/ginkgo from 1.16.4 to 1.16.5 28ad91a9 Bump github.com/Masterminds/squirrel from 1.5.0 to 1.5.1 e40e8659 Bump github.com/microcosm-cc/bluemonday from 1.0.15 to 1.0.16 12818fb5 Make song/album/artist endpoints read-only aaeaa3c5 Fix playlist filter 05390919 More info in scrobbling logs 6a87fc88 Ignores invalid timestamps in requests (use current time) 975986ab Add bulk action to make playlists private/public 778f474d Use new rest lib (Update receives all columns that need to be updated) b2acec0a When externals services are disabled, only disable UILoginBackgroundURL if it is not set by the user e7202339 Ignore empty lines in M3U files 8c2e4da3 Fix dateLoved in criteria. Now log invalid field names in criteria a4d3bf42 Remove some duplicated code 765557d7 Remove "Show" button from PlaylistEdit view 86afd16c Allow changing playlist's owner. Relates to #698 133fed34 Add owner_id to playlist 84bbcdbf Add artist image lightbox 1823159b New config to disable all external integrations. Closes #102 0b5ed9eb Update ListenBrainz Portuguese translations a56d5bc8 Listenbrainz scrobbling (#1424) ccc871d1 Only reset player scrobbled state on track change or end (#1432) d3e14223 Fix TypeError: Cannot read properties of undefined (reading 'length') a42aeff8 Optimize queries by path, should speed up the scanner a bit 7cdbc04c Update caniuse-lite f3fae7e2 Optimize basic media_file query, avoiding adding "group by" or joining with genres if not required 074732b1 Filter playlists by names and comments 66a9cbb7 Remove temp folders after tests fa3471f5 Simplify resources code, enabling any resource to be overridden (not just translations) 90724128 Fix translations on Windows cca32360 Use refetch when changing the playlist (as opposed to a full refresh) 85d48478 Add .mka file format. Only works with ffmpeg extractor 2183eb64 Should not allow changing sort order in Album songs view ea435d0f Fix error on empty playlists. Simplify code for some operations f645c476 Fix double escaped lyrics and comments 5e872807 Load playlist track genres 526b6597 Remove duplication for loading tracks 5dce499d Fix/Optimized Playlist tracks deletion fbd87ba5 Fix console error "Cannot convert undefined or null to object PlaylistsSubMenu" 63b5191e Fix lint af00503b Optimize playlist updates 85185e3b Misc small changes (#1433) 83eaafcb Add dateLoved Criteria field 93ce0b56 Fix Genre field and Contains/NotContains/StartsWith/EndsWith in Criteria (Smart Playlists) 47549ecf Increase updatePlaylist chunk to 100 tracks ed1ca65a Show hotkeys as chips, for easier reading 8d6b5f9d Speed up Subsonic GetPlaylist (by optimizing loadTracks) 76fdcd11 Tweak SimilarSongs algorithm to prioritize the requested main artist 18e1c169 Don't read the whole smart playlist file in memory 4bc4daa6 Improve git-vs-tarball detection (#1423) cc1659aa Better way to match top songs from external sources (Last.fm) 31c598de Fix drag-n-drop from a playlist, also fix useDrag memoization 2e2a647e Make SmartPlaylists read-only d169f54e Rename hasCoverArt field in criteria 1494be9a Add playCount and playDate columns to album songs list c73f64ee Removed unused code 806b13cf Update stats of Smart Playlist when it is created 2c860ede Don't import invalid .nsp files 6a550dab Use new Criteria and remove SmartPlaylist struct 39726165 New Criteria API d0ce0303 Add PlayCount and PlayDate columns to PlaylistSongs 94735361 Include never played songs in the "not in the last" operator 2b57b98a Fix smart playlist refreshing only after the tracks were loaded 1a96e9fe Import smart playlists (extension .nsp) 21da1df4 Cache smart playlist refreshes for 5 seconds d21932bd First version of SmartPlaylists being generated on demand c72add51 Add methods to Playlist model d200933b Reduce number of queries for some playlists operations. 943082ef Fix time-based tests (again) c3fb4e12 Fix rules serialization 9c8f779f Fix time-based tests 81562371 Load SmartPlaylists rules from DB 7221b49b More tests cf8d08ec Initial drafts for Smart Playlists 2a756eab Show external links on all resolutions but mobile 104679ca Guard against record being undefined. Fix error Cannot read properties of undefined (reading 'id') 5621551d Adds Lyrics Support to Subsonic API (#1379) 3214783c Remove double-retching playlist's tracks 34b01c2c Display lyrics on UI if synced lyrics present in metadata (#1406) 0d2a8f53 Enable new Artist Page by default b7fedddf Guard against record being undefined. Fix error Cannot read properties of undefined (reading 'albumId') 1d742cf8 Artist page improvements (#1391) 7505b5c5 Bump GoLang to 1.17.2 174ad9e9 Fix ffmpeg bitrate parsing for flac files ba0ee6ab Rename manifest.json to manifest.webmanifest (#1399) 6b38acad Update README.md ee8943f3 Fix semantic classes for currently playing song 86a87b4b Fix default volume (#1395)

v0.46.0

2 years ago

Welcome to a new version of Navidrome! The main change in this release is that now playlists are accessible from the sidebar menu, and you can add songs/discs/albums/artists to them via drag'n'drop. If you have issues with this functionality, it can be disabled by setting DevSidebarPlaylists=false in your config (or setting the env var ND_DEVSIDEBARPLAYLISTS=false)

Also there's initial work for a new Artist page. It still has some rough edges to fix, so we decided to disable it by default for now, but you can experiment with it by setting DevShowArtistPage=true in your config. If you do so, please give us feedback.

As part of preparing Navidrome to start using Infinite Scroll, we moved song and album details from the expandable panel to a new Get Info dialog, accessible from the context Menu.

Last but not least, if you want Navidrome to import playlists only from specific folder(s), you can do it now by setting the new PlaylsitsPath. It can contain a path or a list of paths separated by : (or ; in Windows), and it also allows globs (like "playlists/**/**")

We have a few other cool features cooking right now, so hopefully the next release won't take as long as this one.

Highlights

  • [UI] Show playlists on the sidebar (#1339). Based on work by @aldrinjenson
  • [UI] Show song/album details in a dialog, instead of an expandable panel (#1259), Thanks @samarsault
  • [UI] Initial work on a new Artist Page (#1287). Thanks @Dnouv
  • [UI] Player preloads next song. Reduce gap between songs in some setups
  • [UI] Self-host workbox, no need to contact Google's CDN anymore (#1358). Thanks @ajgon
  • [UI] New translations: Persian (thanks parviz.homayun) and Finnish (thanks harmie)
  • [Server] Add support for Audio Channels metadata (#1294). Thanks @mayanez
  • [Scanner] Fix special chars scanning in Windows with TagLib (#1310). Thanks @caiocotts
  • [Scanner] Only import playlists from configured paths in option PlaylistsPath (#1181)
  • [Scanner] Recover from any possible taglib panics (#1343)

Changelog

8bbb878b Add Finnish translation 8591a9ac Update translations (#1383) b6e30cd0 Return playlists sorted in getPlaylists Subsonic endpoint 058e7e43 Add logo to README 152836a0 Bump @testing-library/react from 12.1.1 to 12.1.2 in /ui 6139338e Bump react-icons from 4.2.0 to 4.3.1 in /ui f0c11916 Revert: Small optimization in genre mapping a6311259 Fix layout error in ArtistShow (#1387) dbde0ffa Bump github.com/djherbis/atime to v1.1.0 fba73370 Sort songs by artist/album/disc/track_number before adding to playlist e6733600 Limit number of playlists displayed in the sidebar, to avoid UI freezes 2b105ca7 Enable DevSidebarPlaylists by default. 9c29ee36 Check permissions before adding songs to playlists 6c3e45de Add songs to playlists with drag and drop 2ab46474 Bump golang.org/x/tools from 0.1.6 to 0.1.7 (#1382) 91e36a2c Check goimports in the pipeline (#1381) 0cbba802 Bump react-router-dom from 5.2.0 to 5.3.0 in /ui (#1330) f9d91047 Bump react-admin to 3.18.3 be3a6dc7 Use local copy of workbox service worker scripts (#1358) b1e77609 Preload next song ad45ab4a Fix genre update chunking 24fef584 Bump react-jinke-music-player from 4.24.0 to 4.24.2 (#1378) e17d4369 Do not attach Genres to the "Various Artists" artist 73659e56 Change "Build" link to point to the latest build artifacts from master 71b1e7f8 Bump github.com/lestrrat-go/jwx from 1.2.6 to 1.2.7 69405601 Bump @testing-library/react from 12.1.0 to 12.1.1 in /ui 4fda895a Bump blueimp-md5 from 2.18.0 to 2.19.0 in /ui f664af55 Bump react-admin from 3.18.1 to 3.18.2 in /ui c6868ff8 Don't show Artist Page for "Various Artists" 0b65a4e3 Fix comment word wrapping 24872e6c Fix biography word wrapping and requests for undefined resource b4e5c662 Fix JS console warning 6752e0a1 Fix harmless error message in logs when ScanSchedule set was "0" 5680e539 Update genres in chunks. Should fix #1368 482c2dec Artist Detail Page (first cut) (#1287) 210dc6b1 Add x-total-count to Subsonic API getAlbumList (#1360) 73a2271c Small optimization in genre mapping 0c0bd296 Replace expanded with a dialog (#1258) 15ae3d47 Only apply audioStreamRx once 1365adbb Support 7.1 (8) channels e12a14a8 feat: Adds Audio Channel Metadata - #1036 0079a9b9 Close Sidebar when going to Playlists list 892c2bfd Revert "Disable mini-player (bubble) dragging. Should fix #1217" 5fb73289 Bump golang.org/x/tools from 0.1.5 to 0.1.6 86479a6d More info when recovering from panic 76bd20e8 Recover from any possible taglib panics. Fixes #1343 7a15ed07 Bump prettier from 2.4.0 to 2.4.1 in /ui d574df5f Bump github.com/go-chi/jwtauth/v5 from 5.0.1 to 5.0.2 a7ace48e Bump github.com/ReneKroon/ttlcache/v2 from 2.8.0 to 2.8.1 84d98010 Bump github.com/spf13/viper from 1.8.1 to 1.9.0 e63804fb Use newer versions of node in the pipeline a5101fa9 Use npm dependencies cache from setup-node@v2 f2ed3f2d Bump prettier from 2.3.2 to 2.4.0 in /ui (#1341) b23ab1cc Bump @testing-library/react from 12.0.0 to 12.1.0 in /ui (#1342) abf6318a Disable mini-player (bubble) dragging. Should fix #1217 b55f3a69 Add paddingBottom to the whole sidebar menu, to avoid playlists to be covered by the player ab2912b4 Only import playlists from configured paths in option PlaylistsPath. Closes #1181 9f00aad2 Upgrade to GoLang 1.17.1 79363d6c Move Playlists to the sidebar menu (#1339) a7017e4b Fix JS console warning dc0ec32d Fix menu items highlight 06b1a1a2 Album size overflow fixed (#1071) 6ac2fefa Make AppBar stick on scroll 2e921cd7 Fix sidebar scroll height (#1338) c2251e6d Update GoLang to 1.17 (#1295) 25aab8bc go mod tidy 94083f85 Bump @testing-library/react-hooks version f0ef5187 Bump react-redux version 79e79b63 Bump github.com/go-chi/chi a961ffe2 Bump github.com/golangci/golangci-lint 402aaaaf Bump github.com/lestrrat-go/jwx version 5c7784f8 Bump github.com/cespare/reflex version a4e96d25 Pin Node to 16.8 as a workaround to https://github.com/nodejs/node/issues/40030 8444c28b Upgrade react-admin to 3.18.1 fb110805 Improve performance of placeholder images (#1325) 173b30cd Extract version from directory name if .git dir is missing (#1327) af7c87dd Give a warning on commands that do not build the frontend. 8df056b7 ru.json update (#1320) 54f98497 Use wchar_t for TagLib filenames on Windows (#1310)

v0.45.1

2 years ago

Bug fix point release

This release fixes the following regressions:

  • Fix getArtistInfo Subsonic API returns "Internal Error" (#1293)
  • Fix random volume changes (#1296 & #1297)

Also, please read the release notes from 0.45.0 if you haven't already done so.

Downloads are available here: https://github.com/navidrome/navidrome/releases/tag/v0.45.1

Changelog

c55e6590 Bump github.com/onsi/gomega from 1.15.0 to 1.16.0 (#1300) d37231f3 Bump github.com/ReneKroon/ttlcache/v2 from 2.7.0 to 2.8.0 (#1298) 47fa32ec Bump github.com/golangci/golangci-lint from 1.41.1 to 1.42.0 (#1299) cf042ed8 Fix random volume changes d4818640 Some small refactorings c2927e10 Fix loadSimilar method, was causing "internal error". Fix #1293 6983390c Setup git hooks when running make setup 143f5ba9 Import song duration with hundredths when using TagLib

v0.45.0

2 years ago

Multiple genres is finally here! Navidrome now supports multiple genres for songs and albums (and artists!). It can read multi-valued tags from ID3v2.4 and Vorbis Comments, and also can split the genres by a configured set of separators (config option Scanner.GenreSeparators, default is ;, / and ,). This is now reflected in the UI, that has new Genres filters and information, and in the Subsonic API.

There were also lots of refactorings and bug fixes in this release.

Highlights

  • [UI] In album view, add links to Last.FM and MusicBrainz (when mbid is available)
  • [UI] Add Genre and Comments columns in Songs listview (hidden by default). Thanks @certuna (#1219)
  • [UI] When clicking on an album/playlist song to start playing, adds all songs to the playlist (#703)
  • [UI] EnableCoverAnimation=false now works in mobile view. Thanks @mill1000 (#1268)
  • [UI] Show rectangular cover art when animations is disabled
  • [UI] Change default volume to 50% (#1052)
  • [UI] "Add to Playlist" on AlbumList actions. Thanks @lostpolaris (#1257)
  • [Server] Scrobbling is now buffered and will be retried in case Last.FM is not available
  • [Server] Use AlbumArtist tag even for compilations, when it is specified
  • [Server] Completely disable Last.FM when LastFM.Enabled is false
  • [Server] Fix infinite loop when the fs fails (#1164)
  • [Server] Full rescan now does what it is supposed to do: re-import all metadata
  • [Server] Abort startup if config file is invalid
  • [Server] Use ffmpeg extractor by default on Windows platforms
  • [Server] Support local paths as urls when importing playlists. Thanks @caiocotts (#1215)
  • [Build] Support Docker on Linux 32 bits platform

Changelog

05e27095 Fix getTopSongs endpoint aa72d3d4 Add missing song information to players and apply EnableCoverAnimation to mobile player. (#1268) a20bd5fe Correct some french translations (#1278) 99aeaabf Update translations (#1285) 0a5f9660 Bump redux from 4.1.0 to 4.1.1 in /ui 53385673 Bump github.com/onsi/gomega from 1.14.0 to 1.15.0 50526024 Bump github.com/lestrrat-go/jwx from 1.2.4 to 1.2.5 db4165f2 Bum react-admin to 3.17.2. Fix SearchInput border a8cf887e Adjust icon size 63000ab5 Update en.json (POEditor.com) b44ef81c Allow 0 value to disable ScanSchedule. e9d0abe0 Support local paths as urls in playlists. bcafe88e Don't autoplay when reloading play queue from Redux store 1710730b Bump github.com/kr/pretty from 0.2.1 to 0.3.0 (#1267) aa1571e0 Remove unused AnnotatedModel interface c831dc4c Use structs lib to map models to DB. Fix #1266 344d7a43 Inject DB into DataStore, instead of hardcode the dependency c0fc36da Make album genres clickable e68b22ea Don't send invalid scrobbles when clearing the player's queue fb4eefce "Add to Playlist" on AlbumList actions (#1257) 615cac2e Extract ExternalLinks into its own component 72f9e3e8 Bump @testing-library/user-event from 13.2.0 to 13.2.1 in /ui 763bcafd Use Tooltip in links to external sites 5b81f7a7 Fix get song by id 7bd506ac Retrieve all options for Genre filters b66c3945 Fix build 4ed01bad Use ffmpeg extractor by default on Windows d3975d20 Reorganize metadata extractors code 6175629b Build and release Docker image for Linux 32 bits platform (#1260) 6c550819 Use TagLib to detect whether a media file has embedded cover or not 91325071 Change fallback extractor to taglib, the default option 876dda83 Reduce number of calls to lstat. 86c0b422 Small refactorings 1cef44a5 Show in the logs which mbid will be used if multiple mbids are found for album/artist 4fcb2382 Fix "too many SQL variables" error in GetStarred endpoint 4f9d546d Abort startup if config file is invalid eeb14f02 Removed unused function a89bdfbb Fix build 8afa2cd8 Remove dependency of deprecated ioutil package 774ad651 Use fs.FS in MergeFS implementation 75408816 Small refactorings 08840f61 Simplify cover detection in roll-up code by left-joining synthesized table cddd1b3f Simplify genre roll-up code by left-joining synthesized tables bc6b1754 Make getGenre Subsonic endpoint returns genres sorted by counts b6e9ec4d Optimize GetAll genres query 1471e124 Show songs' genres as text instead of Chips 95181d74 Fix rollup of track genres to albums and artists. 254e5673 Fix log message about artist with Various Artists' mbid 00e418cb Fix log message about multiple MBIDs 2742977c Fix multiple id3v2.4 genres appearing as one big concatenated genre 69f71be9 Add more tests 58ee4c60 Add Links to external sites 21cd50d8 Fix aggregated values (count, size, duration) in roll-up queries 054b5eaf Add Genres as "Chips" in Album details and Song details e2233779 Force full rescan when adding multi-genres 3a356499 Fix lint error a0cd5854 Fix Count methods 20b7e5c4 Add Genre filters to UI c56c7c86 Purge unused genres at the end of the scan b56e034c Add multiple genres to Artists 1d8607ef Remove unnecessary repositories methods 5e549255 Add multiple genres to Albums 39da741a Add multiple genres to MediaFile 7cd3a8ba Add genre tables, read multiple-genres from tags 1f031402 Change initial scan message log level 19c2ef38 Enable buffered scrobbles by default d886c631 Bump react-image-lightbox from 5.1.1 to 5.1.4 in /ui (#1252) 5b828cd7 Bump @testing-library/user-event from 13.1.9 to 13.2.0 in /ui (#1253) ef60db3a Bump github.com/lestrrat-go/jwx from 1.2.2 to 1.2.4 882b02c7 Fix forceRescan not re-importing all tracks 44e7502a Log warning when artist has a MBID of Various Artists e61cf321 Reapply the fix from #1054, but without getting into an infinite look in case of SMB fs errors. See #1164 03ad6e97 Removed unused attributes in Last.fm responses eb8ffc6f Fix infinite loop when the fs fails. Closes #1164 b0fc684c Fix small lint errors found by gocritic 8d56ec89 Use AlbumArtist tag even for compilations, when it is specified. 5064cb2a Add git version info to release source (#1250) f7825723 Add option to have different loglevels per source folder/file 1a6a284b Bump github.com/google/uuid from 1.2.0 to 1.3.0 (#1249) 1d948beb Bump github.com/go-chi/httprate from 0.5.0 to 0.5.1 (#1248) deefd7a2 Bump github.com/lestrrat-go/jwx from 1.2.1 to 1.2.2 (#1247) 97f87416 Bump @testing-library dependencies 5d8b90b1 Bump Go dependencies 8396b51a Upgrade React-Admin to 3.17.0 4a25fa09 Make the default volume 50% (compensate for logarithmic volume). 8e71f308 Bump prettier from 2.3.1 to 2.3.2 in /ui (#1210) 53fe2e98 Remove eject script, hopefully it will never be used 334068c8 Refactor mime-types configuration b34d77f8 Don't show "playing/paused" icon on the first song when calling "Play Now" 24d4c81b Change default volume to 50% 189d0c0a Restore volume when playing a song... 1922eaaa Make cover rectangular in player when cover animation is disabled 5d9bea50 Fix Album grid responsiveness on small screens. 69afb699 Fix Disc context menu not visible in mobile 27ba267b Fix play single song action 114fdce0 Fix Last.fm's artist.getInfo fa8b4d40 Fix arranging songs in PlayQueue ace5c905 Made the Player behaviour more consistent 26b5e6b1 Better scrobble log message when buffer is disabled 77f6bc83 Update SongList.js (#1219) 94e36d7f Remove old feature flag for cache layout f4920573 Add feature flag for buffered scrobbling cfb113bd Disable Last.FM features based on LastFM.Enabled config option 289da56f Implement Scrobble buffering/retrying

v0.44.1

2 years ago

Bug fix point release

This is an IMPORTANT upgrade, it fixes 3 nasty bugs:

  • The long standing "too many open files" issue, that has been with us since version 0.27.0! (#446)
  • Fixed a bug that caused the scanner to "hang" in certain circumstances.
  • When changing user details, the password would be overridden with garbage, preventing the user to login again (#1222)

Also, please read the release notes from 0.44.0 if you haven't already done so.

Changelog

fb183e58 Only encrypts NewPassword if it is not empty, when updating the user details. Fixes #1222 ed286c71 Don't rely on goroutines to send keepalive events 452c8dc4 Fixed the enduring nasty "too many files open" bug!! Fix #446 0c2ca2a5 Assign event ids in the main loop, to avoid out-of-order events 5bd33455 Fix deadlock situation when events are sent too fast to the broker 4ea0f235 Fix scrollbar colour for Dark/ExtraDark theme. Fixes #1216

v0.44.0

2 years ago

As promised, more security improvements: Passwords are now encrypted in the DB. The encryption key used can be overridden by the new config option PasswordEncryptionKey. See more details here: https://www.navidrome.org/docs/usage/security/#encrypted-passwords

ATTENTION: Please backup your DB before upgrading, as passwords will be encrypted when first running 0.44.0, and if you need to downgrade for any reason, old versions of Navidrome won't be able to read the passwords!

Also, you can now use a SSO/OAuth/OIDC proxy (like Authelia or Vouch) in front of Navidrome, to handle authentication. Thanks @ajgon!

And last but not least: Last.fm scrobbling is here! Users can opt-in by going to their Personal menu in the UI, and it can also be disabled for specific players if needed. Thanks @srichter!

Navidrome now uses a shared API-Key for Last.fm, so now Last.fm integrations (including scrobbling) work out of the box, but you can still override the API-Key with your own if you want to.

BREAKING CHANGE: The Native API URLs were changed:

/app/login => /auth/login
/app/createAdmin => /auth/createAdmin
/app/api/* => /api/*

If you use a script that connects directly with Navidrome, please check/change the URLs.

Highlights

  • [UI] Auto update current view when there are changes in the DB (new albums, ratings/playCount changes, etc) (#1025)
  • [UI] Prompt the user to refresh the page if server is using a version different then the UI, to keep both in sync after an upgrade
  • [UI] Move Artists/Songs/Playlist to top level, removing "Library" submenu
  • [UI] Show Disc Subtitles even if the album has only one disc (#947)
  • [UI] Allow themes to override the React Player styling. Fixed colors for Dark, ExtraDark and Light themes
  • [UI] New option to disable album cover animation in UI (save a few CPU cycles): EnableCoverAnimation (#1185)
  • [Server] Last.fm scrobbling! Must be authorized by the user, and can be disable by player (or completely disabled) (#1202) Thanks @srichter!
  • [Server] Last.fm integration now uses a shared API-Key, so Artist's bios, TopSongs, SimilarArtists and scrobbling work out of the box
  • [Server] New option LastFM.Enabled (default true) allows disabling Last.fm integration completely
  • [Server] Passwords are encrypted in the DB, with an option to override the encryption key used (#1187)
  • [Server] Reverse Proxy Authentication, allowing setting up SSO, OAuth and other authentication schemas (#1152) Thanks @ajgon!
  • [Server] Better SimilarSongs algorithm, prioritizing songs per popularity
  • [Subsonic API] Fix /rest/updatePlaylist not updating fields comment and public.
  • [Subsonic API] Fix /rest/getNowPlaying endpoint only returning one player/user
  • [Subsonic API] GetCoverArt returns placeholder if id is missing, mimicking Subsonic behaviour

Changelog

b16d473d Update es.json (POEditor.com) fd82b8f2 Default for EnableCoverAnimation in dev mode is true a73f885a Add option to disable album cover animation in the player. Closes #1185 167fe462 Addresses a bug that would prevent users from changing their own passwords, introduced as part of #1187. (#1214) cb1827cc Update translations (#1134) 25f0e115 Add 'AlbumArtist' column to SongList 292cf99f Add 'Year' column to Album and Playlists song list d2fcab78 Fix ND_DEVFASTACCESSCOVERART flag not available as env var 94533e58 Add tests to /scrobble endpoint 6dd38376 Add referential integrity to remove user's props when user is deleted 26bcf0b8 Enable Last.fm scrobbling by default (still requires user's authorization) 92634a74 Only show message after 2 seconds, giving time for the browser to close it first ee21f395 Pass userId explicitly to UserPropsRepository methods a1551074 Add a hacky way to style the react-player. 823fef8e Fix JS console error 82105c3a Remove React.Strict mode b684a47f Show DiscSubtitle even if the album has only one disc. da2334e1 Remove submenu "Library". Relates to #430 4853760f Suppress logs of successful DB migrations applied when running for the first time 0cbb0aca Skip songs with less than 31 seconds, as per Last.fm specification 5040f6fd Fix label abe80157 Add option to disable external scrobbling per player 50015182 Move user properties (like session keys) to their own table 265f33ed Remove clearServiceWorkerCache, not needed anymore. (#1205) 99be8444 Disable completely external scrobblers if feature is disabled (DevEnableScrobble) f4ddd201 Send the time the track started playing when scrobbling 056f0b94 Refactor: Consolidate scrobbling logic in play_tracker 76acd7da Don't send scrobbles/nowPlaying updates to Last.fm if user has not authorized 8af7dab2 Fix wrong warning about ignored NowPlaying a7509c9f Send NowPlaying and Scrobbles to Last.fm d5461d0a Refactor Agents to be singleton f9fa9667 Show user-friendly message when error occurs in Last.fm callback endpoint 5fbfd9c8 Implement Last.fm account linking UI 8b62a58b Remove limitation of only scrobbling tracks longer than 30 seconds 743e4697 Use singleton in other places as well 1f997357 Expose Last.fm's ApiKey to UI 143cde37 Implement Last.FM Web authentication flow 502a719e Implement Last.FM Desktop Auth flow endpoints 8ee5c1f2 Initial Last.fm UI implementation 0495e421 Fix Last.fm API method signature ffa76bba Add flag to disable Scrobble config in the UI a4f91b74 Add Last.FM Authentication methods 73e1a8fa Remove false-positive on new version detection 877f01bd Show notification if server is updated 47bcf719 Fix cookie warning 197d430d Fix lint error 4e1957ca Update Go dependencies 25db2cb0 Add concurrency test for singleton 80b2c2f3 Try to register all playing music in GetNowPlaying 97434c17 Fix GetNowPlaying endpoint showing only the last play f8ee6db7 New implementation of NowPlaying 0df0ac07 Add logos to badges c09468e1 Option to allow auto-login during development. cf553ce8 Don't show "logout" when authenticated by Header 31ea0338 Fix subsonic token when authenticating by Header 66b74c81 Encrypt passwords in DB (#1187) d42dfafa Add username to request.Context 84413b54 Bump @testing-library/jest-dom from 5.13.0 to 5.14.1 in /ui (#1176) b590c31e Fix stream url, after changes to subsonic client api c4623d7b Don't show "empty" dates e0fd1c6a Add "Last Played" column to SongList 86271f04 Optimize refresh events for scrobble endpoint fb7229a5 Refech using getMany, reducing the number of API calls 521d1ff2 Disable realip middleware when using the reverse proxy authentication feature d3db41ae Bump github.com/go-chi/httprate version 8bf0089a Bump github.com/ReneKroon/ttlcache/ and github.com/microcosm-cc/bluemonday versions b65e7629 Only send events to clients who need it 5f6f74ff Always use httpClient to call APIs 8383527a Only refetch changed resources when receive a "refreshResource" event 8a56584a Removed the albumSong workaround, as React-Admin's cache seems to behave better now 667701be Less warning messages when first running it. 59b99d22 No need to check for first time when authenticating. One less SQL call per request d54129ec Rename app package to nativeapi 03efc481 Refactor routing, changes API URLs (#1171) bed2f017 Fix index of songs in downloaded playlist 6bd4c0f6 Reverse proxy authentication support (#1152) b445cdd6 Use a dedicated api-key/secret pair for Last.FM e31802d2 Only send "refresh" event if SetRating was successful cefc9399 Trigger UI refresh on media annotation events: star, setRating and scrobble 2afb2db7 Refactor for readability 7f85ecd5 Trigger a UI refresh when the scanner finds changes. cb6aa494 Bump github.com/lestrrat-go/jwx from 1.2.0 to 1.2.1 (#1167) b7f47c88 Bump github.com/onsi/ginkgo from 1.16.3 to 1.16.4 (#1163) adb09c9c Bump @testing-library/jest-dom from 5.12.0 to 5.13.0 in /ui (#1162) 0c9e0ff8 Bump prettier from 2.3.0 to 2.3.1 in /ui (#1161) f9eec5e4 Refactored agents calling into its own struct 6c1ba8f0 Add tests to core.Share 110e17b0 Make MockRepo names more consistent 779571a0 go mod tidy af210c89 Add Native Sharing REST API (#1150) e80cf80d Move all Spotify and LastFM code into only one folder for each 182e3ec7 Update zh-Hans.json (#1160) 65ccd4c9 Parse ParamBool case-insensitively (#1151) bebfe296 Allow updating only specific columns 9da9d73c Don't panic when taglib returns an error cd242695 Foundational work to enable multi-valued tags 519c8934 Omit empty fields from Native API responses 336d891e Bump github.com/ReneKroon/ttlcache/v2 from 2.5.0 to 2.6.0 9b4b28f6 Bump ginkgo/gomega versions 39c560a5 Remove unused web-vitals package c5abdc19 Fix recursive bug in Last.FM calls without mbid ead2095d Respect EnableLogRedacting config when pretty printing configuration 7b05c492 Add devEnableShare config option (#1141) 327c259a Create share table and repository. (#930) 675cbe11 Fix updatePlaylist not updating fields comment and public. 91a91f7e GetCoverArt returns placeholder if id is missing 7bbb09e5 Add tests for WeightedRandomChooser dd56a779 Rename variable with conflicting name a38e478a Better SimilarSongs algorithm 1940267a Handle functions with params in sort order. 01f3ce02 Add a timeout to background task 48b6fa7f Don't use request's context when refreshing artist info in background 25d62cd7 Set retention time for uploaded artifacts to 7 days ed01946a Embed Last.FM error responses, making the tests faster 89b12b34 Retry calls to Last.FM without MBIDs when if returns artist invalid (#1138) 4e0177ee Always update artist info, even if info is fresh b3980532 Include a shared Last.FM api key, providing zero conf ArtistInfo (bio/top songs/similar artists) db11b6b8 Remove decoration from reflex output 60d50de8 Refactoring to make common components usage more uniform 0941fbc0 Fix lag on albumList toggling (#1136) 4217c75c Upgrade to Node v16 409020a5 Bump github.com/ReneKroon/ttlcache/v2 from 2.4.0 to 2.5.0 b4832c36 Bump github.com/golangci/golangci-lint from 1.40.0 to 1.40.1 1de7366e Bump @material-ui/lab from 4.0.0-alpha.57 to 4.0.0-alpha.58 in /ui ab1bc619 Bump @testing-library dependencies ad4db122 Bump hosted-git-info from 2.8.8 to 2.8.9 in /ui (#1111) 200b815c Bump url-parse from 1.4.7 to 1.5.1 in /ui (#1107) 5631493c Upgrade Web UI to Create-React-App 4 and React 17 (#1105)

v0.43.0

2 years ago

This release has a good deal of security improvements, with more to come in the next release. Also some very nice features implemented by our contributors. Thanks to you all!

Highlights

  • [UI] Option to toggle fields in songs, albums & artists grids (#923). Thanks @aldrinjenson
  • [UI] Allow regular users to change their info, including passwords (#199)
  • [UI] Display BPM info (#1087). Thanks @brianschrameck
  • [UI] Add Czech, Slovenian and Swedish translations. Thanks @plr20, @jernejml and @deeeeeebs respectively
  • [UI] Restart current song when clicking "Previous song" when past the first few seconds (#1104). Thanks @aniketbiswas21
  • [UI] Show error message when adding duplicated username, and other user management improvements (#1101). Thanks @srichter
  • [Server] Never send passwords to the UI
  • [Server] Implement PermissionsPolicy security header (#1112). Thanks @Dnouv
  • [Server] Move away from unmaintained JWT library (see https://github.com/go-chi/jwtauth/issues/50)
  • [Server] Add EnableLogRedacting to mask sensitive info in logs. Enabled by default
  • [Server] Make server compatible on OmniOS/illumos (#1048) Thanks @whorfin
  • [Scanner] Various reliability and speed improvements (#1054) Thanks @whorfin
  • [Scanner] Add new ScanSchedule that replaces ScanInterval and allows cron-like schedules
  • [Subsonic API] Fix Bookmarks Subsonic support (#1099)

Changelog

d9f26826 Rename List view mode to Table 88251973 Change back mounting order, for better logs 86d3a219 Show name of router in log 1d0e7515 Update Portuguese translation 107a11b4 Bump React-Admin to 3.15.2 cf8ee251 Option to toggle fields in songs, albums & artists (#923) 6a17717e Update translations (#1130) b8a274e4 Move Swedish translation to right folder 98008230 Bump react-jinke-music-player from 4.24.0 to 4.24.1 in /ui 02606f43 Add Swedish translation (#1126) e5293900 Remove md5-hex wrapper and use blueimp-md5 directly 0ec7a305 Reorder Makefile dev targets b6cb81c3 Update Portuguese translations e60f2bfa User management improvements (#1101) 666c0065 Bump lodash from 4.17.19 to 4.17.21 in /ui (#1110) 6ad94548 Add explicit dependency for inflection fa0e6dda Remove C++11 warning in macOS e047008f Fix test 3cac00ad Upgrade TagLib to 1.12 39d68e82 Restore pretty formatted config options in debug level 751e2d61 Make ScanInterval=0 disable the periodic scan 74300adb Fix Ligera Error (#1117) a484adfc Add Slovenian translation. Thanks @jernejml 25bd36db Bump react-admin to 3.15.1 87298f61 Add more explicit npm dependencies 46999023 Remove dependency on lodash.get 978933aa Add explicit npm dependencies 77e736cc Do not use ra-core directly a77635e8 Only setup event stream when mounting the app 0c93db81 Fix PWA notification toolbar color (#1083) c0243580 Integrate goose log with our own log system 22ce5b62 Removed unnecessary code fa9083dd Upgrade prettier to 2.3.0 da684ff4 Bump github.com/lestrrat-go/jwx from 1.1.6 to 1.2.0 7d96167a Upgrade to go-chi 5 fb584070 Bump github.com/golangci/golangci-lint from 1.39.0 to 1.40.0 089d4aba Replace Feature Policy with Permissions Policy (#1112) 62ccbaad Improve systemd unit security (#677) 8419a2a5 Schedule periodic scan before starting initial scan 71c2ed99 Restart Current Song on previous (#1104) 72ec808a Bump react-jinke-music-player from 4.21.2 to 4.24.0 in /ui 702a6505 Fix redaction for query parameters. Fix #1103 3e8d3e78 Fix Bookmarks Subsonic support (#1099) 47f4e0a4 Refactor to remove some nesting 1f894992 Fix(?) possible TypeError c92a24b3 Bump github.com/onsi/gomega from 1.11.0 to 1.12.0 cbe0d976 Bump github.com/robfig/cron/v3 from 3.0.0 to 3.0.1 (#1098) 44dd414d Bump github.com/microcosm-cc/bluemonday from 1.0.8 to 1.0.9 (#1056) d85db8ff Fix Spotify-ish playlist title is cut off (#1094) c7378c0f Bump @testing-library/user-event from 13.1.5 to 13.1.8 in /ui (#1082) 18696c55 Update Czech translation (#1095) 5a5d763c Bump github.com/onsi/ginkgo from 1.16.1 to 1.16.2 (#1096) f8dbc41b Breaking change: Add ScanSchedule, allows interval and cron based configurations. 1d6aa700 Fix possible TypeError 30bb3f7b BPM metadata enhancement (#1087) fb33aa44 Fix possible TypeError 9e559311 Fix Album Grid flickering a5fc5f0f Revert "Better way to invoke make single" 73efbd90 Better way to invoke make single cbc4cb48 Fix QuickFilter by favourites in Album/All view 98647339 Fix missing translation error in console. Closes #1038 66b31644 Upgrade React-Admin to 3.15.0 b478b0af FIx ffmpeg output regex too rigid c3316e20 Fix cover art detection with ffmpeg 4.4 874b17b8 Require user to provide current password to be able to change it 5808b9fb Fix Transcodings menu c33ebabd Fix warning about promise being ignored 7feda4be Add EnableUserEditing, to control whether a regular user can change their own details (default true) 2ff1c79b Fix EnableLogRedacting case cfbc39fb Add log redacting, controlled by the new EnableLogRedacting config option (default true) 2372f1d1 Change visibility of helper function 490a7fcf Add test to Login function ad153f5f Fix User delete button not showing b8138eba Fix create first login e3fe8399 Fix DevAutoCreateAdminPassword 88105d5c Clean-up Makefile, add help b180386d Simplify build targets 70e7bf6b Clean up some make targets d41137ad [Spotify-ish] Login consistent with other themes (#1073) 88f2fc35 Fix regular users not able to edit their info before logging in again bc62efb0 More auth tests eaf40efd Never send passwords to the UI 71dc0ddd Show Person icon for non admin users bcda53f1 Less waiting for cache to be ready 8a07bac2 Fix SIGUSR1 work when ScanInterval=0 a35de2bf Allow regular users to change their info, including password. 22582392 Fix "Failed prop type: Invalid prop variant" in console 932c108e Fix "SharedArrayBuffer will require cross-origin isolation" 20d2726f Improve scanner (#1054) 771c91d2 [Spotify-ish] Indicate active page number (#1068) b8173124 Update ja.json (POEditor.com) d1605dcf Replace godirwalk with standard Go 1.16 filepath.WalkDir 10cfaad9 Bump react-redux version to 7.2.4 07f6a7cc Bump @testing-library dependencies 6e73c237 Keepalive must return an ID to be used with dataProvider.getOne 862c6d3c Upgrade React-Admin to 3.14.5 69266368 Uses GoLang 1.16.3 0d409e37 Fix aspect ratio of login icon

v0.42.1

3 years ago

Bug fix point release

This fixes a few issues:

  • [Spotify-ish] Fix incorrect aspect ratio of logo on login screen (#1072)
  • [Spotify-ish] Fix active page indicator (#1068)
  • [Scanner] Fix ffmpeg extractor not detecting album covers when used with ffmpeg 4.4
  • [Scanner] Allow SIGUSR1 to trigger scan even when ScanInterval = 0

Changelog

35027bbe FIx ffmpeg output regex too rigid 3af46773 Fix cover art detection with ffmpeg 4.4 3c30cefc Fix warning about promise being ignored d0fea6bf Fix SIGUSR1 work when ScanInterval=0 fff71739 Fix "Failed prop type: Invalid prop variant" in console 90a07392 Fix "SharedArrayBuffer will require cross-origin isolation" ab685247 [Spotify-ish] Indicate active page number (#1068) 125c4fe5 Keepalive must return an ID to be used with dataProvider.getOne 616a44ba Fix aspect ratio of login icon