Repository navigation
goio v0.5.0-beta.1
Pre-release
Pre-release
Release Notes
v0.5.0-beta.1 (2026-09-17)
Compatibility
- Raises the minimum supported Go version from Go 1.26 to Go 1.27.
- Keeps v0.4.x available as the final Go 1.26-compatible release line.
Generic methods
- Adds
Map,FlatMap, andFoldmethods toio.IO. - Adds
Map,FlatMap, andThroughmethods tostream.Stream. - Adds
Map,FlatMap, andUsemethods toresource.Resource. - Adds
Map,FlatMap, andMatchmethods tooption.Option. - Adds
Foldtoeither.Either. - Retains all existing package-level combinators as supported APIs.
The methods are thin delegates to the existing combinators and preserve their laziness, error handling, stream state, and resource-release behavior.
This prerelease is intended to gather experience with the method names and chaining style before the stable v0.5.0 API is finalized.
v0.4.0 (2026-09-17)
Compatibility
- The minimum supported Go version is raised from Go 1.18 to Go 1.26.
- Maintained releases now support the two most recent stable Go release families, currently Go 1.26 and Go 1.27.
- This is a compatibility-breaking change and is therefore assigned to the v0.4.0 release line.
- Users that cannot upgrade their Go toolchain can remain on v0.3.7, which retains the Go 1.18 module floor.
- v0.4.x is the final release line supporting Go 1.26. Development after v0.4.0 targets Go 1.27 so that goio can adopt generic methods.
See MIGRATION.md for downstream upgrade instructions.
Validation policy
- Ordinary tests run on Go 1.26 and Go 1.27 across Linux, Windows, and macOS.
- Race-detector validation runs on Go 1.27 Linux.
- The repository coverage badge is generated by one deterministic Go 1.26 Linux job.
- Codecov coverage runs on Go 1.27 Linux.
Runtime stabilization
- Prevents
Asynccallback delivery from deadlocking when completion races with registration. - Makes fiber result publication and closure safe under concurrent completion, joining, and shutdown.
- Ensures nested resources are released in reverse acquisition order, including failed inner acquisition, while preserving the primary error when cleanup also fails.
- Recovers panics that cross documented
IOexecution boundaries and clarifies where direct invocation remains an ordinary Go call. - Adds bounded tests for timeout, race-selection, continuation-depth, fiber-close, panic, and resource-cleanup behavior.
API additions
- Adds
fun.ConstNoArgandfun.Delay. - Adds
slice.BuildIndex,slice.Distinct,slice.Intersperse, andslice.ToSlice. - Adds
stream.EvalEmpty,stream.Fib, andstream.StepResultMatch. - Renames
option.Foldtooption.Match.
Compatibility boundary
The Go version increase and the option.Fold rename require downstream attention. This release does not claim cancellation or structured-concurrency support, and it does not change the documented non-cancelling nature of timeout and first-result race operations.
Dependency upgrades and source modernization enabled by the newer floor are intentionally deferred to focused follow-up changes.