From 9fbbd77cca618b7d567884ee363ee064a63f4b4a Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:20:50 -0500 Subject: [PATCH 01/21] fix: switch to smaller faster ko builds without qemu --- .circleci/config.yml | 48 +++++----- .docker-deps/entrypoint.sh | 30 ------ .ko.yaml | 11 +++ Dockerfile | 63 ------------- cmd/mmmbbb/main.go | 22 +++++ go.mod | 91 +++++++++++++++++- go.sum | 187 +++++++++++++++++++++++++++++++++++++ magefile.go | 158 ------------------------------- 8 files changed, 331 insertions(+), 279 deletions(-) delete mode 100755 .docker-deps/entrypoint.sh create mode 100644 .ko.yaml delete mode 100644 Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f7910d..1cd5973 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -190,38 +190,34 @@ jobs: - setup_remote_docker - sixrs-gke/docker-login - run: - name: Initialize docker buildx + name: Build docker test image command: | - docker run --privileged --rm tonistiigi/binfmt --install all - docker context create multiarch-context - docker buildx create --name mmmbbb-multiarch --driver docker-container --bootstrap --use multiarch-context - - run: - name: Build multiarch binaries - command: go tool mage -v releaseBinaries - - run: - name: Build multiarch docker images - command: go tool mage -v docker:multiarchBuildAll + go tool ko resolve --local --platform linux/amd64 -f <( echo ko://./cmd/mmmbbb ) | head -n1 | tee /tmp/testimage.txt - run: name: Verify docker images command: | set -xeuo pipefail - for plat in amd64 arm64 ; do - go tool mage -v docker:multiarchLoadArch mmmbbb $plat - docker run --rm --platform linux/$plat --entrypoint /app/mmmbbb mmmbbb:$(<.version) --version - # fire this one into the background for the smoke test run - docker run --name mmmbbb-smoke-$plat --rm --platform linux/$plat mmmbbb:$(<.version) & - pid=$! - # can't contact the remote docker directly, so we have to build - # the mage binary, copy it over, and exec it - CGO_ENABLED=0 go tool mage -v -compile magebinary-$plat -goarch $plat - docker cp magebinary-$plat mmmbbb-smoke-$plat:/ - # this should ask the app to shut down at the end - docker exec mmmbbb-smoke-$plat /magebinary-$plat -v testSmokeCore mmmbbb localhost:8084 - wait $pid - done + docker run --rm $( Date: Fri, 14 Feb 2025 22:23:11 -0500 Subject: [PATCH 02/21] fix: remove fluff --- .circleci/config.yml | 3 ++- magefile.go | 12 ------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1cd5973..ddcc198 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,7 +44,8 @@ jobs: # - go-build-aio-v1-cgo<< parameters.cgo >>-{{ checksum "/tmp/cache-time-limit" }}-{{ .Revision }} # - go-build-aio-v1-cgo<< parameters.cgo >>-{{ checksum "/tmp/cache-time-limit" }}- - - run: go tool mage -v get + - run: go mod download + - run: go mod verify # gotestsum is included in the cimg/go image # - run: go tool mage -v installCITools # however protobuf is not diff --git a/magefile.go b/magefile.go index b291f6f..c3171b9 100644 --- a/magefile.go +++ b/magefile.go @@ -214,18 +214,6 @@ func (Generate) Grpc(ctx context.Context) error { return nil } -func Get(ctx context.Context) error { - fmt.Println("Downloading dependencies...") - if err := sh.Run("go", "mod", "download", "-x"); err != nil { - return err - } - fmt.Println("Verifying dependencies...") - if err := sh.Run("go", "mod", "verify"); err != nil { - return err - } - return nil -} - func InstallProtobufTools(ctx context.Context) error { // CI needs apt-get update before packages can be installed, assume humans don't if os.Getenv("CI") != "" { From c511a32a92985ddad854d9d103945a4b623506f8 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:24:56 -0500 Subject: [PATCH 03/21] fix: license --- .ko.yaml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.ko.yaml b/.ko.yaml index a125d80..f4faf78 100644 --- a/.ko.yaml +++ b/.ko.yaml @@ -1,3 +1,22 @@ +# Copyright (c) 2025 6 River Systems +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +# the Software, and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + builds: - id: mmmbbb main: ./cmd/mmmbbb From 787333c0f0e6b5b2348d9761113f580a92e65744 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:25:45 -0500 Subject: [PATCH 04/21] fix: typo --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ddcc198..3568939 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -249,4 +249,4 @@ workflows: branches: only: - main - - publish/* + - /^publish\/.*/ From 6d396cac5a4c522fd5cc22c7224bdd7f9edcc84a Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:27:42 -0500 Subject: [PATCH 05/21] fix: addlicense->tool --- go.mod | 4 ++-- go.sum | 33 ++++++++++++++++++++++++++------- internal/null_test.go | 1 - magefile.go | 2 +- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/go.mod b/go.mod index 8b4f162..47e2016 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,6 @@ require ( github.com/gin-contrib/logger v1.2.3 github.com/gin-gonic/gin v1.10.0 github.com/golang/protobuf v1.5.4 - github.com/google/addlicense v1.1.1 github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 @@ -135,12 +134,12 @@ require ( github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.24.0 // indirect - github.com/go-test/deep v1.1.1 // indirect github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/goccy/go-json v0.10.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect + github.com/google/addlicense v1.1.1 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-containerregistry v0.20.2 // indirect github.com/google/ko v0.17.1 // indirect @@ -265,6 +264,7 @@ require ( ) tool ( + github.com/google/addlicense github.com/google/ko github.com/magefile/mage ) diff --git a/go.sum b/go.sum index 6ad20d7..c5d8c14 100644 --- a/go.sum +++ b/go.sum @@ -44,6 +44,7 @@ github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdE github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= @@ -52,8 +53,8 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= -github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/Depado/ginprom v1.8.1 h1:lrQTddbRqlHq1j6SpJDySDumJlR7FEybzdX0PS3HXPc= github.com/Depado/ginprom v1.8.1/go.mod h1:9Z+ahPJLSeMndDfnDTfiuBn2SKVAuL2yvihApWzof9A= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= @@ -141,6 +142,8 @@ github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -188,6 +191,8 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -300,6 +305,8 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-containerregistry v0.20.2 h1:B1wPJ1SN/S7pB+ZAimcciVD+r+yV/l/DSArMxlbwseo= github.com/google/go-containerregistry v0.20.2/go.mod h1:z38EKdKh4h7IP2gSfUUqEvalZBqs6AoLeWfUy34nQC8= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/ko v0.17.1 h1:CIV2w1tFTm7wrhs/GHpegUwSmnEcynBr/Us9kgtK5NY= github.com/google/ko v0.17.1/go.mod h1:79yvkOlGy4Kxw9XPfRWpqJXvgEPqAM8jTSp7itqv71o= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= @@ -320,8 +327,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gT github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q= github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA= @@ -351,7 +358,10 @@ github.com/jedisct1/go-minisign v0.0.0-20230811132847-661be99b8267/go.mod h1:h1n github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmhodges/clock v1.2.0 h1:eq4kys+NI0PLngzaHEe7AmPT90XMGIEySD1JfV1PDIs= +github.com/jmhodges/clock v1.2.0/go.mod h1:qKjhA7x7u/lQpPB1XAqX1b1lCI/w3/fNuYpI/ZjLynI= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -419,13 +429,16 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= +github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= github.com/oapi-codegen/oapi-codegen/v2 v2.4.1 h1:ykgG34472DWey7TSjd8vIfNykXgjOgYJZoQbKfEeY/Q= github.com/oapi-codegen/oapi-codegen/v2 v2.4.1/go.mod h1:N5+lY1tiTDV3V1BeHtOxeWXHoPVeApvsvjJqegfoaz8= github.com/oasdiff/yaml v0.0.0-20241210131133-6b86fb107d80 h1:nZspmSkneBbtxU9TopEAE0CY+SBJLxO8LPUlw2vG4pU= @@ -469,6 +482,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -591,6 +606,10 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEj go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= go.opentelemetry.io/otel v1.34.0 h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY= go.opentelemetry.io/otel v1.34.0/go.mod h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 h1:R9DE4kQ4k+YtfLI2ULwX82VtNQ2J8yZmA7ZIF/D+7Mc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0 h1:FyjCyI9jVEfqhUh2MoSkmolPjfh5fp2hnV0b0irxH4Q= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.22.0/go.mod h1:hYwym2nDEeZfG/motx0p7L7J1N1vyzIThemQsb4g2qY= go.opentelemetry.io/otel/metric v1.34.0 h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ= go.opentelemetry.io/otel/metric v1.34.0/go.mod h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE= go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= @@ -599,6 +618,8 @@ go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiy go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= go.opentelemetry.io/otel/trace v1.34.0 h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k= go.opentelemetry.io/otel/trace v1.34.0/go.mod h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE= +go.opentelemetry.io/proto/otlp v1.2.0 h1:pVeZGk7nXDC9O2hncA6nHldxEjm6LByfA2aN8IOkz94= +go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs= go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8= go.uber.org/dig v1.18.0 h1:imUL1UiY0Mg4bqbFfsRQO5G4CGRBec/ZujWTvSVp3pw= @@ -628,8 +649,6 @@ golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOM golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20231108232855-2478ac86f678 h1:mchzmB1XO2pMaKFRqk/+MV3mgGG96aqaPXaMifQU47w= -golang.org/x/exp v0.0.0-20231108232855-2478ac86f678/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/internal/null_test.go b/internal/null_test.go index 54c3948..29e9dbc 100644 --- a/internal/null_test.go +++ b/internal/null_test.go @@ -27,7 +27,6 @@ package internal import ( - _ "github.com/google/addlicense" _ "golang.org/x/tools/imports" _ "golang.org/x/vuln/cmd/govulncheck" _ "gotest.tools/gotestsum/cmd" diff --git a/magefile.go b/magefile.go index c3171b9..c874b0a 100644 --- a/magefile.go +++ b/magefile.go @@ -417,7 +417,7 @@ func (Lint) addLicense(fix bool) error { cmdout, cmderr = buf, buf } args := []string{ - "run", "github.com/google/addlicense", + "tool", "addlicense", "-c", "6 River Systems", "-l", "mit", "-ignore", "**/*.css", From 93b7a60283f0a8e9247a15f1dbd4f49694acb827 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:30:19 -0500 Subject: [PATCH 06/21] fix: vulncheck -> go tool --- go.mod | 3 ++- internal/null_test.go | 2 -- magefile.go | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 47e2016..ff9c5de 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,6 @@ require ( go.uber.org/fx v1.23.0 golang.org/x/sync v0.11.0 golang.org/x/tools v0.30.0 - golang.org/x/vuln v1.1.4 google.golang.org/api v0.221.0 google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 @@ -247,6 +246,7 @@ require ( golang.org/x/term v0.29.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.10.0 // indirect + golang.org/x/vuln v1.1.4 // indirect google.golang.org/genproto v0.0.0-20250122153221-138b5a5a4fd4 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250207221924-e9438ea467c6 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250207221924-e9438ea467c6 // indirect @@ -267,4 +267,5 @@ tool ( github.com/google/addlicense github.com/google/ko github.com/magefile/mage + golang.org/x/vuln/cmd/govulncheck ) diff --git a/internal/null_test.go b/internal/null_test.go index 29e9dbc..595992d 100644 --- a/internal/null_test.go +++ b/internal/null_test.go @@ -27,8 +27,6 @@ package internal import ( - _ "golang.org/x/tools/imports" - _ "golang.org/x/vuln/cmd/govulncheck" _ "gotest.tools/gotestsum/cmd" _ "github.com/oapi-codegen/oapi-codegen/v2/pkg/codegen" diff --git a/magefile.go b/magefile.go index c874b0a..2b5d4ae 100644 --- a/magefile.go +++ b/magefile.go @@ -450,7 +450,7 @@ func (Lint) addLicense(fix bool) error { func (Lint) VulnCheck(ctx context.Context) error { fmt.Println("Linting(vulncheck)...") return sh.Run( - "go", "run", "golang.org/x/vuln/cmd/govulncheck", + "go", "tool", "govulncheck", "-test", "./...", ) From 8bb2afd6487ae0c810ab5437c72782356a6cd3a3 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:32:15 -0500 Subject: [PATCH 07/21] fix: oapi-codgen -> tool --- go.mod | 8 ++---- go.sum | 59 ------------------------------------------- internal/null_test.go | 38 ---------------------------- magefile.go | 3 --- oas/generate.go | 2 +- 5 files changed, 3 insertions(+), 107 deletions(-) delete mode 100644 internal/null_test.go diff --git a/go.mod b/go.mod index ff9c5de..d583455 100644 --- a/go.mod +++ b/go.mod @@ -22,11 +22,9 @@ require ( github.com/jmoiron/sqlx v1.4.0 github.com/magefile/mage v1.15.0 github.com/mattn/go-sqlite3 v1.14.24 - github.com/oapi-codegen/oapi-codegen/v2 v2.4.1 github.com/olekukonko/tablewriter v0.0.6-0.20230422125635-f6b4e4ae60d8 github.com/ory/dockertest/v3 v3.11.0 github.com/prometheus/client_golang v1.20.5 - github.com/quasilyte/go-ruleguard/dsl v0.3.22 github.com/rs/cors/wrapper/gin v0.0.0-20240830163046-1084d89a1692 github.com/rs/zerolog v1.33.0 github.com/spf13/cobra v1.8.1 @@ -38,7 +36,6 @@ require ( google.golang.org/grpc v1.70.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.36.5 - gotest.tools/gotestsum v1.12.0 modernc.org/sqlite v1.34.5 ) @@ -84,7 +81,6 @@ require ( github.com/aws/smithy-go v1.20.4 // indirect github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240514230400-03fa26f5508f // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bitfield/gotestdox v0.2.2 // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/bmatcuk/doublestar v1.3.4 // indirect github.com/bmatcuk/doublestar/v4 v4.7.1 // indirect @@ -100,7 +96,6 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/dnephin/pflag v1.0.7 // indirect github.com/docker/cli v27.4.0+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker v27.4.0+incompatible // indirect @@ -110,7 +105,6 @@ require ( github.com/dprotaso/go-yit v0.0.0-20240618133044-5a0af90af097 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/evanphx/json-patch/v5 v5.6.0 // indirect - github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect @@ -178,6 +172,7 @@ require ( github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/ncruces/go-strftime v0.1.9 // indirect + github.com/oapi-codegen/oapi-codegen/v2 v2.4.1 // indirect github.com/oasdiff/yaml v0.0.0-20241210131133-6b86fb107d80 // indirect github.com/oasdiff/yaml3 v0.0.0-20241210130736-a94c01f36349 // indirect github.com/oklog/ulid v1.3.1 // indirect @@ -267,5 +262,6 @@ tool ( github.com/google/addlicense github.com/google/ko github.com/magefile/mage + github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen golang.org/x/vuln/cmd/govulncheck ) diff --git a/go.sum b/go.sum index c5d8c14..4985d63 100644 --- a/go.sum +++ b/go.sum @@ -111,8 +111,6 @@ github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240514230400- github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240514230400-03fa26f5508f/go.mod h1:rAE739ssmE5O5fLuQ2y8uHdmOJaelE5I0Es3SxV0y1A= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bitfield/gotestdox v0.2.2 h1:x6RcPAbBbErKLnapz1QeAlf3ospg8efBsedU93CDsnE= -github.com/bitfield/gotestdox v0.2.2/go.mod h1:D+gwtS0urjBrzguAkTM2wodsTQYFHdpx8eqRJ3N+9pY= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0= @@ -160,8 +158,6 @@ github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk= -github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE= github.com/docker/cli v27.4.0+incompatible h1:/nJzWkcI1MDMN+U+px/YXnQWJqnu4J+QKGTfD6ptiTc= github.com/docker/cli v27.4.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= @@ -185,17 +181,12 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch/v5 v5.6.0 h1:b91NhWfaz02IuVxO9faSllyAtNXHMPkC5J8sJCLunww= github.com/evanphx/json-patch/v5 v5.6.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= -github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= -github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= @@ -400,7 +391,6 @@ github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUt github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= @@ -493,15 +483,12 @@ github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFS github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA= @@ -640,12 +627,7 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -657,12 +639,6 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM= golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -681,13 +657,7 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -699,9 +669,6 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -724,42 +691,23 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/telemetry v0.0.0-20241216164550-738f4b2315e6 h1:iJtgu8kBc7SZK47pN7p5SfEyjeQl98j0rh8EfdhR7gc= golang.org/x/telemetry v0.0.0-20241216164550-738f4b2315e6/go.mod h1:8h4Hgq+jcTvCDv2+i7NrfWwpYHcESleo2nGHxLbFLJ4= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4= @@ -774,11 +722,6 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= golang.org/x/tools v0.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY= golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY= golang.org/x/vuln v1.1.4 h1:Ju8QsuyhX3Hk8ma3CesTbO8vfJD9EvUBgHvkxHBzj0I= @@ -843,8 +786,6 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/gotestsum v1.12.0 h1:CmwtaGDkHxrZm4Ib0Vob89MTfpc3GrEFMJKovliPwGk= -gotest.tools/gotestsum v1.12.0/go.mod h1:fAvqkSptospfSbQw26CTYzNwnsE/ztqLeyhP0h67ARY= gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/internal/null_test.go b/internal/null_test.go deleted file mode 100644 index 595992d..0000000 --- a/internal/null_test.go +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) 2021 6 River Systems -// -// Permission is hereby granted, free of charge, to any person obtaining a copy of -// this software and associated documentation files (the "Software"), to deal in -// the Software without restriction, including without limitation the rights to -// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -// the Software, and to permit persons to whom the Software is furnished to do so, -// subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -//go:build xyzzy -// +build xyzzy - -// this file just exists so that our linting-related dependencies won't get -// tidied out of go.mod. Some of these things aren't actually importable -// packages, so we have to put a build tag on this so it's not compiled - -package internal - -import ( - _ "gotest.tools/gotestsum/cmd" - - _ "github.com/oapi-codegen/oapi-codegen/v2/pkg/codegen" - // needed for golangci-lint - _ "github.com/quasilyte/go-ruleguard/dsl" - - // prevents dependabot from moving this module dependency to indirect - _ "github.com/golang/protobuf/ptypes/empty" -) diff --git a/magefile.go b/magefile.go index 2b5d4ae..a3ea13d 100644 --- a/magefile.go +++ b/magefile.go @@ -290,9 +290,6 @@ func InstallCITools(ctx context.Context) error { if err := sh.Run("go", "install", "gotest.tools/gotestsum@latest"); err != nil { return err } - if err := sh.Run("go", "install", "github.com/golangci/golangci-lint/cmd/golangci-lint@latest"); err != nil { - return err - } return nil } diff --git a/oas/generate.go b/oas/generate.go index a57ac6d..76544bd 100644 --- a/oas/generate.go +++ b/oas/generate.go @@ -19,4 +19,4 @@ package oas -//go:generate go run github.com/oapi-codegen/oapi-codegen/v2/cmd/oapi-codegen -config oapi-codegen.yaml -package $GOPACKAGE openapi.yaml +//go:generate go tool oapi-codegen -config oapi-codegen.yaml -package $GOPACKAGE openapi.yaml From e285cc767b0c9b1dbe571ebd5b18ccbe32ea0f05 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:34:01 -0500 Subject: [PATCH 08/21] fix: move port defaults consistently to 8084 --- .circleci/config.yml | 2 +- cmd/mmmbbb/main.go | 3 --- defaults/defaults.go | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3568939..303658f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -107,7 +107,7 @@ jobs: - run: name: Validate service is working (mmmbbb) - command: go tool mage -v testSmoke mmmbbb localhost:3001 + command: go tool mage -v testSmoke mmmbbb localhost:8084 - run: name: Coverage HTML report diff --git a/cmd/mmmbbb/main.go b/cmd/mmmbbb/main.go index 98ee5d3..845813a 100644 --- a/cmd/mmmbbb/main.go +++ b/cmd/mmmbbb/main.go @@ -98,9 +98,6 @@ func main() { "_txlock=immediate", ) } - if os.Getenv("PORT") == "" { - os.Setenv("PORT", "8084") - } } if exitCode, err := NewApp().main(); err != nil { diff --git a/defaults/defaults.go b/defaults/defaults.go index 0b80539..f4f55cb 100644 --- a/defaults/defaults.go +++ b/defaults/defaults.go @@ -20,6 +20,6 @@ package defaults const ( - Port = 3001 + Port = 8084 GRPCOffset = 1 ) From a5aff3dc910b9305ccb75ed3b58c6d57e864e29f Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:34:33 -0500 Subject: [PATCH 09/21] fix: cleanups --- .circleci/config.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 303658f..9028181 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,9 +46,6 @@ jobs: - run: go mod download - run: go mod verify - # gotestsum is included in the cimg/go image - # - run: go tool mage -v installCITools - # however protobuf is not - run: go tool mage -v installProtobufTools - run: go tool mage -v generate:force # make sure committed generated code was up to date @@ -183,9 +180,6 @@ jobs: name: Capture chosen version path: .version - run: go tool mage -v get - # gotestsum is included in the cimg/go image - # - run: go tool mage -v installCITools - # however protobuf is not - run: go tool mage -v installProtobufTools - run: go tool mage -v generate:force - setup_remote_docker From f524daca516904c031df473e3d754dd100ff558c Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:35:53 -0500 Subject: [PATCH 10/21] fix: gotestsum comes from ci --- magefile.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/magefile.go b/magefile.go index a3ea13d..18e837a 100644 --- a/magefile.go +++ b/magefile.go @@ -592,7 +592,6 @@ func TestSmoke(ctx context.Context, cmd, hostPort string) error { // start the test run in the background eg.Go(func() error { args := []string{ - "run", "gotest.tools/gotestsum", "--format", "standard-verbose", "--junitfile", filepath.Join(resultsDir, "gotestsum-smoke-report-"+cmd+".xml"), "--", @@ -605,7 +604,7 @@ func TestSmoke(ctx context.Context, cmd, hostPort string) error { "./"+filepath.Join("cmd", cmd), ) // have to use normal exec so the context can terminate this - cmd := exec.CommandContext(ctx, "go", args...) + cmd := exec.CommandContext(ctx, "gotestsum", args...) cmd.Env = append([]string{}, os.Environ()...) cmd.Env = append(cmd.Env, "NODE_ENV=acceptance") cmd.Stdout = os.Stdout From 56faaac473395b6146ad62d7122d3fc112e3446c Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:44:12 -0500 Subject: [PATCH 11/21] fix: missed bits --- .circleci/config.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9028181..e6c2658 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -38,11 +38,6 @@ jobs: name: Restore module cache keys: - go-mod-v1-{{ checksum "go.sum" }} - # - restore_cache: - # name: Restore similar AIO build cache - # keys: - # - go-build-aio-v1-cgo<< parameters.cgo >>-{{ checksum "/tmp/cache-time-limit" }}-{{ .Revision }} - # - go-build-aio-v1-cgo<< parameters.cgo >>-{{ checksum "/tmp/cache-time-limit" }}- - run: go mod download - run: go mod verify @@ -125,11 +120,6 @@ jobs: key: go-mod-v1-{{ checksum "go.sum" }} paths: - "/home/circleci/go/pkg" - # - save_cache: - # name: Save AIO build cache - # key: go-build-aio-v1-cgo<< parameters.cgo >>-{{ checksum "/tmp/cache-time-limit" }}-{{ .Revision }} - # paths: - # - ~/.cache/go-build # post to slack if `main` fails to build - when: @@ -142,10 +132,11 @@ jobs: publish-docker-multiarch: docker: - - image: cimg/go:1.23 + - image: cimg/go:1.24 resource_class: large environment: GOPRIVATE: "go.6river.tech/*,github.com/6RiverSystems/*" + GOMAXPROCS: "4" steps: - checkout - run: From f8ef7e4cc35f336a39f5ec505c3453e69f70eef2 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:47:37 -0500 Subject: [PATCH 12/21] fix: more future proof --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e6c2658..eb91ff4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -56,7 +56,7 @@ jobs: - run: name: Ensure golangci-lint is up to date command: | - if ! golangci-lint version | fgrep -q 'built with go1.24.0' ; then + if golangci-lint version | fgrep -q 'built with go1.23' ; then cd $(mktemp -d) wget https://github.com/golangci/golangci-lint/releases/download/v1.64.5/golangci-lint-1.64.5-linux-amd64.tar.gz tar -axf golangci-lint-1.64.5-linux-amd64.tar.gz From 0e53b3fd8dd314d5bd409e2b5c14e54f71bb2378 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:49:29 -0500 Subject: [PATCH 13/21] fix: abandon build cache for multiarch too --- .circleci/config.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index eb91ff4..f3a7aca 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -146,11 +146,6 @@ jobs: name: Restore module cache keys: - go-mod-v1-{{ checksum "go.sum" }} - - restore_cache: - name: Restore similar multiarch build cache - keys: - - go-build-multiarch-v1-{{ checksum "/tmp/cache-time-limit" }}-{{ .Revision }} - - go-build-multiarch-v1-{{ checksum "/tmp/cache-time-limit" }}- # for Go modules, we only need version numbers on `main`, as Go can # pull any other git commit by hash. We do need a version tag for # docker for this package however, just don't need it to be a git @@ -204,11 +199,6 @@ jobs: fi export KO_DOCKER_REPO=us-docker.pkg.dev/plasma-column-128721/gcr.io/mmmbbb go tool ko build "${args[@]}" ./cmd/mmmbbb - - save_cache: - name: Save multiarch build cache - key: go-build-multiarch-v1-{{ checksum "/tmp/cache-time-limit" }}-{{ .Revision }} - paths: - - ~/.cache/go-build workflows: build-workflow: From 859e6d78836e27e513a893b9c8eef7fda7841d36 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:49:57 -0500 Subject: [PATCH 14/21] fix: missed a spot --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index f3a7aca..d9920b0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -165,7 +165,8 @@ jobs: - store_artifacts: name: Capture chosen version path: .version - - run: go tool mage -v get + - run: go mod download + - run: go mod verify - run: go tool mage -v installProtobufTools - run: go tool mage -v generate:force - setup_remote_docker From f58adf6d4600e12e5de0455d0f3cf2bc82efb54a Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 22:59:05 -0500 Subject: [PATCH 15/21] fix: typo --- cmd/mmmbbb/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/mmmbbb/main.go b/cmd/mmmbbb/main.go index 845813a..014c55b 100644 --- a/cmd/mmmbbb/main.go +++ b/cmd/mmmbbb/main.go @@ -83,7 +83,7 @@ func main() { // if running in a ko-built container, set some env defaults that we would // have otherwise embedded via the Dockerfile - if os.Getenv("KO_DATA_PATH") == "" { + if os.Getenv("KO_DATA_PATH") != "" { if os.Getenv("NODE_ENV") == "" { os.Setenv("NODE_ENV", "production") } From cac7c958594b4f5ed41e1dd946bd00350db9cbe5 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 23:07:11 -0500 Subject: [PATCH 16/21] fix: ensure no cgo --- .ko.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.ko.yaml b/.ko.yaml index f4faf78..a791b2d 100644 --- a/.ko.yaml +++ b/.ko.yaml @@ -22,6 +22,7 @@ builds: main: ./cmd/mmmbbb env: - "GOPRIVATE=go.6river.tech/*,github.com/6RiverSystems/*" + - CGO_ENABLED=0 ldflags: - "-s -w" - '-extldflags "-static"' From cbd1e07a651b38f923dcdfbb8896cce4c30f9986 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 23:12:09 -0500 Subject: [PATCH 17/21] fix: put transient sqlite in /tmp --- cmd/mmmbbb/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/mmmbbb/main.go b/cmd/mmmbbb/main.go index 014c55b..ac5ce90 100644 --- a/cmd/mmmbbb/main.go +++ b/cmd/mmmbbb/main.go @@ -90,7 +90,7 @@ func main() { if os.Getenv("DATABASE_URL") == "" { // default to an in-container SQLite database to simplify usage as a drop-in os.Setenv("DATABASE_URL", - "sqlite:///data/mmmbbb.sqlite?"+ + "sqlite:///tmp/mmmbbb.sqlite?"+ "_pragma=foreign_keys(1)&"+ "_pragma=journal_mode(wal)&"+ "_pragma=busy_timeout(10000)&"+ From 71e213f3ead74fdb3381a8323f95b0b103d2bfab Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 23:17:19 -0500 Subject: [PATCH 18/21] fix: cleanup README --- README.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index adee790..682b41c 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,14 @@ This will be run automatically by `6mon`. ### For others -You can build and run the `mmmbbb` app locally, or you can use our published -Docker image `6river/mmmbbb`. The latter is simpler. +You can build and run the `mmmbbb` app locally, or you can use the bundled +[ko](https://ko.build/) configuration to build a docker image. -The docker image defaults to using a SQLite back-end, which is stored in a -`/data` volume in the container. This is done to minimize the amount of setup -required, but it should be noted that the PostgreSQL backend has considerably -better performance. +The docker image defaults to using a SQLite back-end, which is stored +ephemerally in `/tmp` in the container. This is done to minimize the amount of +setup required, but it should be noted that the PostgreSQL backend has +considerably better performance in addition to allowing data to persist across +container instantiations. In its simplest form, you can use: @@ -28,9 +29,6 @@ In its simplest form, you can use: docker run --rm --publish 8084-8085:8084-8085/tcp 6river/mmmbbb ``` -If you want to keep the SQLite database across runs, add -`--volume /local/path:/data` to have the database kept in `/local/path/mmmbbb.sqlite`. - ### Initializing a PostgreSQL Database The application will create all the tables it needs automatically, as long as it @@ -80,13 +78,13 @@ environment variables). SQLite as a backend currently requires explicitly specifying several extra parameters in the `DATABASE_URL`. -CGo enabled (`mattn` driver): +CGo enabled (`mattn` driver, only enabled if building from source): ```text ?_fk=true&_journal_mode=wal&cache=private&_busy_timeout=10000&_txlock=immediate ``` -CGo disabled (`modernc` driver): +CGo disabled (`modernc` driver, this is what `ko`-built containers will use): ```text ?_pragma=foreign_keys(1)&_pragma=journal_mode(wal)&_pragma=busy_timeout(10000)&_txlock=immediate From 6fa5500b7ba1cc1fdbae82277ad5ec58b4263a45 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 23:22:10 -0500 Subject: [PATCH 19/21] fix: typo --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d9920b0..2d2ae8d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -193,8 +193,9 @@ jobs: - run: name: Publish docker images command: | + set -xeuo pipefail version=$(<.version) - args=(--tags "$version"") + args=(--tags "$version") if [ "$CIRCLE_BRANCH" = "main" ]; then args+=(--tags latest) fi From 6feb51bb614bd54286145c3015a69ba69629b7c4 Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 23:25:03 -0500 Subject: [PATCH 20/21] fix: trim image name properly --- .circleci/config.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2d2ae8d..4abe1a6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -195,12 +195,11 @@ jobs: command: | set -xeuo pipefail version=$(<.version) - args=(--tags "$version") + args=(--bare --tags "$version") if [ "$CIRCLE_BRANCH" = "main" ]; then args+=(--tags latest) fi - export KO_DOCKER_REPO=us-docker.pkg.dev/plasma-column-128721/gcr.io/mmmbbb - go tool ko build "${args[@]}" ./cmd/mmmbbb + KO_DOCKER_REPO=us-docker.pkg.dev/plasma-column-128721/gcr.io/mmmbbb go tool ko build "${args[@]}" ./cmd/mmmbbb workflows: build-workflow: From 183a0d58bdd190bd79922e1b7b5b07e23f99eb2d Mon Sep 17 00:00:00 2001 From: Matthew Gabeler-Lee Date: Fri, 14 Feb 2025 23:32:09 -0500 Subject: [PATCH 21/21] fix: cleanup so ko doesn't see dirty git state --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 4abe1a6..e51528e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -187,6 +187,7 @@ jobs: # the mage binary, copy it over, and exec it CGO_ENABLED=0 go tool mage -v -compile magebinary docker cp magebinary mmmbbb-smoke:/ + rm -f magebinary # this should ask the app to shut down at the end docker exec mmmbbb-smoke /magebinary -v testSmokeCore mmmbbb localhost:8084 wait $pid