chore: git cache cleanup

This commit is contained in:
GitHub Actions
2026-03-04 18:34:39 +00:00
parent 7a8b0343e4
commit c32cce2a88
2001 changed files with 0 additions and 683185 deletions

View File

@@ -1,438 +0,0 @@
# Staticcheck Pre-Commit Integration - Manual Testing Checklist
**Purpose:** Find potential bugs and edge cases in the staticcheck blocking implementation
**Date Created:** 2026-01-11
**Target:** Pre-commit hook blocking behavior and developer workflow
---
## Testing Overview
This checklist focuses on **adversarial testing** - finding ways the implementation might fail or cause developer friction.
---
## 1. Commit Blocking Scenarios
### 1.1 Basic Blocking Behavior
- [ ] **Test:** Create a `.go` file with an unused variable, attempt commit
- **Expected:** Commit blocked, clear error message
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Create a `.go` file with unchecked error return, attempt commit
- **Expected:** Commit blocked with errcheck error
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Create a `.go` file with shadowed variable, attempt commit
- **Expected:** Commit blocked with govet/shadow error
- **Actual:** _____________________
- **Issues:** _____________________
### 1.2 Edge Case Files
- [ ] **Test:** Commit a `_test.go` file with lint issues
- **Expected:** Commit succeeds (test files excluded)
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Commit Go file in subdirectory (e.g., `backend/internal/api/`)
- **Expected:** Commit blocked if issues present
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Commit Go file in nested package (e.g., `backend/internal/api/handlers/proxy/`)
- **Expected:** Recursive linting works correctly
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Commit `.go` file outside backend directory (edge case)
- **Expected:** Hook runs correctly or gracefully handles
- **Actual:** _____________________
- **Issues:** _____________________
### 1.3 Multiple Files
- [ ] **Test:** Stage multiple `.go` files, some with issues, some clean
- **Expected:** Commit blocked if any file has issues
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Stage mix of `.go`, `.js`, `.md` files with only Go issues
- **Expected:** Commit blocked due to Go issues
- **Actual:** _____________________
- **Issues:** _____________________
---
## 2. Lint Error Types
### 2.1 Staticcheck Errors
- [ ] **Test:** SA1019 (deprecated API usage)
- **Example:** `filepath.HasPrefix()`
- **Expected:** Blocked with clear message
- **Actual:** _____________________
- [ ] **Test:** SA4006 (value never used)
- **Example:** `x := 1; x = 2`
- **Expected:** Blocked with clear message
- **Actual:** _____________________
- [ ] **Test:** SA1029 (string key for context.WithValue)
- **Example:** `ctx = context.WithValue(ctx, "key", "value")`
- **Expected:** Blocked with clear message
- **Actual:** _____________________
### 2.2 Other Fast Linters
- [ ] **Test:** Unchecked error (errcheck)
- **Example:** `file.Close()` without error check
- **Expected:** Blocked
- **Actual:** _____________________
- [ ] **Test:** Ineffectual assignment (ineffassign)
- **Example:** Assign value that's never read
- **Expected:** Blocked
- **Actual:** _____________________
- [ ] **Test:** Unused function/variable (unused)
- **Example:** Private function never called
- **Expected:** Blocked
- **Actual:** _____________________
- [ ] **Test:** Shadow variable (govet)
- **Example:** `:=` in inner scope shadowing outer variable
- **Expected:** Blocked
- **Actual:** _____________________
---
## 3. Emergency Bypass Scenarios
### 3.1 --no-verify Flag
- [ ] **Test:** `git commit --no-verify -m "Emergency hotfix"` with lint issues
- **Expected:** Commit succeeds, bypasses hook
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** `git commit --no-verify` without `-m` (opens editor)
- **Expected:** Commit succeeds after saving message
- **Actual:** _____________________
- **Issues:** _____________________
### 3.2 SKIP Environment Variable
- [ ] **Test:** `SKIP=golangci-lint-fast git commit -m "Test"` with issues
- **Expected:** Commit succeeds, skips specific hook
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** `SKIP=all git commit -m "Test"` (skip all hooks)
- **Expected:** All hooks skipped, commit succeeds
- **Actual:** _____________________
- **Issues:** _____________________
---
## 4. Performance Testing
### 4.1 Small Codebase
- [ ] **Test:** Commit single Go file (~100 lines)
- **Expected:** < 5 seconds
- **Actual:** _____ seconds
- **Issues:** _____________________
### 4.2 Large Commits
- [ ] **Test:** Commit 5+ Go files simultaneously
- **Expected:** < 15 seconds (scales linearly)
- **Actual:** _____ seconds
- **Issues:** _____________________
- [ ] **Test:** Commit with changes to 20+ Go files
- **Expected:** < 20 seconds (acceptable threshold)
- **Actual:** _____ seconds
- **Issues:** _____________________
### 4.3 Edge Case Performance
- [ ] **Test:** Commit Go file while golangci-lint is already running
- **Expected:** Graceful handling or reasonable wait
- **Actual:** _____________________
- **Issues:** _____________________
---
## 5. Error Handling & Messages
### 5.1 Missing golangci-lint
- [ ] **Test:** Temporarily rename golangci-lint binary, attempt commit
- **Expected:** Clear error message with installation instructions
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Remove `$GOPATH/bin` from PATH, attempt commit
- **Expected:** Clear error about missing tool
- **Actual:** _____________________
- **Issues:** _____________________
### 5.2 Configuration Issues
- [ ] **Test:** Corrupt `.golangci-fast.yml` (invalid YAML), attempt commit
- **Expected:** Clear error about config file
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Delete `.golangci-fast.yml`, attempt commit
- **Expected:** Falls back to default config or clear error
- **Actual:** _____________________
- **Issues:** _____________________
### 5.3 Syntax Errors
- [ ] **Test:** Commit `.go` file with syntax error (won't compile)
- **Expected:** Blocked with compilation error
- **Actual:** _____________________
- **Issues:** _____________________
---
## 6. Developer Workflow Integration
### 6.1 First-Time Setup
- [ ] **Test:** Fresh clone, `pre-commit install`, attempt commit with issues
- **Expected:** Hook runs correctly on first commit
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Developer without golangci-lint installed
- **Expected:** Clear pre-flight error with install link
- **Actual:** _____________________
- **Issues:** _____________________
### 6.2 Manual Testing Tools
- [ ] **Test:** `make lint-fast` command
- **Expected:** Runs and reports same issues as pre-commit
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** `make lint-staticcheck-only` command
- **Expected:** Runs only staticcheck, reports subset of issues
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** VS Code task "Lint: Staticcheck (Fast)"
- **Expected:** Runs in VS Code terminal, displays issues
- **Actual:** _____________________
- **Issues:** _____________________
### 6.3 Iterative Development
- [ ] **Test:** Fix lint issue, save, immediately commit again
- **Expected:** Second commit faster due to caching
- **Actual:** _____ seconds (first), _____ seconds (second)
- **Issues:** _____________________
- [ ] **Test:** Partial fix (fix some issues, leave others), attempt commit
- **Expected:** Still blocked with remaining issues
- **Actual:** _____________________
- **Issues:** _____________________
---
## 7. Multi-Developer Scenarios
### 7.1 Git Operations
- [ ] **Test:** Pull changes with new lint issues, attempt commit unrelated file
- **Expected:** Pre-commit only checks staged files
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Rebase interactive with lint issues in commits
- **Expected:** Each commit checked during rebase
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Cherry-pick commit with lint issues
- **Expected:** Cherry-pick completes, hook runs on final commit
- **Actual:** _____________________
- **Issues:** _____________________
### 7.2 Branch Workflows
- [ ] **Test:** Switch branches, attempt commit with different lint issues
- **Expected:** Hook checks current branch's code
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Merge branch with lint issues, resolve conflicts, commit
- **Expected:** Hook runs on merge commit
- **Actual:** _____________________
- **Issues:** _____________________
---
## 8. False Positive Handling
### 8.1 Legitimate Patterns
- [ ] **Test:** Use `//lint:ignore` comment for legitimate pattern
- **Expected:** Staticcheck respects ignore comment
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Code that staticcheck flags but is correct
- **Expected:** Developer can use ignore directive
- **Actual:** _____________________
- **Issues:** _____________________
### 8.2 Generated Code
- [ ] **Test:** Commit generated Go code (e.g., protobuf)
- **Expected:** Excluded via `.golangci-fast.yml` or passes
- **Actual:** _____________________
- **Issues:** _____________________
---
## 9. Integration with Other Tools
### 9.1 Other Pre-Commit Hooks
- [ ] **Test:** Ensure trailing-whitespace hook still works
- **Expected:** Both hooks run, both can block independently
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Ensure end-of-file-fixer hook still works
- **Expected:** Hooks run in order, all function
- **Actual:** _____________________
- **Issues:** _____________________
### 9.2 VS Code Integration
- [ ] **Test:** VS Code Problems tab updates after running lint
- **Expected:** Problems tab shows same issues as pre-commit
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** VS Code auto-format on save with lint issues
- **Expected:** Format succeeds, lint still blocks commit
- **Actual:** _____________________
- **Issues:** _____________________
---
## 10. Documentation Accuracy
### 10.1 README.md
- [ ] **Test:** Follow installation instructions exactly as written
- **Expected:** golangci-lint installs correctly
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Verify troubleshooting section accuracy
- **Expected:** Solutions work as documented
- **Actual:** _____________________
- **Issues:** _____________________
### 10.2 copilot-instructions.md
- [ ] **Test:** Follow "Troubleshooting Pre-Commit Staticcheck Failures" guide
- **Expected:** Each troubleshooting step resolves stated issue
- **Actual:** _____________________
- **Issues:** _____________________
---
## 11. Regression Testing
### 11.1 Existing Functionality
- [ ] **Test:** Commit non-Go files (JS, MD, etc.)
- **Expected:** No impact from Go linter hook
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Backend build still succeeds
- **Expected:** `go build ./...` exits 0
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Backend tests still pass
- **Expected:** All tests pass with coverage > 85%
- **Actual:** _____________________
- **Issues:** _____________________
---
## 12. CI/CD Alignment
### 12.1 Local vs CI Consistency
- [ ] **Test:** Code that passes local pre-commit
- **Expected:** Should pass CI golangci-lint (if continue-on-error removed)
- **Actual:** _____________________
- **Issues:** _____________________
- [ ] **Test:** Code that fails local pre-commit
- **Expected:** CI may still pass (continue-on-error: true)
- **Actual:** _____________________
- **Issues:** _____________________
---
## Summary Template
### Bugs Found
1. **Bug:** [Description]
- **Severity:** [HIGH/MEDIUM/LOW]
- **Impact:** [Developer workflow/correctness/performance]
- **Reproduction:** [Steps]
### Friction Points
1. **Issue:** [Description]
- **Impact:** [How it affects developers]
- **Suggested Fix:** [Improvement idea]
### Documentation Gaps
1. **Gap:** [What's missing or unclear]
- **Location:** [Which file/section]
- **Suggested Addition:** [Content needed]
### Performance Issues
1. **Issue:** [Description]
- **Measured:** [Actual timing]
- **Expected:** [Target timing]
- **Threshold Exceeded:** [YES/NO]
---
## Testing Execution Log
**Tester:** _____________________
**Date:** 2026-01-__
**Environment:** [OS, Go version, golangci-lint version]
**Duration:** _____ hours
**Overall Assessment:** [PASS/FAIL with blockers/FAIL with minor issues]
**Recommendation:** [Approve/Request changes/Block merge]
---
**End of Manual Testing Checklist**