You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`govet`| Go's standard static analyzer (composites, unusedresult, etc.) |
29
+
|`ineffassign`| Catches ineffectual assignments |
30
+
|`staticcheck`| Detects bugs, performance issues, and style violations |
31
+
|`unused`| Finds unused constants, variables, functions, and types |
32
+
|`errorlint`| Enforces `%w` wrapping and `errors.Is` / `errors.As`|
33
+
|`misspell`| Catches common misspellings (US English) |
34
+
|`gofmt`| Standard Go formatting |
35
+
|`goimports`| Import ordering and grouping |
36
+
37
+
Run locally:
38
+
39
+
```bash
40
+
# Run all linters
41
+
golangci-lint run
42
+
43
+
# Auto-fix where possible (errorlint, gofmt, goimports, misspell)
44
+
golangci-lint run --fix
45
+
```
46
+
47
+
The `lint` CI check must pass before a PR can merge. If you need to disable a rule for a specific line, use `//nolint:<linter> // reason` and include a reason — unjustified nolint directives will be flagged in review.
48
+
49
+
A small number of deprecation warnings (`SA1019`), stylistic checks (`ST1003` naming, `ST1001` dot imports), and known-refactor items are disabled in config and tracked as follow-up work — not as accepted debt. See [`.golangci.yml`](.golangci.yml) for the current exclusion list.
50
+
20
51
## Commit Messages
21
52
22
53
This project uses [Conventional Commits](https://www.conventionalcommits.org/). All commit messages must follow this format:
@@ -95,6 +126,7 @@ Every pull request runs the following checks:
|**tests**| Runs `go test ./...` across Go 1.24.x on ubuntu, macos, and windows. Only triggered when `.go`, `go.mod`, `go.sum`, or the workflow file itself changes. |
129
+
|**lint**| Runs `golangci-lint` on ubuntu-latest with the config at `.golangci.yml`. See [Linting](#linting) above. |
98
130
|**semver-check**| Runs `gorelease` to compare the public API against the latest release tag. Fails if breaking changes are detected without a major version bump. |
99
131
|**commit-lint**| Validates that all commits in the PR follow Conventional Commits format. |
[](https://github.com/gagliardetto/solana-go/releases)
0 commit comments