Releases: ramonsmits/CronTimer
Releases · ramonsmits/CronTimer
2.1.0
Bug fixes for timezone handling and restart behavior, plus new TimeProvider support for testability on net8.0+.
Improvements
- Add
TimeProvidersupport onnet8.0+— pass an optionalTimeProviderto the constructor for deterministic testing withFakeTimeProvider(e841bb3) - Add
net8.0target framework to the NuGet package (e841bb3) - Include README in NuGet package via
PackageReadmeFile(5127b39)
Bug fixes
- Fix timezone conversion using configured timezone instead of system timezone —
ToUniversalTime()incorrectly used the host timezone, causing wrong firing times when the host timezone differs from the configured one (522efd4) - Fix Start/Stop/Start skipping an interval — restarting the timer now recalculates the next occurrence from the current time (84f169f)
Package dependencies
Internal
- Add SourceLink for debugger source mapping (579e119)
- Condition
ContinuousIntegrationBuildon CI only (579e119) - Remove broken
PackageProjectUrland redundantIncludeSource(579e119) - Migrate to
.slnxsolution format (98a64d7) - Use MinVer for version derivation from git tags (ef739e7)
- Add justfile with build, test, and pack recipes (7ed9536)
- Add GitHub Actions CI workflow with Ubuntu and Windows jobs (7ed9536, 6e72f0e)
- Add NUnit test project with TimeProvider-based testing (df7ca81)
- Bump Microsoft.Extensions.TimeProvider.Testing from 9.0.0 to 10.3.0
- Bump Microsoft.NET.Test.Sdk from 17.12.0 to 18.0.1
- Bump Microsoft.SourceLink.GitHub from 8.0.0 to 10.0.103
- Bump MinVer from 6.0.0 to 7.0.0
- Bump NUnit from 4.3.2 to 4.4.0
- Bump NUnit3TestAdapter from 4.6.0 to 6.1.0
2.0.0
Bugfixes
- 🐛 If the timer was fired to early it could happen that the subscriber was called multiple times for the same timestamp as calculating the next timestamp was using the current system clock value as the base value instead of the previous calculated value.
Breaking changes
- 💥 Dropping support for net35 target as TimeZoneConverter no longer supports net35
Enhancements
- ✨ Added demo project
- ✨ Added
Atto event args for subscribers to retrieve for which timestamp the subscriber was invoked.
External dependencies
- 📦 TimeZoneConverter 6.0.1
Refactorings
- 🔨 Prepare release 2.0.0
- 🔨 Reformat project file
- 🔨 No longer pinning external dependencies to a range. The next major might still be compatible but would require a new version of CronTimer to use it.
Full Changelog: 1.0.1...2.0.0
1.0.1
Resolved issue with restarting/reusing timer and fixed NullReferenceException when invoking Stop if Start wasn't invoked yet.
1.0.0
Import