Releases: junebash/swift-fun
Releases · junebash/swift-fun
Release list
v0.3.4
Bug Fixes
- StdPlus: Fixed
Duration.timeIntervalprecision — split computation via.componentsso integer-second inputs like.seconds(30)round-trip exactly throughDoubleinstead of losing precision throughInt128→Doubleconversion
v0.3.3
v0.3.2
v0.3.1
v0.3.0
Box Module
Renamed Types:
Box→Shared
New Types:
OwnedPointer: Unique ownership semantics with proper documentation
Fixes:
Sharednow correctly conforms toSendablefor~Copyabletypes
AsyncPlus Additions
resume()convenience method forVoidcontinuations onSaferContinuation
Tooling & Infrastructure
Release Automation:
- New release script (
./scripts/release.sh) with Claude Code integration for changelog enhancement - git-cliff configuration for conventional commit parsing
Documentation:
- Commit convention guidelines in
.github/COMMIT_CONVENTION.md - Git workflow and release instructions in CLAUDE.md
- Full release documentation in RELEASING.md
v0.2.0 - more fun!
New Modules
- Box: Reference wrappers for values, including thread-safe
MutexBoxusing Swift 6'sSynchronization.Mutex - AsyncPlus: Concurrency utilities including
SaferContinuationfor leak-safe continuations andScaledClockfor time-scaled testing
StdPlus Additions
New Functions:
- Free functions:
with(),configure(),catchAndReturn()(with async variants)
New Sequence Extensions:
onlyproperty for extracting a single element from a sequence
Optional Enhancements:
- Made
UnwrapErrorgeneric for better type precision - Added
takeOrThrow()(mutating) to consume optional values - Added async
map()andflatMap()for async transformations
Numeric Extensions:
clamped()to constrain values to a rangenonZero()to filter out zero valuespositive()to filter for positive values only
StatefulAsyncSequence:
- Added
Sendableinitializer variant for sendable state
Full Changelog: v0.1.0...v0.2.0
v0.1.0 - init
Full Changelog: https://github.com/junebash/swift-fun/commits/v0.1.0