From 1c5c91bbeb48e1dc098238590ce6d902f7007606 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Sat, 25 Jul 2026 14:11:11 +0000 Subject: [PATCH 1/6] fix golangci-lint issue --- .github/workflows/tour_of_beam_backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tour_of_beam_backend.yml b/.github/workflows/tour_of_beam_backend.yml index f93edc0fd625..a7158d5ffa32 100644 --- a/.github/workflows/tour_of_beam_backend.yml +++ b/.github/workflows/tour_of_beam_backend.yml @@ -65,6 +65,6 @@ jobs: - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: - version: v1.49.0 + version: v2.12.2 working-directory: learning/tour-of-beam/backend From 33cc9c4f68ac89f07f7e413bdb422093b64a53be Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Sat, 25 Jul 2026 14:17:07 +0000 Subject: [PATCH 2/6] fix golang action version --- .github/workflows/tour_of_beam_backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tour_of_beam_backend.yml b/.github/workflows/tour_of_beam_backend.yml index a7158d5ffa32..6420b5f0ea44 100644 --- a/.github/workflows/tour_of_beam_backend.yml +++ b/.github/workflows/tour_of_beam_backend.yml @@ -63,7 +63,7 @@ jobs: run: go test -v ./... - name: golangci-lint - uses: golangci/golangci-lint-action@v3 + uses: golangci/golangci-lint-action@v6 with: version: v2.12.2 working-directory: learning/tour-of-beam/backend From fc53d21af4f9869b86bdbb584f51d9b01a09b13a Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Sat, 25 Jul 2026 14:22:55 +0000 Subject: [PATCH 3/6] one more version change --- .github/workflows/tour_of_beam_backend.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tour_of_beam_backend.yml b/.github/workflows/tour_of_beam_backend.yml index 6420b5f0ea44..1c7c3c079d53 100644 --- a/.github/workflows/tour_of_beam_backend.yml +++ b/.github/workflows/tour_of_beam_backend.yml @@ -63,7 +63,7 @@ jobs: run: go test -v ./... - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v9 with: version: v2.12.2 working-directory: learning/tour-of-beam/backend From 4332ecb17f32d9e0b9cf65f8f3e4d76796b3b869 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Sat, 25 Jul 2026 14:32:31 +0000 Subject: [PATCH 4/6] fix golint formatting issues --- learning/tour-of-beam/backend/function.go | 6 +++--- .../tour-of-beam/backend/integration_tests/client.go | 8 ++++++-- .../backend/internal/storage/datastore.go | 11 ++++++----- .../tour-of-beam/backend/internal/storage/mock.go | 8 ++++---- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/learning/tour-of-beam/backend/function.go b/learning/tour-of-beam/backend/function.go index 90ed8642580f..eaa1dcad076a 100644 --- a/learning/tour-of-beam/backend/function.go +++ b/learning/tour-of-beam/backend/function.go @@ -213,7 +213,7 @@ func postUnitComplete(w http.ResponseWriter, r *http.Request) { return } - fmt.Fprint(w, "{}") + _, _ = fmt.Fprint(w, "{}") } // Save user code for unit @@ -245,7 +245,7 @@ func postUserCode(w http.ResponseWriter, r *http.Request) { return } - fmt.Fprint(w, "{}") + _, _ = fmt.Fprint(w, "{}") } // Delete user progress @@ -259,5 +259,5 @@ func postDeleteProgress(w http.ResponseWriter, r *http.Request) { return } - fmt.Fprint(w, "{}") + _, _ = fmt.Fprint(w, "{}") } diff --git a/learning/tour-of-beam/backend/integration_tests/client.go b/learning/tour-of-beam/backend/integration_tests/client.go index 956c67dde5d6..9b169f08536c 100644 --- a/learning/tour-of-beam/backend/integration_tests/client.go +++ b/learning/tour-of-beam/backend/integration_tests/client.go @@ -165,7 +165,9 @@ func Do(dst interface{}, method, url string, queryParams, headers map[string]str if err != nil { return err } - defer resp.Body.Close() + defer func() { + _ = resp.Body.Close() + }() if err := verifyServerHeaders(resp.Header); err != nil { return err @@ -180,7 +182,9 @@ func Do(dst interface{}, method, url string, queryParams, headers map[string]str } tee := io.TeeReader(resp.Body, os.Stdout) - defer os.Stdout.WriteString("\n") + defer func() { + _, _ = os.Stdout.WriteString("\n") + }() if err := json.NewDecoder(tee).Decode(dst); err != nil { return fmt.Errorf("response decode err: %w", err) } diff --git a/learning/tour-of-beam/backend/internal/storage/datastore.go b/learning/tour-of-beam/backend/internal/storage/datastore.go index 4c95384a9a0b..cdf633211610 100644 --- a/learning/tour-of-beam/backend/internal/storage/datastore.go +++ b/learning/tour-of-beam/backend/internal/storage/datastore.go @@ -159,7 +159,7 @@ func (d *DatastoreDb) saveContentTree(tx *datastore.Transaction, tree *tob.Conte // could have used numericID keys, if there was no transaction: // incomplete keys are resolved after Tx commit, and // we need to reference them in child nodes - var groupId int = 0 + groupId := 0 genGroupKey := func(parentKey *datastore.Key) *datastore.Key { groupId++ return datastoreKey(TbLearningNodeKind, @@ -181,13 +181,14 @@ func (d *DatastoreDb) saveContentTree(tx *datastore.Transaction, tree *tob.Conte } saveNode = func(node tob.Node, order, level int, parentKey *datastore.Key) error { - if node.Type == tob.NODE_UNIT { + switch node.Type { + case tob.NODE_UNIT: return saveUnit(node.Unit, order, level, parentKey) - } else if node.Type == tob.NODE_GROUP { + case tob.NODE_GROUP: return saveGroup(node.Group, order, level, parentKey) + default: + return fmt.Errorf("unknown datastore node type: %v", node.Type) } - - return fmt.Errorf("unknown datastore node type: %v", node.Type) } rootKey := pgNameKey(TbLearningPathKind, tree.Sdk.StorageID(), nil) diff --git a/learning/tour-of-beam/backend/internal/storage/mock.go b/learning/tour-of-beam/backend/internal/storage/mock.go index 2a39c774bd2b..3a28ef979c1c 100644 --- a/learning/tour-of-beam/backend/internal/storage/mock.go +++ b/learning/tour-of-beam/backend/internal/storage/mock.go @@ -19,7 +19,7 @@ import ( "context" "encoding/json" "errors" - "io/ioutil" + "os" "path" "runtime" "strings" @@ -42,7 +42,7 @@ func (d *Mock) GetContentTree(_ context.Context, sdk tob.Sdk) (ct tob.ContentTre if sdk == tob.SDK_SCIO { return ct, errors.New("empty sdk tree") } - content, _ := ioutil.ReadFile(path.Join(getSamplesPath(), "get_content_tree.json")) + content, _ := os.ReadFile(path.Join(getSamplesPath(), "get_content_tree.json")) _ = json.Unmarshal(content, &ct) return ct, nil } @@ -55,7 +55,7 @@ func (d *Mock) GetUnitContent(_ context.Context, sdk tob.Sdk, unitId string) (u if strings.HasPrefix(unitId, "unknown_") { return u, tob.ErrNoUnit } - content, _ := ioutil.ReadFile(path.Join(getSamplesPath(), "get_unit_content.json")) + content, _ := os.ReadFile(path.Join(getSamplesPath(), "get_unit_content.json")) err = json.Unmarshal(content, &u) return u, err } @@ -74,7 +74,7 @@ func (d *Mock) SaveUser(ctx context.Context, uid string) error { } func (d *Mock) GetUserProgress(_ context.Context, sdk tob.Sdk, userId string) (sp *tob.SdkProgress, err error) { - content, _ := ioutil.ReadFile(path.Join(getSamplesPath(), "get_user_progress.json")) + content, _ := os.ReadFile(path.Join(getSamplesPath(), "get_user_progress.json")) _ = json.Unmarshal(content, &sp) return sp, nil } From f235bd0bfe6c3865a38174604929fa0d4cbe577f Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Sat, 25 Jul 2026 14:35:47 +0000 Subject: [PATCH 5/6] more lint issues - getting closer --- .../tour-of-beam/backend/internal/fs_content/yaml.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/learning/tour-of-beam/backend/internal/fs_content/yaml.go b/learning/tour-of-beam/backend/internal/fs_content/yaml.go index 0546637a0d55..c0b5f2421ee9 100644 --- a/learning/tour-of-beam/backend/internal/fs_content/yaml.go +++ b/learning/tour-of-beam/backend/internal/fs_content/yaml.go @@ -16,7 +16,7 @@ package fs_content import ( - "io/ioutil" + "os" "log" "gopkg.in/yaml.v3" @@ -25,7 +25,7 @@ import ( // Could have done it in generics if 1.18 was supported in GCF // Fatals on error. func loadLearningPathInfo(path string) (info learningPathInfo) { - buf, err := ioutil.ReadFile(path) + buf, err := os.ReadFile(path) if err != nil { log.Fatal(err) } @@ -39,7 +39,7 @@ func loadLearningPathInfo(path string) (info learningPathInfo) { } func loadLearningModuleInfo(path string) (info learningModuleInfo) { - buf, err := ioutil.ReadFile(path) + buf, err := os.ReadFile(path) if err != nil { log.Fatal(err) } @@ -53,7 +53,7 @@ func loadLearningModuleInfo(path string) (info learningModuleInfo) { } func loadLearningGroupInfo(path string) (info learningGroupInfo) { - buf, err := ioutil.ReadFile(path) + buf, err := os.ReadFile(path) if err != nil { log.Fatal(err) } @@ -67,7 +67,7 @@ func loadLearningGroupInfo(path string) (info learningGroupInfo) { } func loadLearningUnitInfo(path string) (info learningUnitInfo) { - buf, err := ioutil.ReadFile(path) + buf, err := os.ReadFile(path) if err != nil { log.Fatal(err) } From a51ee0cb57e72f5d8a7d5b1f0033faef5acad086 Mon Sep 17 00:00:00 2001 From: Derrick Williams Date: Sat, 25 Jul 2026 14:38:29 +0000 Subject: [PATCH 6/6] fix fmt issue --- learning/tour-of-beam/backend/internal/fs_content/yaml.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/learning/tour-of-beam/backend/internal/fs_content/yaml.go b/learning/tour-of-beam/backend/internal/fs_content/yaml.go index c0b5f2421ee9..ebb8d97e11f0 100644 --- a/learning/tour-of-beam/backend/internal/fs_content/yaml.go +++ b/learning/tour-of-beam/backend/internal/fs_content/yaml.go @@ -16,8 +16,8 @@ package fs_content import ( - "os" "log" + "os" "gopkg.in/yaml.v3" )