Skip to content
Language

Go Releases

Track every Go release from latest stable to end-of-life. Version timelines, EOL dates, security patches, and upgrade guidance for Go developers.

Total Versions

Supported

Latest

Version Timeline

All tracked releases with lifecycle status and EOL dates.

Loading version data…

Lifecycle Timeline

Visual overview of active support and maintenance windows.

1.21
1.22
1.23
1.24
1.25
1.26
2023 2024 2025 2026 2027 2028
Active
Maint
Active
Maint
Active
Maint
Active
Maint
Active
Maint
Active
Maint
Active / LTS
Maintenance
Today

Upgrade Paths

Migration guidance between major versions — breaking changes, effort estimates, and tips.

1.22 1.23 Low Difficulty
Est. 1-2 hours

Breaking Changes

  • Timer/Ticker changes: Stop prevents future Resets from firing
  • Channels from time.NewTimer/NewTicker are now unbuffered
  • Range-over-func iterators added (new language feature)

Migration Notes

The timer/ticker behavior change is the most impactful. If your code relies on buffered timer channels or calls Reset() after Stop(), test carefully. Range-over-func is purely additive. Update go.mod toolchain directive.

1.23 1.24 Low Difficulty
Est. 30 min - 1 hour

Breaking Changes

  • crypto/x509: stricter SHA-1 certificate verification
  • Go telemetry introduced (opt-out via gotelemetry off)
  • os.Root type added for safe file system operations

Migration Notes

Very smooth upgrade. SHA-1 cert verification is stricter but only affects legacy certificates. Telemetry is transparent and opt-out if desired. New generic map/slice helpers in stdlib are additive.

1.24 1.25 Low Difficulty
Est. 30 min - 1 hour

Breaking Changes

  • crypto/tls: TLS 1.0/1.1 client support removed by default
  • Swiss table-based map implementation (transparent, faster)
  • sync.Map Range callback now passes pointers

Migration Notes

TLS 1.0/1.1 removal could affect connections to very old servers. Set GODEBUG=tlsmin=0x0301 as a temporary workaround. The new map implementation is a transparent performance win with no API changes.

1.25 1.26 Low Difficulty
Est. 30 minutes

Breaking Changes

  • testing/synctest package for concurrent test synchronization
  • os.Root expanded with Mkdir, Remove, Stat, Lstat methods
  • New strings/bytes iterator functions

Migration Notes

Very clean upgrade. Go 1.26 is mostly additive. The backward compatibility promise means your existing code compiles and runs without changes. Focus testing on any crypto or network-sensitive code paths.

Version Risk Assessment

Evaluate risk factors before choosing a version for production.

Version EOL Risk CVE Risk Ecosystem Cloud Support Overall Recommended Action
Go 1.23 Critical High EOL Dropping Critical EOL Aug 2025. No security patches. Upgrade immediately.
Go 1.24 High Medium Maintenance Supported High EOL Feb 2026. Approaching end of support. Plan upgrade.
Go 1.25 Low Low Active Full Low Supported. Receiving security patches. Production-ready.
Go 1.26 None Low Active Full Low Latest release (Feb 2026). Recommended for new projects.

Go supports only the two most recent major versions with security patches. Older versions receive nothing. The strong backward compatibility promise (since Go 1.0) means upgrading rarely breaks code, but staying on unsupported versions exposes you to unpatched CVEs in the standard library and runtime.

Go Version Feature Comparison

Side-by-side feature differences across major versions.

Feature 1.22 1.23 1.24 1.25 1.26
Range over integers New Stable Stable Stable Stable
Range over func (iterators) Experimental New Stable Stable Stable
Enhanced HTTP routing New Stable Stable Stable Stable
Go telemetry No No New (opt-out) Stable Stable
os.Root (safe file ops) No No New Expanded Full
Swiss table maps No No No New Stable
TLS 1.0/1.1 client Supported Supported Supported Removed Removed
testing/synctest No No No No New
Backward compat promise Full Full Full Full Full
Performance vs 1.22 Baseline +2-5% +3-7% +5-10% (maps) + 7-12%

Embed Badges

Add live Go status badges to your README, docs, or dashboard.

Health Status

Overall support health

Go Health Status
![Go Health Status](https://img.releaserun.com/badge/health/go.svg)

EOL Countdown

Next end-of-life date

Go EOL Countdown
![Go EOL Countdown](https://img.releaserun.com/badge/eol/go.svg)

Latest Version

Current stable release

Go Latest Version
![Go Latest Version](https://img.releaserun.com/badge/v/go.svg)

CVE Status

Known vulnerabilities

Go CVE Status
![Go CVE Status](https://img.releaserun.com/badge/cve/go.svg)

Frequently Asked Questions

Common questions about Go releases and lifecycle.

How long are Go versions supported?
Each major Go release is supported until two newer major releases ship, roughly 12 months. Only the two most recent versions receive security patches.
Is Go backward compatible?
Yes, Go follows a strong backward compatibility promise since Go 1.0 (2012). Code written for Go 1.x should compile and run on all future Go 1.x releases. The go.mod toolchain directive lets you pin behavior to a specific version.
How often does Go release new versions?
Go ships a new major version roughly every six months (February and August), with patch releases for security fixes in between.
Should I upgrade to the latest Go version?
Yes, older Go versions stop receiving security patches once two newer versions exist. The backward compatibility promise makes upgrades low-risk. Always run a supported version in production.
What changed with Go generics?
Go 1.18 (March 2022) introduced type parameters (generics). This was the biggest language change since Go 1.0. Subsequent versions (1.21+) expanded generic support with new standard library functions in slices and maps packages.
How does Go handle module compatibility?
Go modules use semantic versioning. The go.mod file specifies minimum dependency versions and the Go toolchain version. GOFLAGS and GODEBUG settings provide escape hatches for behavioral changes between versions.

Related Tools

Browse All Version History