Add CI workflows, linting configuration, and code quality improvements - #64
Add CI workflows, linting configuration, and code quality improvements#64corylanou wants to merge 4 commits into
Conversation
- Added GitHub Actions workflows for testing and linting - Added revive linting configuration - Fixed all linter warnings across the codebase - Enhanced README with checksum design documentation - Added comprehensive test for page index checksum validation - Updated .gitignore with Go binary exclusions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This test was already merged in PR #61 and should not be included in this CI/linting PR.
- Replace deprecated math/rand.Read with crypto/rand.Read - Rename min/max variables to minTXID/maxTXID to avoid shadowing built-ins 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Clarify flag field references new flags section - Add details about when WAL fields are zero - Improve salt field descriptions for journal/compacted cases - Clarify node ID field behavior when unset - Add Header flags section documenting LZ4 compression flag 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Assessed this while clearing the backlog. The tooling in here is worth having, but the PR as a whole has gone stale enough that rebasing it is probably the wrong move. Every core file it touches was rewritten last week.
This branch dates from Aug 2025 and its code changes predate all of that, plus the LZ4 block-format switch in #73. GitHub already reports it CONFLICTING/DIRTY. Reconciling 18 files of year-old changes against work that just landed is a lot of risk for changes whose value has largely been overtaken. The CI and lint config is the part still worth taking, and it's cleanly separable — Suggested split: open a fresh PR carrying just the workflow files and Two things to fix in the config before it lands. The Go matrix here is The |
Summary
This PR adds comprehensive CI/CD infrastructure, linting configuration, and various code quality improvements to the LTX project.
Changes Made
CI/CD Infrastructure
test-and-lint.yml: Runs tests across Go 1.22, 1.23, 1.24, executes linters (go fmt, go vet, staticcheck, revive), and builds the projectrace-detection.yml: Prepared for future race condition testing (currently disabled).revive.toml: Comprehensive linting configuration with appropriate rules for the projectCode Quality Improvements
SQLITE_DATABASE_HEADER_STRING→sqliteDatabaseHeaderString)math/rand.Readwithcrypto/rand.Readin testsDocumentation Updates
Build Configuration
.gitignore: Added Go binary exclusions (cmd/ltx/ltx,ltx)File Changes Summary
.revive.tomlconfiguration (56 lines)Test Plan
🤖 Generated with Claude Code