Skip to content

Conversation

@widmogrod
Copy link
Owner

@widmogrod widmogrod commented Oct 7, 2025

Summary by CodeRabbit

  • Documentation

    • Added setup steps: install moq (v0.6.0), update PATH to include GOPATH/bin, a step referencing .envrc, and a "Run tests" instruction (go test ./...).
  • Chores

    • CI workflows updated to actions/setup-go@v6 and Go 1.25.1; moq installation pinned to v0.6.0.
    • Example app and module dependencies upgraded (AWS SDK v2 modules and module Go directive updated to go1.25.1).

@coderabbitai
Copy link

coderabbitai bot commented Oct 7, 2025

Walkthrough

Bumps CI Go setup to actions/setup-go@v6 and Go to 1.25.1, pins moq install to v0.6.0, updates developer docs to install moq and adjust PATH, upgrades example/my-app dependencies and module Go version, and applies two small internal formatting tweaks.

Changes

Cohort / File(s) Summary of changes
CI workflows
.github/workflows/ci.yml, .../.github/workflows/docs.yml
Bump actions/setup-go from v5 → v6 and update Go version constraint to 1.25.1; pin moq install to github.com/matryer/moq@v0.6.0.
Developer docs
docs/development/development.md
Add moq installation (go install ...@v0.6.0), instruct adding GOPATH/bin to PATH, add step referencing .envrc, and add go test ./... run step.
Example app dependencies
example/my-app/go.mod
Update module Go directive to 1.25.1 and bump multiple AWS SDK v2/smithy-go related modules; remove an indirect fatih/structtag.
Go toolchain file
go.mod
Update module go directive from 1.23.0 → 1.25.1 and remove toolchain go1.24.3.
Generator formatting tweak
x/generators/shape_tagged.go
Remove redundant fmt.Sprintf wrapper when writing FieldLike strings (use fmt.Fprintf(result, "%s,\n", ...)).
Error formatting tweak
x/storage/predicate/where.go
Make error creation explicit by using fmt.Errorf("%s", message.String()) instead of fmt.Errorf(message.String()).

Sequence Diagram(s)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

I thumped a note on CI tonight, so light and fleet,
Pinned moq, nudged Go, and smoothed a tiny beat.
Docs now show the path, example deps in line,
I hop, I tweak, I cheer — builds hum, carrots shine. 🥕🐇

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly captures the pull request’s two primary objectives: updating project dependencies and enhancing development documentation. It directly corresponds to the CI workflow version bumps, module upgrades, and additions to the developer guide. It is concise, clear, and descriptive enough for teammates scanning the history to understand the main changes.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch deps-october-2025

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a1dfa4d and 13f9417.

⛔ Files ignored due to path filters (1)
  • example/my-app/go.sum is excluded by !**/*.sum
📒 Files selected for processing (7)
  • .github/workflows/ci.yml (2 hunks)
  • .github/workflows/docs.yml (1 hunks)
  • docs/development/development.md (1 hunks)
  • example/my-app/go.mod (2 hunks)
  • go.mod (1 hunks)
  • x/generators/shape_tagged.go (1 hunks)
  • x/storage/predicate/where.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • x/storage/predicate/where.go
  • go.mod
  • docs/development/development.md
🧰 Additional context used
📓 Path-based instructions (1)
**/*.go

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.go: Use //go:tag mkunion:"UnionName" to mark types for union generation in Go source files
For generic unions, use //go:tag mkunion:"UnionName[T, E]" with explicit type parameters, and ensure type parameter names match between tag and variant types
The type registry can be disabled with //go:tag mkunion:",no-type-registry" in Go source files
Use MatchUnionNameR1() for exhaustive pattern matching with one return value in Go code
State machines should use union types for states and commands, with explicit dependencies defined in Go code
Transition functions for state machines should accept context, dependencies, command, and state as parameters and return the new state and error
Create state machine instances with explicit dependencies and optional initial state using a constructor function in Go code

Files:

  • x/generators/shape_tagged.go
🧠 Learnings (1)
📚 Learning: 2025-07-28T17:26:16.526Z
Learnt from: CR
PR: widmogrod/mkunion#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-28T17:26:16.526Z
Learning: Always run `mkunion watch -g ./...` to generate new files including go:generate tag

Applied to files:

  • .github/workflows/docs.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Test implementation in Golang
🔇 Additional comments (5)
.github/workflows/ci.yml (2)

10-12: LGTM!

Bumping to actions/setup-go@v6 and Go 1.25.1 aligns with the PR objectives and ensures the CI uses the updated toolchain.


21-21: LGTM!

Pinning moq to v0.6.0 instead of @latest improves build reproducibility.

.github/workflows/docs.yml (1)

16-18: LGTM!

Bumping to actions/setup-go@v6 and Go 1.25.1 aligns with the PR objectives.

x/generators/shape_tagged.go (1)

341-341: LGTM!

Removing the redundant nested fmt.Sprintf call is correct. fmt.Fprintf already handles the formatting, making the inner fmt.Sprintf unnecessary.

example/my-app/go.mod (1)

17-26: LGTM!

AWS SDK dependency updates look routine and appropriate.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Oct 7, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 39.36%. Comparing base (ddab50a) to head (13f9417).
⚠️ Report is 23 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #243      +/-   ##
==========================================
+ Coverage   39.35%   39.36%   +0.01%     
==========================================
  Files         194      194              
  Lines       39669    39669              
==========================================
+ Hits        15612    15616       +4     
+ Misses      23304    23300       -4     
  Partials      753      753              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/docs.yml (1)

24-24: Pin moq version consistently
Use the same fixed version (v0.6.0) in all install commands to avoid upstream breakages:

  • .github/workflows/docs.yml: go install github.com/matryer/moq@v0.6.0
  • dev/bootstrap.sh: go install github.com/matryer/moq@v0.6.0
🧹 Nitpick comments (3)
.github/workflows/docs.yml (3)

21-22: Avoid mutating go.mod/go.sum in CI: replace/remove go get -d.

go get -d can change module files; prefer go mod download or rely on build.

-      - run: cd cmd/mkunion; go get -v -t -d ./...
       - run: cd cmd/mkunion; go build -o mkunion
@@
-      - run: go get -v -t -d ./...
+      - run: go mod download

Also applies to: 26-26


17-18: Enable module cache for faster runs.

actions/setup-go supports caching; enable it here.

       with:
-          go-version: ^1.25.1
+          go-version: ^1.25.1
+          cache: true

13-13: Optional: Pin GitHub Actions to commit SHAs.

Improves supply‑chain security; keep major tag as a comment for readability.

Example:

- uses: actions/checkout@v5
+ uses: actions/checkout@<commit-sha> # v5

Apply similarly to setup-go and setup-python.

Also applies to: 16-16, 38-38

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2905c90 and a1dfa4d.

⛔ Files ignored due to path filters (1)
  • example/my-app/go.sum is excluded by !**/*.sum
📒 Files selected for processing (6)
  • .github/workflows/ci.yml (2 hunks)
  • .github/workflows/docs.yml (1 hunks)
  • example/my-app/go.mod (2 hunks)
  • go.mod (1 hunks)
  • x/generators/shape_tagged.go (1 hunks)
  • x/storage/predicate/where.go (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • go.mod
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/ci.yml
🧰 Additional context used
📓 Path-based instructions (1)
**/*.go

📄 CodeRabbit inference engine (CLAUDE.md)

**/*.go: Use //go:tag mkunion:"UnionName" to mark types for union generation in Go source files
For generic unions, use //go:tag mkunion:"UnionName[T, E]" with explicit type parameters, and ensure type parameter names match between tag and variant types
The type registry can be disabled with //go:tag mkunion:",no-type-registry" in Go source files
Use MatchUnionNameR1() for exhaustive pattern matching with one return value in Go code
State machines should use union types for states and commands, with explicit dependencies defined in Go code
Transition functions for state machines should accept context, dependencies, command, and state as parameters and return the new state and error
Create state machine instances with explicit dependencies and optional initial state using a constructor function in Go code

Files:

  • x/generators/shape_tagged.go
  • x/storage/predicate/where.go
🧠 Learnings (1)
📚 Learning: 2025-07-28T17:26:16.526Z
Learnt from: CR
PR: widmogrod/mkunion#0
File: CLAUDE.md:0-0
Timestamp: 2025-07-28T17:26:16.526Z
Learning: Always run `mkunion watch -g ./...` to generate new files including go:generate tag

Applied to files:

  • .github/workflows/docs.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Test implementation in Golang
🔇 Additional comments (4)
x/storage/predicate/where.go (1)

78-78: LGTM! Good security practice.

Using an explicit format string "%s" prevents the dynamic error message from being interpreted as a format string. This guards against potential issues if parameter names or predicates inadvertently contain format verbs.

x/generators/shape_tagged.go (1)

341-341: LGTM! Nice cleanup.

Removing the unnecessary fmt.Sprintf wrapper makes the code more idiomatic and slightly more efficient by eliminating an intermediate string allocation.

.github/workflows/docs.yml (1)

16-19: Go/toolchain bump LGTM.

actions/setup-go@v6 with go-version ^1.25.1 is good.

example/my-app/go.mod (1)

17-17: Run go mod tidy and re-run tests. All aws-sdk-go-v2 entries in go.mod are indirect and no direct imports were found.

…sions

- Bumped versions for multiple `github.com/aws/aws-sdk-go-v2` modules, including `v1.39.2`, `service/dynamodb v1.50.5`, `service/sqs v1.42.8`, and others for compatibility and improvements.
…encies

- Upgraded several `github.com/aws/aws-sdk-go-v2` modules, including `v1.39.2`, `service/dynamodb v1.50.5`, `service/sqs v1.42.8`, and others for improvements and compatibility.
- Removed unused `fatih/structtag` dependency.
@widmogrod widmogrod merged commit 75a892e into main Oct 7, 2025
4 checks passed
@widmogrod widmogrod deleted the deps-october-2025 branch October 7, 2025 13:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants