Releases: DeRuina/timberjack
Releases · DeRuina/timberjack
v1.3.9
v1.3.8
1.3.8 (2025-10-15)
Fixes & Improvements
-
(4c2c743)
-
Eliminated multiple data races in concurrent rotations and mill goroutines.
Internal logic now snapshots configuration and system functions once for each logger instance to ensure safe concurrent use. -
Added deterministic shutdown for background goroutines (
millandscheduled rotation) viaWaitGroupsynchronization, preventing premature exits or leaks. -
Strengthened
Close()to wait safely for goroutine completion without holding locks. -
Improved test suite:
- Fake clock (
fakeCurrentTime) is now lock-protected to avoid race conditions. - Tests force UTC for consistent local-time behavior.
- CI now runs with
go test -raceto verify concurrency safety.
- Fake clock (
Internal Changes
- Introduced
resolveConfigLocked()for snapshotting logger configuration (time, compression, stat/rename/remove functions) at initialization. - Simplified mill and rotation goroutine lifecycle management.
- Minor refactoring for clarity and reduced global variable reads.
v1.3.7
1.3.7 (2025-09-19)
Features
Chnaged
Deprecated
Compress(bool) is deprecated in favor ofCompression("none" | "gzip" | "zstd").
IfCompressionis set, it wins; if it’s empty andCompressistrue, gzip is used.
Compresswill be removed in v2.
v1.3.6
v1.3.5
v1.3.4
v1.3.3
[1.3.3] - 2025-07-24
Fixed
Prevent panic on write after close and improve shutdown robustness (#25) (332b9c2)
Added
- Generic
safeClose[T]helper to close channels safely without panic - Unit test:
TestWriteToClosedLoggerto verify behavior
Changed
- Minimum Go version requirement bumped to
go 1.18to support generics