Files
goplt/docs/content/adr/0034-go-version-upgrade.md
0x1d b4b918cba8
All checks were successful
CI / Test (pull_request) Successful in 27s
CI / Lint (pull_request) Successful in 20s
CI / Build (pull_request) Successful in 16s
CI / Format Check (pull_request) Successful in 2s
docs: ensure newline before lists across docs for MkDocs rendering
2025-11-06 10:56:50 +01:00

58 lines
2.1 KiB
Markdown

# ADR-0034: Go Version Upgrade to 1.25.3
## Status
Accepted
## Context
ADR-0002 established Go 1.24.3 as the minimum required version. Since then:
- Go 1.25.3 has been released with new features, performance improvements, and security fixes
- The project requires access to newer language features and tooling improvements
- Dependencies may benefit from Go 1.25.3 optimizations
- The development team has Go 1.25.3 available and working
## Decision
Upgrade from **Go 1.24.3** to **Go 1.25.3** as the minimum required version for the platform.
This decision supersedes [ADR-0002: Go Version](./0002-go-version.md).
**Rationale:**
- Access to latest Go features and performance improvements
- Better security with latest patches
- Improved tooling support and compiler optimizations
- Ensures compatibility with latest ecosystem dependencies
- Supports all planned features (modules, plugins, generics) with enhanced capabilities
## Consequences
### Positive
- Access to latest Go features and performance improvements
- Better security with latest patches
- Modern tooling support with improved compiler optimizations
- Better compatibility with latest dependency versions
- Enhanced performance characteristics
### Negative
- Requires developers to upgrade to Go 1.25.3+
- CI/CD must be updated to use Go 1.25.3
- May require dependency updates for compatibility
- Slightly higher barrier for developers still on older versions
### Mitigations
1. **Clear Documentation**: Update all documentation to specify Go 1.25.3 requirement
2. **CI/CD Updates**: Ensure CI/CD pipelines use Go 1.25.3
3. **Version Check**: Add version validation in build scripts if needed
4. **Developer Communication**: Notify team of version requirement
## Implementation Notes
- Update `go.mod`: `go 1.25.3`
- Update `.github/workflows/ci.yml` to use `actions/setup-go@v5` with version `1.25.3`
- Update ADR-0002 to mark as Superseded
- Update README.md and other documentation to reflect Go 1.25.3 requirement
- Run `go mod tidy` to ensure dependency compatibility
## References
- [ADR-0002: Go Version](./0002-go-version.md) - Superseded by this ADR
- [Go 1.25 Release Notes](https://go.dev/doc/go1.25)