Skip to content

v1.53.0

Choose a tag to compare

@erraggy erraggy released this 21 Mar 06:02
· 7 commits to main since this release
Immutable release. Only release title and notes can be modified.
1896c26

πŸ”§ Go 1.25 & Internal Consolidation

This release bumps the minimum Go version to 1.25 and consolidates internal utilities β€” reducing code duplication, surfacing previously silent depth-limit warnings, and centralizing file permission constants.

Go 1.25 Minimum

oastools now requires Go 1.25+. This unlocks several improvements:

  • synctest.Test (GA API): Migrated from the experimental synctest.Run to the stable synctest.Test(t, func(t *testing.T)) API, which ships without GOEXPERIMENT
  • Deprecated API cleanup: Replaced goparser.ParseDir (deprecated in 1.25) with os.ReadDir + goparser.ParseFile
  • SDK pinning: Updated from go1.24.13 to go1.25.8

Silent Depth-Limit Warnings Now Surfaced

Two internal depth-limit guards previously truncated data silently. They now emit warnings:

  • RefCollector.Warnings (fixer/refs.go): The ref collector populates a new Warnings []string field when recursive ref collection is truncated at depth limits β€” consumers can inspect this to detect incomplete ref graphs in deeply nested specs
  • JSONPath evaluator (internal/jsonpath): Recursive descent now logs slog.Warn when hitting the 500-level recursion cap, instead of silently returning partial results

Internal Utility Consolidation

  • internal/equalutil: Extracted a generic EqualPtr[T comparable] helper, replacing 5 type-specific pointer-equality functions that were duplicated across parser/ and joiner/
  • internal/fileutil: Centralized file permission constants (OwnerReadWrite 0o600, ReadableByAll 0o644), replacing hardcoded os.FileMode literals across 12 production files in 7 packages

πŸ”’ User Impact

  • Go version: Users on Go 1.24 or earlier must upgrade to Go 1.25+ to build
  • No breaking changes to the public Go API
  • No breaking changes to CLI behavior or MCP tools
  • RefCollector.Warnings is a new exported field (additive, non-breaking)

πŸ“Š Quality Metrics

  • βœ… All tests passing (8,501 unit tests across 27 packages)
  • βœ… Zero vulnerabilities (govulncheck clean)
  • βœ… All benchmarks passing with no regressions
  • βœ… Documentation verified accurate

What's Changed

  • refactor: consolidate equality helpers, fix silent limits, centralize file permissions by @erraggy in #348
  • chore: bump minimum Go from 1.24 to 1.25 by @erraggy in #354
  • chore: prepare v1.53.0 release by @erraggy in #356

Full Changelog: v1.52.2...v1.53.0