From 4455fa1bf10fdf2d72adc954d9042179298010a6 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 10:37:36 +1000 Subject: [PATCH 1/9] chore: bump to go-lang 1.24.1 --- .github/workflows/build-n-test.yml | 4 ++-- go.mod | 2 +- go.sum | 10 ++++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-n-test.yml b/.github/workflows/build-n-test.yml index c41fad2..82b5272 100644 --- a/.github/workflows/build-n-test.yml +++ b/.github/workflows/build-n-test.yml @@ -55,13 +55,13 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: ^1.20.0 + go-version-file: 'go.mod' id: go - name: golangci-lint uses: golangci/golangci-lint-action@v6 with: - version: v1.60 + version: v1.64 - name: Test run: make test diff --git a/go.mod b/go.mod index ca7d23f..e102ff0 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/edgetx/cloudbuild -go 1.20 +go 1.24.1 require ( github.com/aws/aws-sdk-go-v2 v1.18.0 diff --git a/go.sum b/go.sum index 22e9073..c9b8d9a 100644 --- a/go.sum +++ b/go.sum @@ -104,6 +104,7 @@ github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5y github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= @@ -120,6 +121,7 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= @@ -135,7 +137,9 @@ github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9 github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -178,6 +182,7 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -235,6 +240,7 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -250,9 +256,11 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI= +github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLgZiaenE= +github.com/microsoft/go-mssqldb v0.17.0/go.mod h1:OkoNGhGEs8EZqchVTtochlXruEhEOaO4S0d2sB5aeGQ= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -665,7 +673,9 @@ gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLP gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U= gorm.io/driver/postgres v1.5.0/go.mod h1:FUZXzO+5Uqg5zzwzv4KK49R8lvGIyscBOqYrtI1Ce9A= gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU= +gorm.io/driver/sqlite v1.4.3/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0= +gorm.io/driver/sqlserver v1.4.1/go.mod h1:DJ4P+MeZbc5rvY58PnmN1Lnyvb5gw5NPzGshHDnJLig= gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU= gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k= From 8f7b8e864442ec522204efcdffbad154a83565d5 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 10:38:39 +1000 Subject: [PATCH 2/9] chore: cleanup (use org file) --- .github/FUNDING.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 8c2fb66..0000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -open_collective: edgetx From c6ccd5986784c3a4b669b2ea4cfc052421df3d52 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 10:39:14 +1000 Subject: [PATCH 3/9] chore: formatting --- .github/workflows/build-n-test.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-n-test.yml b/.github/workflows/build-n-test.yml index 82b5272..62811b2 100644 --- a/.github/workflows/build-n-test.yml +++ b/.github/workflows/build-n-test.yml @@ -5,26 +5,26 @@ on: branches: - master tags: - - 'v*' + - "v*" paths-ignore: - - '**.md' + - "**.md" pull_request: branches: - master paths-ignore: - - '**.md' + - "**.md" jobs: json-validate: - name: Validate JSON/YML files - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 + name: Validate JSON/YML files + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 - - name: json-yaml-validate - uses: GrantBirki/json-yaml-validate@v2 - with: - mode: fail + - name: json-yaml-validate + uses: GrantBirki/json-yaml-validate@v2 + with: + mode: fail test-backend: name: Test backend @@ -55,7 +55,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version-file: 'go.mod' + go-version-file: "go.mod" id: go - name: golangci-lint @@ -85,7 +85,7 @@ jobs: build: runs-on: ubuntu-latest - needs: [ test-backend, test-frontend ] + needs: [test-backend, test-frontend] if: ${{ github.actor != 'dependabot[bot]' }} steps: - name: Check out the repo From 1837a5dfd41e2163eba2b6da65f4e87a70557355 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 10:44:22 +1000 Subject: [PATCH 4/9] fix: check if assertion is valid before using it --- config/options.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config/options.go b/config/options.go index 8c8410c..fd239a2 100644 --- a/config/options.go +++ b/config/options.go @@ -57,7 +57,12 @@ func LogLevelDecodeHookFunc() mapstructure.DecodeHookFunc { return data, nil } - level, err := log.ParseLevel(data.(string)) + str, ok := data.(string) + if !ok { + return InfoLevel, fmt.Errorf("expected string but got %T", data) + } + + level, err := log.ParseLevel(str) if err != nil { return InfoLevel, err } From 5c92f3ae748f7677b32f1148fc22dd8a915f8a6e Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 10:54:19 +1000 Subject: [PATCH 5/9] chore: err113 linter rule... --- config/options.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config/options.go b/config/options.go index fd239a2..67da06d 100644 --- a/config/options.go +++ b/config/options.go @@ -43,6 +43,10 @@ func (ll *LogLevel) Level() log.Level { return (log.Level)(*ll) } +var ( + // Define a static error + ErrInvalidDataType = errors.New("invalid data type, expected string") +) func LogLevelDecodeHookFunc() mapstructure.DecodeHookFunc { return func( f reflect.Type, @@ -59,7 +63,7 @@ func LogLevelDecodeHookFunc() mapstructure.DecodeHookFunc { str, ok := data.(string) if !ok { - return InfoLevel, fmt.Errorf("expected string but got %T", data) + return InfoLevel, fmt.Errorf("%w: got %T", ErrInvalidDataType, data) } level, err := log.ParseLevel(str) From 56189bd3a03c9619b4ece2fe0e63484ecb6f1254 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 11:04:14 +1000 Subject: [PATCH 6/9] chore: hopefully shut linter up --- config/options.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/config/options.go b/config/options.go index 67da06d..affb697 100644 --- a/config/options.go +++ b/config/options.go @@ -16,6 +16,9 @@ import ( "github.com/spf13/viper" ) +// Define a static error +var ErrInvalidDataType = errors.New("invalid data type, expected string") + type LogLevel log.Level const ( @@ -43,10 +46,6 @@ func (ll *LogLevel) Level() log.Level { return (log.Level)(*ll) } -var ( - // Define a static error - ErrInvalidDataType = errors.New("invalid data type, expected string") -) func LogLevelDecodeHookFunc() mapstructure.DecodeHookFunc { return func( f reflect.Type, From a7bc39b01e5c9133ee24f8a4d88acf751a94cf7b Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 11:09:19 +1000 Subject: [PATCH 7/9] chore: is this linter fking serious? --- config/options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/options.go b/config/options.go index affb697..d5d7d46 100644 --- a/config/options.go +++ b/config/options.go @@ -16,7 +16,7 @@ import ( "github.com/spf13/viper" ) -// Define a static error +// Define a static error. var ErrInvalidDataType = errors.New("invalid data type, expected string") type LogLevel log.Level From c6650cbe23551402de10329963585a9b877795a5 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 11:12:59 +1000 Subject: [PATCH 8/9] chore: replace exportloopref linter Finally! :facepalm: --- .golangci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.golangci.yml b/.golangci.yml index 8fb9483..2497378 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -21,7 +21,7 @@ linters: - cyclop - dogsled - durationcheck - - exportloopref + - copyloopvar - exhaustive - errname - errcheck From e976bc59ecfa20070818b97d64e713f2ed8e8e75 Mon Sep 17 00:00:00 2001 From: Peter Feerick Date: Tue, 1 Apr 2025 11:18:22 +1000 Subject: [PATCH 9/9] chore: update docker lang image version --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0f4503a..2f9cbc0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.20-bullseye AS builder +FROM golang:1.24.1-bullseye AS builder RUN mkdir /build ADD . /build/