krontab/CHANGELOG.md

9.0 KiB

Changelog

2.2.1

  • Potential fix of #65
  • Versions
    • Kotlin: 1.9.20-Beta
    • Klock: 4.0.10
    • Serialization: 1.6.0

2.2.0

  • Versions
    • Kotlin: 1.9.0
    • Coroutines: 1.7.3
    • Klock: 4.0.9

2.1.2

  • Versions
    • Coroutines: 1.7.2
  • All callbacks for standard extensions like doInfinity now fully inline

2.1.1

  • asFlowWithoutDelays and asTzFlowWithoutDelays will have nullable since parameters with default to null to avoid any inconsistency of Flow idiom.
    About the reason of changes Cold flows should not contain some state by default. So, it was not right to save some `DateTime`/`DateTimeTz` by default. Now it will not use some external state unless developers will set it manually

2.1.0

  • Versions
    • Kotlin: 1.8.22
    • Klock: 4.0.3
  • New value class KrontabConfig. It is preferable way to create KronScheduler instead of KrontabTemplate since this update
  • You may configure krontab with builders using simple KronScheduler invoke extension
  • New useful extensions like KronScheduler.daily
  • KrontabTemplateWrapper is obsolete in favor to KrontabConfig

2.0.0

  • Versions
    • Kotlin: 1.8.21
    • Klock: 4.0.1
  • Support of mingwx64 platform

1.0.0

  • Versions
    • Kotlin: 1.8.20
    • AndroidXWork: 2.8.1

0.10.0

  • New extensions for KronScheduler:
    • asTzFlowWithoutDelays/asFlowWithoutDelays
    • asTzFlowWithDelays/asFlowWithDelays
  • Old KronScheduler.asFlow and KronScheduler.asTzFlow temporarily marked as deprecated: after several versions their behaviour will be changed to undelayed one
  • All the flow extensions now use cold non-channel flows. Potentially it should increase performance and decrease memory usage

0.9.0

  • Versions
    • Kotlin: 1.8.10
    • AndroidXWork: 2.8.0

0.8.5

0.8.4

  • Versions
    • Kotlin: 1.7.22

0.8.3

  • Versions
    • Kotlin: 1.7.21
    • Klock: 3.4.0

0.8.2

THIS VERSION HAS CHANGED COMPILE ANDROID SDK FROM 32 -> 33

  • Versions
    • Kotlin: 1.7.20
    • Klock: 3.2.0

0.8.1

  • Versions
    • Klock: 3.1.0

0.8.0

THIS VERSION HAS CHANGED MIN ANDROID SDK FROM 19 -> 21

  • Versions
    • Kotlin: 1.7.10
    • Klock: 3.0.0

0.7.5

  • Versions
    • Coroutines: 1.6.4

0.7.4

  • Versions
    • Coroutines: 1.6.3

0.7.3

  • Versions
    • Kotlin: 1.6.21
  • Several bug fixes (#27, #34)
  • New factories for KronScheduler and KronSchedulerTz (fix of #35)
  • Fill extensions for flow with time zones (fix of #33)

0.7.2

  • Versions
    • Coroutines: 1.6.1
    • Klock: 2.7.0
  • Deprecate do*Local due to their redundancy (use do* instead)
  • Add support of milliseconds as optional parameter after month (fix of #31)
  • Add support of filters for Flows with DateTime (fix of #30)

0.7.1

  • Versions
    • Klock: 2.5.2

0.7.0

ALL DEPRECATIONS HAVE BEEN REMOVED

  • Versions
    • Kotlin: 1.6.10
    • Klock: 2.4.10
    • Coroutines: 1.6.0
    • Androidx Work: 2.7.1

0.6.6

  • Versions
    • Klock: 2.4.8
    • Androidx Work: 2.7.0

0.6.5

  • Flows now use doWhile functions
  • doWhile now use additional delay (for 1 ms) for cases when block executing too fast
  • New extensions for KronScheduler: do(Once/While/Infinity)Local/do(Once/While/Infinity)Tz

0.6.4

  • Versions
    • Kotlin: 1.5.31
    • Coroutines: 1.5.2
    • Klock: 2.4.2
    • Androidx Work: 2.6.0

0.6.3

  • Versions
    • Kotlin: 1.5.30
    • Klock: 2.4.0

0.6.2

LEGACY COMPILER VARIANT FOR JS IS NOT AVAILABLE SINCE THIS UPDATE

  • Versions
    • Kotlin: 1.5.21
    • Coroutines: 1.5.1
    • Klock: 2.3.1

0.6.1

  • Versions
    • Klock: 2.1.0 -> 2.1.2
  • Rewriting of default mechanism of KronSchedulers

0.6.0

  • Versions
    • Kotlin: 1.4.32 -> 1.5.10
    • Coroutines: 1.4.3 -> 1.5.0
    • Klock: 2.0.7 -> 2.1.0

0.5.2

  • Versions
    • Kotlin: 1.4.31 -> 1.4.32
  • Supporting of weekdays
  • Supporting of timezones
    • Any KronScheduler now can be used for calling next with DateTimeTz
    • New type KronSchedulerTz
  • SchedulerFlow has been deprecated
  • New extension asTzFlow and small changes in asFlow logic
  • merge extensions now return CollectionKronScheduler instead of just KronScheduler

0.5.1

  • Versions
    • Kotlin: 1.4.21 -> 1.4.31
    • Coroutines: 1.4.2 -> 1.4.3
    • Klock: 2.0.3 -> 2.0.7
    • Androidx Work: 2.4.0 -> 2.5.0

0.5.0 Years

BREAKING CHANGES

  • CronDateTimeScheduler has been marked as internal and no longer accessible outside of internal functions
    • Old methods merge and plus related to CronDateTimeScheduler has been marked as deprecated and changed their parameters types - it is KronScheduler now
  • New methods merge has been added
  • KronScheduler#next method now is nullable. Use nextOrRelative/nextOrNow to get next time certainly
  • Years was added as optional part of krontab template and opportunity in SchedulerBuilder
    • New builder YearsBuilder
    • SchedulerFlow#collectSafely will be normally (without exceptions) finish when next of scheduler will return null
  • KronScheduler#doOnce will run code immediately in case when next is returning null value
  • KrontabTemplateWrapper has been added
  • New extension KrontabTemplate#toKronScheduler (works as toSchedule)
  • Fixed issue related to the fact that toNearDateTime of CronDateTime incorrectly handled months
  • Android target has been added

0.4.2

  • Versions
    • Kotlin: 1.4.20 -> 1.4.21
    • Klock: 2.0.1 -> 2.0.3
  • CronDateTimeScheduler now is deprecated and will be set up as internal in future

0.4.1

  • Versions:
    • Coroutines: 1.4.1 -> 1.4.2
    • Klock: 2.0.0 -> 2.0.1
  • CronDateTimeScheduler now is public
  • New functions for CronDateTimeScheduler
  • Add CollectionKronScheduler. It will give opportunity to unite several schedulers in one

0.4.0

BREAKING CHANGES Package of project has been changed. Migration:

  • Replace in your dependencies com.insanusmokrassar:krontab by dev.inmo:krontab

  • Replace in your project all imports com.insanusmokrassar.krontab by dev.inmo.krontab

  • Versions:

    • Kotlin: 1.4.10 -> 1.4.20
    • Klock: 1.12.1 -> 2.0.0

0.3.3

  • Versions:
    • Coroutines: 1.3.9 -> 1.4.1

0.3.2

  • Function TimeBuilder#each was added (works as at)
  • Add opportunity to use first shortcuts:
    • Value property TimeBuilder#first for including via functions like TimeBuilder#at
    • Shortcut for kron string format f or F
  • Add opportunity to use last shortcuts:
    • Value property TimeBuilder#last for including via functions like TimeBuilder#at
    • Shortcut for kron string format l or L

0.3.1

  • Versions:
    • Kotlin: 1.4.0 -> 1.4.10
    • Klock: 1.12.0 -> 1.12.1

0.3.0

  • Versions:
    • Kotlin: 1.3.72 -> 1.4.0
    • Coroutines: 1.3.8 -> 1.3.9
    • Klock: 1.11.14 -> 1.12.0
  • Typealias KrontabTemplate was added
  • Extension KrontabTemplate#toSchedule was added

0.2.4

  • Updates in libraries:
    • Klock 1.11.3 -> 1.11.14
    • Coroutines 1.3.7 -> 1.3.8
  • Ranges support were included. Now it is possible to correctly use syntax 0-5 in strings schedules

0.2.3

  • Updates in libraries:
    • Kotlin 1.3.70 -> 1.3.72
    • Coroutines 1.3.5 -> 1.3.7
    • Klock 1.10.0 -> 1.11.3
  • A lot of KDocs added and fixed
  • EverySecondScheduler changed its building logic - now it is lazy with builder using
  • KronScheduler#doOnce was optimized: now it will be explicitly called once and return result of its calculations
    • KronScheduler#doWhile was rewritten to use KronScheduler#doOnce for calculations of block result
  • New buildSchedule(String) function as a shortcut for createSimpleScheduler(String)

0.2.2

  • Updates in libraries:
    • Kotlin 1.3.61 -> 1.3.70
    • Coroutines 1.3.3 -> 1.3.5
    • Klock 1.8.6 -> 1.10.0

0.2.1

  • Added support of flows: now any KronScheduler can be convert to Flow<DateTime> using asFlow extension

0.2.0

  • Updated way of publishing (for more info look at the git)
  • Updates in libraries:
    • Coroutines 1.3.2 -> 1.3.3
    • Klock 1.7.3 -> 1.8.6