From 847ac4bc11881ded767bb386e35115bfe0dd422f Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:04 -0400 Subject: [PATCH 1/9] Add golangci-lint configuration file --- .golangci.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .golangci.yml diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..cfa9e32 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,48 @@ +run: + go: "1.21" + issues-exit-code: 1 + tests: true + timeout: 10m +linters: + enable: + - unused + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - contextcheck + - durationcheck + - errcheck + - errchkjson + - errorlint + - exhaustive + - gocheckcompilerdirectives + - gochecksumtype + - gosec + - gosmopolitan + - govet + - loggercheck + - makezero + - musttag + - nilerr + - nilnesserr + - noctx + - protogetter + - reassign + - recvcheck + - rowserrcheck + - spancheck + - sqlclosecheck + - staticcheck + - testifylint + - unparam + - zerologlint + presets: + - bugs + - unused + fast: false + +linters-settings: + gofmt: + simplify: true From 2690b87c147511ae83bc13ccb8d6810ce9bc2de6 Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:04 -0400 Subject: [PATCH 2/9] Add lint recipe in makefile --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 8ac1bc2..b4cb945 100644 --- a/Makefile +++ b/Makefile @@ -29,3 +29,7 @@ package_windows: package_linux: fyne package -os linux -tags migrated_fynedo + +.PHONY: lint +lint: + golangci-lint run From b7a7adc8b5bcf3cca96ec9f91206335b8e4a5674 Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Sat, 17 May 2025 17:40:17 -0400 Subject: [PATCH 3/9] Add golangci-lint github action --- .github/workflows/lints.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/lints.yml diff --git a/.github/workflows/lints.yml b/.github/workflows/lints.yml new file mode 100644 index 0000000..aaa79a5 --- /dev/null +++ b/.github/workflows/lints.yml @@ -0,0 +1,27 @@ +# https://github.com/marketplace/actions/golangci-lint +name: golangci-lint +on: + push: + branches: + pull_request: + +permissions: + contents: read + # Optional: allow read access to pull request. Use with `only-new-issues` option. + pull-requests: read + +jobs: + golangci: + name: lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: stable + - name: Install dependencies + run: sudo apt update && sudo apt install libmpv-dev gcc libegl1-mesa-dev xorg-dev + - name: golangci-lint + uses: golangci/golangci-lint-action@v6 + with: + version: v1.64 From d75dfb08ee0cf0c7cb6e9e83e540e96b4b667abc Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:04 -0400 Subject: [PATCH 4/9] Remove doSetNewTrackOrder due to unused lint Remove doSetNewTrackOrder from ui/browsing/nowplayingpage.go: it seems there is a same named method that is used elsewhere, instead of the one we are removing. $ ag doSetNewTrackOrder ui/browsing/playlistpage.go 95: a.tracklist.OnReorderTracks = a.doSetNewTrackOrder 210:func (a *PlaylistPage) doSetNewTrackOrder(ids []string, newPos int) { ui/browsing/nowplayingpage.go 509:func (a *NowPlayingPage) doSetNewTrackOrder(idxs []int, insertPos int) { --- ui/browsing/nowplayingpage.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ui/browsing/nowplayingpage.go b/ui/browsing/nowplayingpage.go index 10f4f89..30a2435 100644 --- a/ui/browsing/nowplayingpage.go +++ b/ui/browsing/nowplayingpage.go @@ -506,11 +506,6 @@ func (a *NowPlayingPage) Refresh() { a.BaseWidget.Refresh() } -func (a *NowPlayingPage) doSetNewTrackOrder(idxs []int, insertPos int) { - newTracks := sharedutil.ReorderItems(a.queue, idxs, insertPos) - a.pm.UpdatePlayQueue(newTracks) -} - func (a *NowPlayingPage) saveSelectedTab(tabNum int) { var tabName string switch tabNum { From 5d9fea19d474f42ad9e1e7879987a9b151630259 Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:04 -0400 Subject: [PATCH 5/9] Remove unused unimplemented error due to lint A quick check shows that this is not used anywhere else in the codebase. $ ag unimplemented backend/player/dlna/dlnaplayer.go 34:var unimplemented = errors.New("unimplemented") --- backend/player/dlna/dlnaplayer.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/backend/player/dlna/dlnaplayer.go b/backend/player/dlna/dlnaplayer.go index 0dcb38f..bbd9e2b 100644 --- a/backend/player/dlna/dlnaplayer.go +++ b/backend/player/dlna/dlnaplayer.go @@ -31,8 +31,6 @@ const ( paused = 2 ) -var unimplemented = errors.New("unimplemented") - type proxyMapEntry struct { key string url string From 4855eaa6a17ec1734799249a150b722e861f3457 Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:05 -0400 Subject: [PATCH 6/9] Remove unused imagePopUpLowRezDim constant due to lint Checking to see if this is used anywhere in the project, we see that it is not: $ ag imagePopUpLowRezDim ui/widgets/imagepopup.go 13: imagePopUpLowRezDim = 128 --- ui/widgets/imagepopup.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/ui/widgets/imagepopup.go b/ui/widgets/imagepopup.go index 8f95bec..2039806 100644 --- a/ui/widgets/imagepopup.go +++ b/ui/widgets/imagepopup.go @@ -9,10 +9,6 @@ import ( myTheme "github.com/dweymouth/supersonic/ui/theme" ) -const ( - imagePopUpLowRezDim = 128 -) - type ImagePopUp struct { widget.PopUp From 40fb289c460b4cc0b40c17b82a2d2f6a32bc473a Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:05 -0400 Subject: [PATCH 7/9] Remove unused aspect field due to lint --- ui/widgets/imagepopup.go | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/widgets/imagepopup.go b/ui/widgets/imagepopup.go index 2039806..6b2cfce 100644 --- a/ui/widgets/imagepopup.go +++ b/ui/widgets/imagepopup.go @@ -14,7 +14,6 @@ type ImagePopUp struct { img image.Image desiredSize fyne.Size - aspect float64 } func NewImagePopUp(img image.Image, canv fyne.Canvas, size fyne.Size) *ImagePopUp { From 4a4596f144268dbd02c7af4fd273682c006fac29 Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:05 -0400 Subject: [PATCH 8/9] Remove unused handleNextTrack method due to lint I didn't see any other usages of this method: $ ag handleNextTrack backend/player/jukebox/jukeboxplayer.go 158:func (j *JukeboxPlayer) handleNextTrack() { --- backend/player/jukebox/jukeboxplayer.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/backend/player/jukebox/jukeboxplayer.go b/backend/player/jukebox/jukeboxplayer.go index 0dd63b8..660cb9a 100644 --- a/backend/player/jukebox/jukeboxplayer.go +++ b/backend/player/jukebox/jukeboxplayer.go @@ -154,7 +154,3 @@ func (j *JukeboxPlayer) startAndUpdateTime() error { j.startedAtUnixMilli = time.Now().Add(-afterStart.Sub(beforeStart)).UnixMilli() return nil } - -func (j *JukeboxPlayer) handleNextTrack() { - -} From 22755a924af716958c2b5bf26ff3cb5c032baa50 Mon Sep 17 00:00:00 2001 From: Simon Symeonidis Date: Tue, 13 May 2025 23:30:05 -0400 Subject: [PATCH 9/9] Remove unused nextTrackTimer due to lint It seems that this field is not used elsewhere in the project: $ ag nextTrackTimer backend/player/jukebox/jukeboxplayer.go 30: nextTrackTimer *time.Timer --- backend/player/jukebox/jukeboxplayer.go | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/player/jukebox/jukeboxplayer.go b/backend/player/jukebox/jukeboxplayer.go index 660cb9a..b4bad7d 100644 --- a/backend/player/jukebox/jukeboxplayer.go +++ b/backend/player/jukebox/jukeboxplayer.go @@ -27,7 +27,6 @@ type JukeboxPlayer struct { curTrackDuration float64 startTrackTime float64 startedAtUnixMilli int64 - nextTrackTimer *time.Timer } func (j *JukeboxPlayer) SetVolume(vol int) error {