gonic v0.15.0 Release Notes
Release Date: 2022-11-17 // almost 2 years ago-
โ BREAKING CHANGES
- โฌ๏ธ upgrade deps and require go 1.19
- podcast: make podcasts global not per user, to match spec
๐ Features
- โ add a ping endpoint that doesn't create a session (731a696)
- โ add CreatedAt to albums (#159) (848d85d)
- โ add multi folder support (40cd031), closes #50
- countrw: add countrw package (5155dee)
- jukebox: allow users to pass custom arguments to mpv (428fdda), closes #125 #164
- jukebox: use mpv over ipc as a player backend (e1488b0)
- lastfm: scrobble with duration (7d0d036)
- ๐ฒ log all folders while scanning (b2388e6)
- ๐คก mockfs: add DumpDB method (b0d5861)
- podcasts: add an option to purge old episodes (85cb0fe)
- render local artist images for getArtistInfo2 (cb6b33a)
- render local artist images with no foreign key (a74b5a2)
- scanner: add fuzzing test (f7f4b8b)
- scanner: add option to use fsnotify based scan watcher (#232) (ea28ff1)
- scanner: added option to scan at startup (f6c9550), closes #251
- server: support TLS (59c4047)
- subsonic: add avatar support (5e66261), closes #228
- subsonic: add detailed logging about requested audio (dc4d9e4), closes #212
- subsonic: add getNewestPodcasts (f6687df)
- subsonic: add internet radio support (7ab378a)
- subsonic: add support for track/album/artist ratings/stars (e8759cb)
- subsonic: add year and genre fields to track-by-folder response (53a4247), closes #223
- subsonic: implement getSimilarSongs.view (e1cfed7), closes #195
- subsonic: implement getSimilarSongs2.view (92febcf), closes #195
- subsonic: implement getTopSongs.view (39b3ae5), closes #195
- subsonic: improve getArtistInfo2.view similar artist results (#203) (55c0920)
- subsonic: log error responses (2440e69)
- subsonic: make the v param optional (50e2818)
- subsonic: return transcoded mime and transcoded suffix in subsonic responses (6e6404a)
- subsonic: skip transcoding if request bitrate is the same as track bitrate (f41dd08), closes #241
- subsonic: sort artist album list (e56f64a), closes #197
- subsonic: support dsub edgecase for queries by decade (03df207)
- subsonic: support public playlists (1647eaa)
- subsonic: update play stats when scrobbling (1ab47d6), closes #207
- transcode: add a generic transcoding package for encoding/decoding/caching (165904c)
- transcode: add opus 128 kbps profiles (bb83426), closes #241
- ๐ป ui: add a link to wiki in transcode profile section (3348ca6), closes #254
- ๐ป ui: show when a scan is in progress (7fbe7c0)
- ๐ป use album create time for home ui and album listings (14a2668), closes #182 #135
๐ Bug Fixes
- โ add stub getStarred views to shut up refix (27ac8e1)
- ci: set golangci-lint timeout (48c34fd)
- ๐ docs: add GONIC_HTTP_LOG to setting table (a11d6ab)
- don't send listenbrainz playing_now and submitted_at at the same time (b07b9a8), closes #168
- lastfm: make a better guess at callback protocol when incoming connection is TLS (4658d07), closes #213
- listenbrainz: set json header (e883de8)
- listenbrainz: submit track recording ID instead of track ID (8ee357b), closes #240
- ๐ make sure open cover and audio files are closed after use (1d1ab11)
- podcast: add error case for when DownloadEpisode is called via API and podcast is already downloaded (611bc96), closes #213
- podcast: add user agent to avoid 403s with some remotes (0f80ae2)
- render artistId in track types (7ec6440), closes #170
- scanner: better detect years given extraneous year tags (a9d3933)
- scanner: fix linting Ctim.Sec/Ctim.Nsec on 32 bit systems (b280e8d)
- scanner: fix records with album name same as artist (fdbb282), closes #230
- scanner: make sure we have an album artist before populating track (01747c8), closes #209
- scanner: respect "is full" setting (f2143e3)
- set ON DELETE SET NULL to artists.guessed_folder_id removing folders (24d64e2)
- ๐ show artist album count when searching by tags (0c79044)
- ๐ show artist covers (raw url in artist info, cover id elsewhere) via scanned guessed artist folder (c0ebd26), closes #180 #179
- subsonic: change order of fromYear toYear query (d7655cb), closes #208
- subsonic: correct album orderding in getAlbumList, add starred request type in getAlbumList (692ec68)
- subsonic: return an error when no tracks provided in savePlayQueue (d47d5e1)
- subsonic: return song artist ID, album and song genres from search3 (1a1f39f), closes #229
- subsonic: route settings.view -> admin home (f9133aa)
๐จ Code Refactoring
- podcast: make podcasts global not per user, to match spec (182c96e)
Miscellaneous Chores
- โฌ๏ธ upgrade deps and require go 1.19 (385a980)
Previous changes from v0.14.0
-
๐ Features
- ci: add debug build workflow (2780dba)
- ci: pin golangci-lint version (8f7131e)
- ci: test before release please, and only run extra tests on develop and pull request (cd5771f)
- ci: use GITHUB_TOKEN for release please (608504b)
- create cache directory on startup (f3bc3ae), closes #127
- encode: add hi-gain RG and upsampling support (616b152)
- encode: add mime-type headers to cache handlers (4109b5b)
- encode: use "true" (unconstrained) VBR for Opus profiles (b9f8ea7)
- jukebox: reduce complexity and update dependencies (#154) (3938136)
- ๐ support filter by genre in browse by folder mode (b56f00e)
- ๐ support filter by year in browse by folder mode (6e2d4f7)
- ๐ Support WMA files, including those with embedded album art (#143) (7100b2b)
๐ Bug Fixes
- ๐ build: add zlib (ccc0e3c)
- ci: remove deprecated linters (3382af7)
- ci: trim short hash (6f26974)
- ๐ docs: update ubuntu / systemd service instructions (ef6dd6c), closes #126
- encode: Strip EBU R128 gain tags when using forced-RG transcoding (#145) (5444d40)
- return early before type switch in ServeStream (212a133), closes #152
- scanner: refactor a bit and fix the issue of repeatedly adding and removing tracks ๐ (93608d0), closes #26 #63
- scanner: spawn interval scans in a goroutine (c0ca6aa), closes #63
- scanner: update changed cover files when scanning (f50817a), closes #158
- ๐ show "gonic" not version in --help (3cf3bda)
- trim newlines when rendering flag values (4637cf7)