Skip to content

Latest commit

 

History

History
281 lines (209 loc) · 31.9 KB

CHANGELOG.md

File metadata and controls

281 lines (209 loc) · 31.9 KB

Changelog

0.16.2 (2023-11-30)

Features

  • set global http timeouts except for streaming endpoints (2edb1b8), closes #411

Bug Fixes

  • admin: don't start with empty session key (dd0f6b3), closes #414
  • jukebox: make sure we clean up "seekable" event listener (b199bc1), closes #411
  • jukebox: restore play index only when incoming new track has index >0 (82c3c5b), closes #411
  • subsonic: return empty opensubsonic fields (5022500)

0.16.1 (2023-11-08)

Features

  • add more and unify stats (2fdc1f4)
  • store and expose individual track artists (c1a34dc)
  • subsonic: add getAlbumInfo with cache (cc1a99f)
  • subsonic: expose all of album "name"/"title"/"album" for browse by tag and browse by folder (2df9052), closes #404
  • subsonic: expose track/album displayArtist/displayAlbumArtist (0718aab), closes #406
  • subsonic: support getAlbumList/getAlbumList2 type=highest (a30ee3d), closes #404

Bug Fixes

  • add track count to /debug/vars metrics endpoint (69c02e8), closes #392
  • contrib: update config example (d03d2dc)
  • don't panic when scan on start fails (37e826e), closes #399
  • metrics: have a distinction between folders and albums (cae3725), closes #396
  • scanner: make sure we roll back invalid parents (ddb686b), closes #402
  • store and scrobble with real album artist info string (fe0567a)
  • subsonic: don't return concatenated genres strings for song/trackchilds (f18151b)
  • subsonic: songCount and albumCount in genre objects is required (#390) (b17e76e)
  • use conf cache-path instead of XDG_CACHE_HOME for jukebox socket (9818523), closes #391

0.16.0 (2023-10-09)

⚠ BREAKING CHANGES

  • build: bump to go 1.21
  • subsonic: drop support for guessed artist covers in filesystem

Features

  • add .wav to list of supported audio types (#322) (ab07b87)
  • add option for /debug/vars endpoint to expose database and media stats (2a7a455), closes #372 #150
  • add support for wavpack (#380) (827baf2)
  • admin: sort transcode profile names (ae5bc2e), closes #288
  • admin: support application/x-mpegurl playlist uploads (6aa4c42), closes #282
  • admin: update stylesheet (222256c)
  • allow multi valued tag modes to be configurable (8f6610f)
  • ci: add a bunch more linters (e3dd812)
  • ci: update checkout and setup-go actions (#326) (6144ac7)
  • ci: update golangci-lint and action (#325) (85eeb86)
  • contrib: improve system related contrib files (ac74b35)
  • enable profile-guided optimization (e842b89)
  • lastfm: add user get loved tracks method (9026c9e)
  • podcast: parse podcast episode descriptions from HTML to plain text (#351) (7d2c4fb)
  • scanner: add a new option for excluding paths based on a regexp (1d38776)
  • scanner: support more cover types (906164a)
  • scanner: support non lowercase extensions like .Mp3 (d83fe56)
  • store and use m3u files on filesystem for playlists (7dc9575), closes #306 #307 #66
  • subsonic: add getOpenSubsonicExtensions endpoint and openSubsonic response key (2caee44)
  • subsonic: add support for multi-valued album artist tags (3ac7782)
  • subsonic: add support for podcast episodes in both playlists and play queues (aecee3d)
  • subsonic: cache and use lastfm responses for covers, bios, top songs (c374577)
  • subsonic: change frequent album list to use total time played per album instead of play count. (#331) (7982ffc)
  • subsonic: drop support for guessed artist covers in filesystem (657fb22)
  • subsonic: expose all album genres in a list of subsonic api (749233d)
  • subsonic: fetch artist images from lastfm opengraph (4757495), closes #295
  • subsonic: gracefully handle missing podcast episode paths when returning playlists (d5f8e23)
  • subsonic: improve search2 and search3 when there are multiple words searched on. (#335) (cbab68b)
  • subsonic: make it easier to add more tag reading backends (8382f61)
  • subsonic: order results from getStarred reverse chronologically based on star date (b3c863c)
  • subsonic: return artist cover ids for similar artists response (c15349f)
  • subsonic: scrobble to different scrobble backends in parallel (1ea2402)
  • subsonic: support timeOffset in stream.view (#384) (7eaf602)
  • subsonic: update track play stats on scrobble instead of stream (e0b1603)
  • sunsonic: expose type serverVersion in subsonic responses (b8fceae)
  • tags: support multi valued tags like albumartists (623d5c3)
  • transcode: add MP3 320 transcoding profile (#363) (a644f0f)
  • transcode: add opus 192 profile (5dcc8c1)
  • transcode: lock the destination transcode cache path (c9a2d2f)

Bug Fixes

  • admin: continue on track match error (16e6046)
  • podcasts: make sure we use safeFilename for podcast episodes too (#339) (5fb9c49)
  • podcasts: remove query parameters from URL when getting the extension (19be6f0)
  • scanner: fix watcher panic (78d0c52)
  • scanner: remove redundant mod time look up (e0a8c18), closes #293
  • subsonic: only return one bookmark entry per row in getBookmarks (efe72fc), closes #310

Miscellaneous Chores

0.15.2 (2022-12-27)

Bug Fixes

  • subsonic: send valid content-type with http.ServeStream (8dc58c7)

0.15.1 (2022-12-26)

Features

  • allow for custom music folder path alias (7e097c9), closes #259
  • scrobble: only send musicbrainz id if it's a valid uuid (2bc3f31)
  • server: recover from panics (df93286)
  • subsonic: add stub lyrics.view (0407a15), closes #274

Bug Fixes

  • jukebox: gracefully handle case of no audio in feed item (b47c880), closes #269
  • jukebox: use a tmp dir instead of file for mpv sock (4280700), closes #266 #265
  • subsonic: update music folder id in bounds check (c6ddee8), closes #271
  • transcode: don't leave half transcode cache files lying around (ce31310), closes #270

0.15.0 (2022-11-17)

⚠ 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)

0.14.0 (2021-10-03)

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)

0.13.1 (2021-05-08)

Bug Fixes

  • docker: bump alpine / go (1f941b2)

0.13.0 (2021-05-08)

⚠ BREAKING CHANGES

  • subsonic: don't return gonic version from responses
  • bump to go1.16 and embed version

Features

  • bump to go1.16 and embed version (6f15589)
  • ci: arm builds, push multiple registries (0622672)
  • ci: use ghcr and auto release (c2c7eb2)
  • subsonic: don't return gonic version from responses (58624f0)

Bug Fixes

  • ci: only test on go1.16 (e9743f0)
  • don't clutter db close in main (e6b7691)
  • trim newline from version (a565008)