Skip to content

Releases: ramonsmits/CronTimer

2.1.0

15 Feb 16:13

Choose a tag to compare

Bug fixes for timezone handling and restart behavior, plus new TimeProvider support for testability on net8.0+.

Improvements

  • Add TimeProvider support on net8.0+ — pass an optional TimeProvider to the constructor for deterministic testing with FakeTimeProvider (e841bb3)
  • Add net8.0 target 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

  • Bump ncrontab from 3.3.1 to 3.4.0 (#2)
  • Bump TimeZoneConverter from 6.0.1 to 7.2.0 (#1)

Internal

  • Add SourceLink for debugger source mapping (579e119)
  • Condition ContinuousIntegrationBuild on CI only (579e119)
  • Remove broken PackageProjectUrl and redundant IncludeSource (579e119)
  • Migrate to .slnx solution 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

29 Dec 22:08

Choose a tag to compare

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 At to 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

16 Mar 12:51

Choose a tag to compare

Resolved issue with restarting/reusing timer and fixed NullReferenceException when invoking Stop if Start wasn't invoked yet.

1.0.0

03 Dec 09:11

Choose a tag to compare

Import