Releases: navidrome/navidrome
v0.52.5
Bug fix point release
This is mostly a bug-fix version, with focus on some Jukebox issues, but also other general improvements and fixes.
Highlights
- [UI] Add Catppuccin Macchiato Theme (#3014). Thanks @edthu
- [UI] Make sorting lists by name/title case-insensitive (#2993)
- [Server] Add
HTTPSecurityHeaders.CustomFrameOptionsValue
config option. - [Server] Sort repeated lyrics that may be out of order (#2989). Thanks @kgarner7
- [Server] Fix sorting albums by playCount when
AlbumPlayCountMode
is normalize - [Server] mime types can now be overriden using an external file,
$DataFolder/resources/mime_types.yml
(needs documentation) - [Server] Change
.dsf
mime-type toaudio/x-dsf
(#3021) - [Server] General improvements to Jukebox mode (#2997, #2996, #2849, #3008). Thanks @ms140569
- [Subsonic] Add
samplingRate
to OpenSubsonic responses
Changelog
- c556088 Change dsf mime-type to audio/x-dsf.
- 78f5547 Revert "Add download link to PR" workflow
- 2c8c87a Remove duplicated test
- 3463d0c Simplify random.Int64 usage with generics
- 0ae2944 Refactor random functions
- 30ae468 Uses Unix milliseconds support from standard Go lib
- ec68d69 Refactor cache.HTTPClient
- 955a9b4 Refactor merge.FS
- 5680941 Fix "Add download link to PR" workflow
- 3a2a5e9 Add samplingRate to OpenSubsonic responses
- f3bb022 Add sampleRate to the DB
- 472324e Read sampleRate from audio files
- ed83c22 Do not panic if when updatePlaylist is called with a non-existent ID.
- 2fdc167 Add Catppuccin Macchiato Theme (#3014)
- 80e68df Bump actions/github-script to v7
- a9c7458 Bump actions/stale and dessant/lock-threads versions
- bb96d45 Replace sync.WaitGroup with more appropriate errgroup.Group
- c0885b5 Fix M3U mimetype on Debian Bullseye
- 00cbe4c Update Go to 1.22.3
- 2b49c7f fix: languageName for Persian (#3011)
- 09d1fd0 Simplify normalized AlbumPlayCountMode calc
- 747069b Remove unused code
- 885cd34 Clean up runNavidrome function
- c4b05da Make sorting lists by name/title case-insensitive (#2993)
- 6408dda Terminate all MPV instances when stopping Navidrome (#3008)
- 677d994 Make dependency injection more consistent
- a029058 Fix migration package name mismatch
- eb93136 Change default transcodings to a proper typed struct
- 62cc8a2 Fix ambiguous column when sorting media_files by created_at.
- dd4374c Limit access to Jukebox for admins only (configurable).
- 86567f5 Bump Go dependencies
- ff8dca5 Guard against missing active track (#2996)
- b3d70e9 Persist adjusted volume (#2997)
- 4d29184 Improves golangci-lint configuration and workflow (#3004)
- 2470471 Pin golangci-lint-action version as a workaround to fix the pipeline.
- 544ae90 Fix CollapsibleComment in PlaylistDetails. Closes #2992
- aef49cb Add
HTTPSecurityHeaders.CustomFrameOptionsValue
option. - 7c5eec7 Fix typo
- a4c2232 Sort repeated lyrics that may be out of order (#2989)
- 8f11b99 Bump Go dependencies
- d4a9a9e Fix PlaylistTracks's loadAllGenres. Fix #2988
- a8955f2 Fix AlbumPlayCountMode. Closes #2984
- 2c06a42 Fix int types in OpenSubsonic responses.
- 7ab7b5d Fix signaler on Windows
- 3d9fff3 Use signal.NotifyContext
- 31fcab0 Refactor loadGenres, remove duplication
- de90152 Refactor DB Album mapping to model.Album
- 27875ba Load mime_types from external file
- 28f7ef4 Remove AlbumPlayCountMode from command line options
v0.52.0
New in this release
This release upgrades TagLib to 2.0.1, improving tag importing in general.
Also general improvements to Jukebox mode, Reverse Proxy authentication, more OpenSubsonic compatibility,
and a few bug fixes.
Highlights
- [UI] Handling long playlist comments (#2973). Thanks @TimHi
- [UI] Fix a few mistakes in the French translation (#2872). Thanks @2franix
- [Server] Block regular users from changing their own playlists ownership. Fixes this security advisory. Thanks @viliald
- [Server] Allow comments in NSP files.
- [Server] Add
AlbumPlayCountMode
config option (#2803). Thanks @vvdveen - [Scanner] Upgrade TagLib to 2.0.1
- [Subsonic] Add support for Reverse Proxy auth in Subsonic endpoints (#2558). Thanks @crazygolem
- [Subsonic] Add
channelCount
to songs in OpenSubsonic responses - [Subsonic] Add
releaseDate
to albums in OpenSubsonic responses (#2906). Thanks @kgarner7 - [Subsonic] Fix Jukebox mode under Windows (#2774). Thanks @apkatsikas
- [Subsonic] Make MPV command configurable using the new config option
MPVCmdTemplate
(#2948). Thanks @bitte-ein-bit - [Build] Add
make
target to build docker image - [Build] Include MPV in release Docker image (#2910)
Full changelog: v0.51.1...v0.52.0
v0.51.1
Bug fix point release
This release fixes a few bugs, most important one being the converting NULL to string is unsupported
happening for users that updated their DBs directly. This fix is implemented as a change to the DB during Navidrome's startup that can take a few minutes, depending on the size of your library, so please be patient with large libraries.
Highlights
- [Server] Fix various
converting NULL to string is unsupported
errors in 0.51.0 (#2840). Thanks @caiocotts - [Scanner] Import
sort_*
ID3 tags - [Subsonic] Fix fields not being sent on getPlaylist.view responses. (#2818). Thanks @caiocotts
- [UI] Set rating value to 0 when value is null (#2824). Thanks @kgarner7
- [UI] Use order/sort album/artist when sorting tracks in playlists. Fixes (#2819
- [UI] Don't expose the Last.fm APIKey in the
index.html
- [UI] Update German and French translations
Changelog
- 6d25322 Use order/sort album/artist when sorting tracks in playlists. Fixes #2819
- bf2bcb1 Fix null values in DB (#2840)
- ac4ceab Update French translation (#2834)
- 6226741 Create resources.FS only once
- 79a4d8f Simplify ShortDur code and tests
- 61257f8 Update translations (#2832)
- 1f71e56 Don't expose Last.fm API Key in the index.html
- 3a9b345 Set rating value to 0 when value is null (#2824)
- 5125558 Make Subsonic search query default to
""
if not present. - 5f9b6b6 Add a "upgrading schema" log message to the DB initialization when there are pending migrations.
- fa7cc40 Add tests for
toSQL
- 58218e6 Fix fields not being sent on getPlaylist.view responses.
- 67c82f5 "Fix" Reddit badge
- fb7fd21 Don't add empty TIPL roles
- a6fc84a Parse the ID3v2.4 TIPL frame
- 1e5e8be Import ID3 sort_* tags
v0.51.0
New in this release.
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*
withreq.Params
- 00597e0 Add
req.Params
to replaceutils.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
insearch3
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)
withCOUNT(*)
" - 8c8e1ea Replace
COUNT(DISTINCT primary_key)
withCOUNT(*)
- 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)
v0.50.2
Bug fix point release
This release fixes a couple of bugs, most importantly authentication could be bypassed when the server had never been restarted after initial setup. More details are coming in a security advisory being prepared by @crazygolem, but if you can't promptly install this bug fix version, you can simply restart your server and you are clear.
Many thanks for @crazygolem for researching and finding this bug.
Changelog
v0.50.1
Bug fix point release
This release fixes a few bugs, most notably the scanner in Windows systems and the ARM docker image availability in Docker Hub.
- [UI] Add Indonesian. Thanks @tarokeitaro
- [Scanner] Fix Windows scanner (#2633). Thanks @caiocotts
- [Subsonic] Add OpenSubsonic tags:
genres
,bpm
,comment
,musicBrainzID
(#2597). Thanks @dweymouth and @caiocotts - [Build] Fix pushing images to Docker Hub
Changelog
- f69c27d Return genres in search3 endpoint.
- bb7186c Fix marshaling for genres.
- 5d1493e Bump @adobe/css-tools from 4.0.1 to 4.3.1 in /ui
- d0fe406 Fix Go 1.20 build
- c8fbf6b Bump dependencies
- e5bc3ca Update translations
- 6d88dd2 Add Indonesian Language
- eebfbc5 Revert walk_dir_tree.go back to using the os package.
- a5dfd2d Format subsonic response snapshots
- 7773522 Expose OpenSubsonic fields Genres, MusicBrainzId, Bpm, Comment (#2597)
- 53607fe Publish all new images to Docker Registry
v0.50.0
New in this release
Jukebox mode
One of the most requested features is finally available: Navidrome's Jukebox feature is a built-in functionality that allows users to play music directly to the server's audio. This essentially turns your server into a jukebox, enabling you to play songs or playlists remotely through a supported Subsonic client. See full documentation here. Can't thank enough @ms140569 for his dedication to this.
Album splitting by Original/Release date
Another big feature is the support for disambiguating album editions by Original/Release Date, contributed by @certuna.
Very Important: This feature is controlled by the Scanner.GroupAlbumReleases config option. The default is false
, meaning split is the default behaviour. This has a side effect that Navidrome will think all albums are new, and they will lose their star/love information, as well as play counts. If you don't want this behaviour, set Scanner.GroupAlbumReleases
to true
before upgrading.
Better networking support
Now Navidrome supports HTTPS out of the box. You need to provide a certificate and key as options (See new ND_TLSCERT
/ND_TLSKEY
config options). One more thing: Now the Address
config option can specify a Unix socket file instead of a IP address. For that set Address
(or ND_ADDRESS
) to unix:/path/to/socket/file
.
A big thanks to @ms140569, @certuna, @kgarner7 and all contributors that participated in this release.
Highlights
- [UI] Don't pump the volume up to 100% if it is not in a mobile device. Fix #2255. Thanks @tessharp
- [UI] Add option to allow shares to be downloaded
- [UI] Make AlbumArtists clickable in AlbumSongs view. Fixes #1627. Thanks @krateng
- [UI] Add Arabic (@zayedalsaidi) and Korean (@bonik21) translations
- [UI] Give page the right lang attribute (#2299). Thanks @subhajit20
- [UI] Upgrade to Node v18
- [UI] Fix external link for artist page (#2533). Thanks @kgarner7
- [Scanner] Ignore Recycle Bins in Windows. Fix #1074
- [Scanner] Make playlist tracks match case-insensitive. Fix #1720
- [Scanner] Better support for ReplayGain tags. Thanks @kgarner7
- [Scanner] Ignore playlists starting with a dot (#2390)
- [Scanner] Add support for lyrics tag
unsynced lyrics
(#2391). Thanks @BenzLeung - [Scanner] Use file creation date for Date Added/CreatedAt (#2553). Thanks @certuna
- [Server] Jukebox mode (#2289). Thanks @ms140569
- [Server] Implement ArtistArt priority (#2266). Thanks @repomaa
- [Server] Add option to load TLS cert/key, and use HTTPS
- [Server] Add support for listening on Unix socket. See #1477
- [Server] Allow BaseURL to contain full server url, including scheme and host. Fix #2183
- [Server] Sanitize filenames inside zip files. Fixes #1763
- [Server] Allow configuring cache folder (#2357). Thanks @tomleb
- [Server] Fix ListenBrainz submission, includes duration (#2279). Thanks @phw
- [Server] POST endpoint for importing m3u playlists (#2273). Thanks @spwats and @caiocotts
- [Server] Upgrade to Go 1.21
- [Subsonic] Convert all Subsonic API ints to int32 as per specification #2252
- [Subsonic] Fix getSongsByGenre pagination. Fix #1640
- [Subsonic] Add initial support for OpenSubsonic. (#2302)
- [Build] Publish docker images to ghcr.io (#2298). Thanks @onedr0p for the "push" ;)
Changelog
- fee0f40 Bump dependencies
- 9d2aaff Bump golang.org/x/tools from 0.13.0 to 0.15.0
- 2ff4023 Bump golang.org/x/image from 0.12.0 to 0.14.0
- 79870b1 Do not empty old artist metadata (#2423)
- 7a858a2 Fix external link for artist page if LastFM is missinb but Musicbrainz is not (#2533)
- 9cefaf6 Bump github.com/onsi/gomega from 1.29.0 to 1.30.0
- 3debd31 Add more replaygain tests, fix wma (#2356)
- 24d9fb5 Update translations (#2409)
- 40841ab Small date mapping fix (#2584)
- bae5fc9 Fix hardcoded IPv4 literals (#2602)
- e055826 Fix devcontainer for Go 1.21
- 54bde26 Bump github.com/mattn/go-sqlite3 from 1.14.16 to 1.14.18
- 3a73769 Bump golang.org/x/sync from 0.3.0 to 0.5.0
- de3d870 Bump github.com/spf13/cobra from 1.7.0 to 1.8.0
- 03175e1 Use file creation date for Date Added/CreatedAt (#2553)
- 26472f4 POST endpoint for importing m3u playlists - #2078 (#2273)
- 6bca753 Bump @babel/traverse from 7.19.3 to 7.23.2 in /ui
- 68d1d5c Bump github.com/lestrrat-go/jwx/v2 from 2.0.12 to 2.0.16
- db6c460 Bump github.com/beego/beego/v2 from 2.0.7 to 2.1.3
- 4cd916b Bump react-router-dom from 5.3.0 to 5.3.4 in /ui
- c40e83e Bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10
- 9094f41 Improve TopSongs findMatchingTrack by de-prioritizing compilations (#2532)
- 9ff95b6 Bump github.com/onsi/gomega from 1.27.10 to 1.29.0
- 77ace85 Coalesce genre to null for smart playlist (#2573)
- 59f0c48 Jukebox cleanup (#2554)
- 2cd4358 Make Jukebox available to Subsonic clients
- 248bf23 Bump github.com/lestrrat-go/jwx/v2 from 2.0.11 to 2.0.12 (#2480)
- b5664ab Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.12.0 (#2497)
- ac7f94e Fix text being unreadable with Ligera theme (#2517)
- d45f9f1 Bump github.com/google/uuid from 1.3.0 to 1.3.1 (#2489)
- 250107d Bump golang.org/x/image from 0.9.0 to 0.12.0 (#2507)
- 64b14db Add Korean Language (#2463)
- 73d1851 Bump golang.org/x/tools from 0.9.1 to 0.13.0 (#2516)
- 1b16e11 Jukebox mode (#2289)
- f941347 Upgrade to Go 1.21 (#2475)
- 1b5cefd Bump github.com/onsi/gomega from 1.27.8 to 1.27.9 (#2450)
- 4cf25fc Bump github.com/microcosm-cc/bluemonday from 1.0.24 to 1.0.25 (#2449)
- 14ba83e Bump github.com/go-chi/chi/v5 from 5.0.8 to 5.0.10 (#2444)
- 08f3fd1 Bump github.com/pressly/goose/v3 from 3.13.1 to 3.13.4 (#2442)
- 3d66f58 Bump tough-cookie from 4.1.2 to 4.1.3 in /ui (#2441)
- 5b1ba3d Bump word-wrap from 1.2.3 to 1.2.4 in /ui (#2446)
- a002830 Fix EnableMediaFileCoverArt option default value
- 7b600be Bump golang.org/x/tools from 0.10.0 to 0.11.0 (#2432)
- 7d0a191 Bump golang.org/x/image from 0.8.0 to 0.9.0 (#2430)
- c7fe311 Bump github.com/go-chi/jwtauth/v5 from 5.1.0 to 5.1.1 (#2427)
- 4520a34 Bump github.com/pressly/goose/v3 from 3.11.2 to 3.13.1 (#2428)
- 3e14c3c Add support for lyrics tag
unsynced lyrics
(#2391) - 1e891d6 Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#2408)
- caf9b22 Bump golang.org/x/image from 0.7.0 to 0.8.0 (#2407)
- 4f8742b Update translations (#2329)
- 26aa0f4 Fix typo
- 4898f31 Add
format
target to Makefile - 9da013f Submit duration to ListenBrainz (#2405)
- 5af67c7 Upgrade Go dependencies
- c860895 Fix listenbrainz submission and clarify MusicBrainz recording ID field (#2279)
- 36eda87 Fix locale-dependent tests. Closes #2402
- 7c92a73 Ignore playlists starting with a dot - #2367 (#2390)
- f5d9782 Fix original date (TDOR) mapping for ffmpeg extractor
- d6083da Re-apply "Refactor walkDirTree to use fs.FS" but remove context cancelation logic.
- 6b3b4d8 Revert "Refactor walkDirTree to use fs.FS"
- 3853c33 Refactor walkDirTree to use fs.FS
- 257ccc5 Allow configuring cache folder (#2357)
- cec5fb0 Fix lint errors
- 3fc4313 Move string slice functions to slice package as generic functions
- c4c99b7 Make
GroupAlbumReleases
false by default - a984bbb Make SmartPlaylists to always be seen as changed for Subsonic clients.
- ba06766 Fix date formatting to use UTC
- e38a690 Order albums by full original date (this time is for real). Fixes #1452
- 7d0656f Order albums by full original date. Fixes #1452
- 11f33ff Update dependencies
- 611363f Add missing translation
- 85d43d2 Add tests to date roll-ups
- 8faaa3c Use table specs in getDate tests
- 20462c5 Restore album "year" translation string
- 52b77e4 Support for Original Date, Release Date & splitting/grouping of album editions (#2162)
- 010ba0d Use table specs in ReplayGain tests.
- 9b7fac5 Update default transcoding commands (#2325)
- be12c12 Remove unused Badge component from ActivityPanel icon
- a19a643 Manually add replaygain tags for m4a (#2346)
- f9b060a Removed onBackdropClick deprecated property
- a3d78e9 Fix Monokai theme. Closes #2353
- d85b063 Fix build
- bfa10ca Upgrade to Node v18
- 08fcb43 Upgrade React-Admin to 3.19.12
- 5d02df6 Fix eslint error
- c3a2e08 Update caniuse-lite
- 4296741 Simplify EventStream handling
- 6bee4ed Sanitize filenames inside zip files. Fixes #1763
- e62c3ed Revert: Change fix formatting command
- 0a08d0a Change fix formatting command
- ad51335 Disable POEditor import job in forks
- a70b81f Bump github.com/onsi/ginkgo/v2 from 2.9.4 to 2.9.5 (#2352)
- 0d920c7 Bump github.com/prometheus/client_golang from 1.14.0 to 1.15.1 (#2342)
- 957a73e Bump github.com/mileusna/useragent from 1.2.1 to 1.3.2 (#2319)
- abc418e Bump github.com/onsi/ginkgo/v2 from 2.9.2 to 2.9.4 (#2343)
- 1128322 Bump golang.org/x/tools from 0.8.0 to 0.9.1 (#2350)
- 2e479de Bump github.com/go-chi/httprate from 0.7.1 to 0.7.4 (#2320)
- 8311a7f Bump golang.org/x/sync from 0.1.0 to 0.2.0 (#2344)
- 6ec8f78 Bump github.com/pressly/goose/v3 from 3.10.0 to 3.11.2 (#2341)
- 3e879d2 Add K8s manifest (#2330)
- 6d3d005 Allow the setrlimit syscall - #1961 (#2333)
- c12510d Update README
- 0bd73bd Better GH Action names
- 8c120ee Better GH Action names
- 9590b3c Use the highest resolution artist image from Spotify
- 4887c33 Bump golang.org/x packages
- da21acb Give page the right lang attribute (#2299)
- 9...
v0.49.3
Bug fix point release
There was a show stopper bug in 0.49.2, sorry about that. Also, the ReplayGain implementation is broken in Safari, and it was causing no audio to be played. In this release Safari should play normally as long as you don't turn ReplayGain on. This will be properly fixed and supported in Safari in a future release.
This release fixes the following issues:
- Fix DB upgrade from versions before 0.49.0 (#2168)
- Only create context if gain mode active (#2173) @kgarner7
- Limit Share Player size while handling theme properly (#2171) @kgarner7
Changelog
v0.49.2
Bug fix point release
This release fixes the following issues:
- Fix Playlist delete and reorder actions (#2160)
- "Spell-Jacking" mitigation - prevent sensitive data leak from spell checker (#2091). Thanks to @dlehammer
- Don't cancel transcoding session if context is canceled
- Make
ffmpeg
path configurable (optionFFmpegPath
), also finds it automatically in current folder (#1932) - Enable ReplayGain by default and always import RG tags
- Limit Share player width to 768px (#2164) Thanks to @kgarner7
- Abort start up if config file is invalid.
- New Option
EnableArtworkPrecache
to control the usage of Image Cache Warmer. See discussion in #2142
Changelog
- 3cd934a Update translations (#2159)
- 727632b Refactor play tracking
- 9e26867 Limit Share player to 768 px (#2164)
- bb29ad3 Update Spanish translation (#2165)
- b68ed2e Fix album's image_files
- 0c3ac90 Enable ReplayGain by default and always import RG tags
- b0e58cb Use Navidrome's own public images endpoint for
getAlbumInfo
's imageURLs - 8067137 Add lastUpdated to
coverArt
ids. Helps with invalidating art cache client-side. - a3b8682 Fix polling of buffered scrobbles
- 0bbb549 Use Go 1.20 in pipeline, drop support for 1.18
- 759ff84 Make ffmpeg path configurable, also finds it automatically in current folder. Fixes #1932
- b8c5e49 Close stream when downloading files, fix fd leak
- 05c6cde Don't cancel transcoding session if context is canceled
- fc8462d "Spell-Jacking" mitigation ~ prevent sensitive data leak from spell checker. (#2091)
- 9d459fb Abort start-up if config file is invalid
- 9b2dd1b Fix playlist delete and reorder actions
- bfaf4a3 Add logs to cache hunter
- a7f15fa Bump github.com/golangci/golangci-lint to 1.51.1
- ee8f644 Add option to disable Cache Warmer. Related to #2142
- dad4949 Refactor Subsonic search to make it a bit more readable
- 3ce3185 Don't retrieve Various Artists and Unknown Artist info from Last.fm
- a50d9c8 Use the latest sanitize, to fix some diacritics
v0.49.1
Bug fix point release
This release fixes the following issues:
- Proper handling of external metadata refreshes in background #2130. Thanks to @Tolriq (from Symfonium) for helping debug this.
- Add a fallback when the browser does not support copying the share link to clipboard
- Fix downloading and sharing from a playlist #2123
- Fix invisible checkboxes in Gruvbox theme #2135. Thanks to @vlfldr
- Fix unreadable lyrics in Nord theme #2146. Thanks to @kgarner7
- Fix playing new music uses lyrics from previously played one in Web Browser #2117. Thanks to @joaomqc
- Fix artwork resolution when paths contains a
:
char #2137
It also adds a new config option to change max playlists shown in UI's sidebar, MaxSidebarPlaylists
.
See #2077
Changelog
- f8dfb3a Clearer lyrics in Nord theme (#2146)
- 255f8e4 Update react-player, fix #2117
- eba70ab Change throttling log messages
- ee6b10d Replace custom code with
errgroup
- 797cc87 Enqueue external metadata refreshes
- bfbe980 Bump http-cache-semantics from 4.1.0 to 4.1.1 in /ui (#2139)
- d9d0a97 Better log message
- c031167 Don't retrieve all artist external metadata if we just want artist images
- 4a25e6d Fix Mapped Similar Artists log
- ad2ad51 Add dev option to increase external metadata cache expiration. More logs
- 588ee94 Discard request for image canceled by the client before any further processing
- 3c5032a Add migration to rebuild albums paths
- bcab3cc Add throttling to /share/img endpoint.
- 9b81aa4 Fix artwork resolution when paths contains
:
. Fix #2137 - f904784 Bump dependencies
- 0ce750d Update golangci-lint and fix lint errors
- cf04db7 Don't try to connect to external services if artist is Unknown
- f4b50c4 When retrieving images from external sources, avoid calling it again if data is already cached locally.
- 4a7e86e Fix file descriptor leaking.
- a1a5b2f Fix invisible checkboxes in Gruvbox theme (#2135)
- f00e611 Invalidate artist cache (by changing cache key format)
- d8e7943 Return 404 when artwork is not available in
/share/img
endpoint - 128b626 Add option to change max playlists shown in UI's sidebar,
MaxSidebarPlaylists
. Fix #2077 - d683297 Better behaviour of Prev/Next buttons when share has only one song:
- aaf58bb Handle nil pointer dereference. Fix #2133
- 58c4682 Update translations
- 712d8f9 Add trace logs to calls to external services
- b6fcfa9 Add a fallback when the browser does not support copying the share link to clipboard (not a secure origin)
- 762a1ba Fix downloading and sharing from a playlist. Fix #2123