gonic v0.15.0 Release Notes

Release Date: 2022-11-17 // over 1 year 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)