github navidrome/navidrome v0.51.0

latest releases: v0.52.0, v0.51.1
3 months ago

New in this release.

⚠️ BREAKING CHANGE: This release removes the Last.fm shared API-key, as previously announced here.
If you use any Last.fm functionality (scrobbling, biographies, album descriptions), please check the documentation on how to create your own API Key, it is free and should only take you a couple of minutes. NOTE: Remember to re-enable scrobbling after changing the API Key and restarting the server.

In this release we focused on support and compatibility with OpenSubsonic, increasing the overall user experience when using a compatible Subsonic client. Click here for the full list of what is implemented and what is missing for now.

NOTE: Even though this release does not force a full rescan, you should do it at your discretion, to import more tags available in the scanner, ex: structured lyrics.

Highlights

  • [Server] Remove LastFM shared key
  • [Server] Add new PrefSortTags option (#2696)
  • [Server] Make unix socket file permission configurable via flag UnixSocketPerm (#2763)). Thanks @johannesengl
  • [Server] Add inPlaylist/notInPlaylist operators to Smart Playlists (#1884). Thanks @flyingOwl
  • [Server] Add TAK support (#2745). Thanks @apkatsikas
  • [Scanner] Import more M4A tags (#2680). Thanks @kgarner7
  • [Scanner] Upgrade to TagLib 1.13.1
  • [Subsonic] Optimize search3 endpoint. Syncs in offline clients (ex: Symfonium) will be faster now.
  • [Subsonic] Add multiple OpenSubsonic extensions (See #2695)
  • [Subsonic] Improved getTopSongs results (#2675)
  • [Subsonic] General Jukebox improvements
  • [CLI] Add "inspect" command to CLI. You can now see what tags Navidrome import by running ex: navidrome inspect your_file.mp3

Changelog

  • fd61b29 Small readability improvement in MergeFS tests
  • 2b33ef7 Remove offset and limit from count queries. Fixes #2443
  • 2fb913f Add log message to try to capture error in #2735
  • 6c05493 Improve some Jukebox error messages
  • 3ca4f44 Simplify default middlewares setup
  • 34c29a1 Simplify RealIP middleware setup
  • b442736 Bump connected-react-router from 6.9.1 to 6.9.3 in /ui (#2741)
  • 90fccf0 Bump workbox-cli from 6.5.4 to 7.0.0 in /ui (#2737)
  • bcd4a52 Bump golang.org/x/sync from 0.5.0 to 0.6.0 (#2779)
  • 84cffa6 Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (#2759)
  • a51b1b2 Bump uuid from 8.3.2 to 9.0.1 in /ui (#2740)
  • 9f317c0 Bump @testing-library/user-event from 14.5.1 to 14.5.2 in /ui (#2757)
  • 5f8d01a Bump clsx from 2.0.0 to 2.1.0 in /ui (#2758)
  • 8a648d7 Bump github.com/go-chi/chi/v5 from 5.0.10 to 5.0.11 (#2742)
  • a0dc2ee Bump github.com/pelletier/go-toml/v2 from 2.0.6 to 2.1.1 (#2760)
  • ffb4de1 Bump github.com/unrolled/secure from 1.13.0 to 1.14.0 (#2761)
  • e1fc798 Bump golang.org/x/image from 0.14.0 to 0.15.0 (#2778)
  • 2a43f54 Bump follow-redirects from 1.15.2 to 1.15.4 in /ui (#2786)
  • f654e92 Bump github.com/lestrrat-go/jwx/v2 from 2.0.18 to 2.0.19 (#2792)
  • dfa453c Add (not)inplaylist operator to smart playlists (#1884)
  • 8f03454 Make server unix socket file permission configurable via flag UnixSocketPerm (#2763)
  • 8570773 Bump prettier from 3.1.1 to 3.2.2 in /ui
  • 6cff91e Use the default import path for jest-dom.
  • d0df81a Bump @testing-library/jest-dom from 5.16.5 to 6.2.0 in /ui
  • 75f3ef6 Bump react-icons from 4.4.0 to 5.0.1 in /ui
  • 170ac93 Bump github.com/onsi/ginkgo/v2 from 2.13.2 to 2.14.0
  • 6f7b482 Make the GetInstance concurrent test more readable
  • 6e2be7f Don't force a full scan after upgrading the lyrics
  • 0d8f8e3 Optimize Singleton (sometimes a simple lock is a better solution)
  • e50382e Fix ReplayGain values not being retrieved from DB
  • 814161d Add OS Lyrics extension (#2656)
  • 130ab76 go mod tidy
  • a186a79 Omit empty Genre attributes
  • 798b03e Add "inspect" command to CLI
  • ea7ba22 Discard duplicated tags
  • b4815ec Add TAK support (#2745)
  • 51e07d4 Add log.IsGreaterOrEqualTo, that take into consideration path-scoped log levels
  • 03119e5 Add more trace log to TagLib Wrapper
  • 15e1394 Implement originalReleaseDate in OpenSubsonic responses. (#2733)
  • 3f349b1 Add todo as a reminder to replace min/max in Go 1.22
  • dfcc189 Replace all utils.Param* with req.Params
  • 00597e0 Add req.Params to replace utils.Param*
  • 965fc9d Remove beep and the files where it was imported (#2731)
  • 781ff40 Bump Go version to 1.21.5 (#2729)
  • a6ed044 Name mapDates return values
  • 515efe3 Bump @testing-library/user-event from 13.5.0 to 14.5.1 in /ui
  • 6c28c11 Bump @adobe/css-tools from 4.3.1 to 4.3.2 in /ui
  • 92a88ad Bump golang.org/x/crypto from 0.16.0 to 0.17.0 (#2722)
  • 4ccc0a9 Bump jwt-decode from 3.1.2 to 4.0.0 in /ui (#2714)
  • df3de04 Bump clsx from 1.1.1 to 2.0.0 in /ui
  • 8675766 Reformat code with Prettier's new rules.
  • 735d670 Bump prettier from 2.8.2 to 3.1.1 in /ui
  • 3017914 Bump deepmerge from 4.2.2 to 4.3.1 in /ui
  • 03a9f22 Bump @material-ui/icons from 4.11.2 to 4.11.3 in /ui
  • 39e92a1 Bump github.com/mattn/go-sqlite3 from 1.14.18 to 1.14.19
  • 421ce91 Fix mpvipc dependency
  • 12aae5e Some cleanup in the jukebox code, specially log messages
  • 932152e Change required fields in Subsonic Jukebox endpoint
  • 0e3175e Better workaround for Go 1.20 missing context.WithoutCancel
  • d3f6b46 Temporary fix for scan context cancellation for Go 1.20
  • 70effa0 Don't cancel Scan on context cancellation
  • 7ccf685 Fix PreferSortTags
  • 2aef227 Add context to SQL queries, enabling cancellation
  • d80e1a2 Fix possible authentication bypass
  • fd4605d Bump github.com/mattn/go-zglob from 0.0.3 to 0.0.4 (#2015)
  • a6493c4 Bump github.com/google/uuid to v1.5.0
  • 54597bd Allow reverse proxy auth for unix socket (#2701)
  • ab53313 Add new PrefSortTags option (#2696)
  • d3669f4 go mod tidy
  • d89de90 Bump Go dependencies
  • ac3668a Removed unused diodes package
  • 6d924ad Bump github.com/go-chi/jwtauth/v5 from 5.2.0 to 5.3.0 (#2699)
  • 78d557c Remove LastFM shared key
  • 546aa26 Removed duplicated code
  • fc677f7 Bump github.com/lestrrat-go/jwx/v2 from 2.0.17 to 2.0.18 (#2684)
  • aed0309 Return AlbumID3 in search3 results
  • 465cc09 Convert internal disc number representation to int
  • 2c9035f Add discTitles to OpenSubsonic responses
  • af7eead Add discs to album
  • 0ca0d5d Replace beego/orm with dbx (#2693)
  • 7074455 Bump github.com/onsi/ginkgo/v2 from 2.13.1 to 2.13.2
  • 2f2fbeb Fix ld warnings on taglib_wrapper.
  • 742fd16 Parse more itunes keys, optimize taglib wrapper (#2680)
  • 7766ee0 Return http form post extension (OpenSubsonic) (#2676)
  • 4cd7c7f Fix FileHaunter tests
  • 81daee3 Fix FileHaunter tests
  • 9b434d7 Ignore flaky FileHaunter tests
  • 4641dc0 Add ReplayGain to OpenSubsonic API Child response
  • 812dc20 Add support for timeOffset in /stream endpoint
  • a9cf54a Return genres in bookmark endpoints (OpenSubsonic)
  • 595186b Coalesce null annotation values, to better rank them against annotations with value 0
  • cdccdc5 Add more OpenSubsonic fields
  • f580c5b Add more OpenSubsonic fields
  • f0e25c2 Update translations
  • abde399 Upgrade to Goose 3.15.1
  • 1b4483d Remove tools.go
  • f7fe8ba npx update-browserslist-db@latest
  • f543e7a Fix getOpenSubsonicExtensions endpoint
  • 60a5fbe Optimize search3, by removing OFFSET when paginating (#2655)
  • 28dc98d Revert "Replace COUNT(DISTINCT primary_key) with COUNT(*)"
  • 8c8e1ea Replace COUNT(DISTINCT primary_key) with COUNT(*)
  • b964018 Show SQL errors in queryAll
  • 9aa7b80 Generalize BreakUp/RangByChunks functions
  • c3efc57 Use TagLib 1.13.1 for snapshots/releases
  • 27a92b0 Fixed deprecated GoReleaser options
  • 21f1354 Revert "Bump golang.org/x/exp, change slices.SortFunc function call"
  • 069da5d Bump Go to 1.21.4
  • 69d2ced Bump Go dependencies
  • 17ac8d2 Bump dependencies
  • 474f32f Bump golang.org/x/exp, change slices.SortFunc function call
  • ecadcfb Make ParamInt generic (any int type)

Don't miss a new navidrome release

NewReleases is sending notifications on new releases.