Skip to content

feat!: Require Go 1.25+ (upgrade from Go 1.12) #90

@CybotTM

Description

@CybotTM

Summary

The minimum required Go version has been upgraded from Go 1.12 to Go 1.25, enabling modern language features and better performance.

Why Go 1.25?

Language Features Used

  • Generic min/max builtins (Go 1.21+): Cleaner code for comparisons
  • slices package (Go 1.21+): slices.SortFunc, slices.DeleteFunc for cleaner collection operations
  • slog package (Go 1.21+): Structured logging adapter
  • sync/atomic types (Go 1.19+): Type-safe atomic operations

Benefits

  1. Performance: Modern Go runtime optimizations
  2. Security: Latest security patches and hardening
  3. Maintainability: Cleaner code using modern idioms
  4. Tooling: Better IDE support and linting

Migration

Check Your Go Version

go version
# Must show go1.25 or higher

Update Your Project

# Update go.mod
go mod edit -go=1.25

# Update dependencies
go mod tidy

CI/CD Updates

Update your CI configuration to use Go 1.25+:

# GitHub Actions
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-go@v5
        with:
          go-version: '1.25'

Version History

Release Minimum Go
robfig/cron v3 Go 1.12
netresearch/go-cron v0.5.0 Go 1.25

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    breaking-changeBreaking API changes for v2modernizationGo modernization opportunities

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions