2020-01-08 08:28:57 +00:00
# Changelog
2024-11-03 06:23:23 +00:00
## 2.5.1
2024-11-03 06:56:10 +00:00
* Add cleaning up of incoming template, which must remove all malformed parts from string template (fix of [#126 ](https://github.com/InsanusMokrassar/krontab/issues/126 ))
* Add support of insufficient amount of arguments (fix of [#126 ](https://github.com/InsanusMokrassar/krontab/issues/126 ))
2024-11-03 06:27:43 +00:00
* `Version` :
* `Kotlin` : `2.0.21`
2024-11-03 06:56:10 +00:00
* `AndroidXWork` : `2.10.0`
2024-11-03 06:27:43 +00:00
2024-09-20 09:47:56 +00:00
## 2.5.0
2024-09-20 10:22:49 +00:00
* `Version` :
* `Kotlin` : `2.0.20`
2024-11-03 06:56:10 +00:00
* `Coroutines` : `1.9.0`
* `Serialization` : `1.7.3`
2024-09-20 10:22:49 +00:00
2024-08-12 17:09:38 +00:00
## 2.4.0
2024-08-12 17:21:57 +00:00
* `Version` :
* `Kotlin` : `2.0.10`
* `Coroutines` : `1.8.1`
* `Serialization` : `1.7.1`
* `Klock` : `5.4.0`
* `AndroidXWork` : `2.9.1`
2024-03-21 11:14:59 +00:00
## 2.3.0
2024-03-21 11:34:22 +00:00
* `doWhile` now will guarantee that it will not call `doOnce` more than once for time
2024-03-06 13:36:42 +00:00
## 2.2.9
2024-03-06 14:01:41 +00:00
* `Version` :
2024-03-16 04:31:12 +00:00
* `Kotlin` : `1.9.23`
2024-03-06 14:01:41 +00:00
* `Serialization` : `1.6.3`
* `Klock` : `5.3.2`
2024-03-16 09:56:45 +00:00
* Fixes in build-in schedulers
2024-03-06 14:01:41 +00:00
2024-02-18 15:56:06 +00:00
## 2.2.8
2024-02-18 16:14:01 +00:00
* `Version` :
* `Coroutines` : `1.8.0`
2024-01-31 11:26:48 +00:00
## 2.2.7
2024-01-31 11:40:15 +00:00
* `Version` :
* `Klock` : `5.3.1`
* `AndroidXWork` : `2.9.0`
2024-01-12 08:33:22 +00:00
## 2.2.6
2024-01-12 08:45:14 +00:00
**Since this version klock depdendency replaced with `com.soywiz.korge:korlibs-time` **
* `Version` :
* `Klock` : `5.3.0`
2023-12-26 19:14:50 +00:00
## 2.2.5
2023-12-27 13:15:35 +00:00
* `Versions`
2023-12-28 09:47:27 +00:00
* `Kotlin` : `1.9.22`
2023-12-27 13:15:35 +00:00
* `Serialization` : `1.6.2`
2023-11-26 15:20:39 +00:00
## 2.2.4
* `Versions`
* `Kotlin` : `1.9.21`
* `Serialization` : `1.6.1`
2023-11-02 17:19:24 +00:00
## 2.2.3
2023-11-02 17:27:53 +00:00
**THIS UPDATE CONTAINS UPGRADE OF USED JDK UP TO 17**
2023-11-02 17:22:19 +00:00
* Versions
* `Kotlin` : `1.9.20`
2023-10-22 10:19:20 +00:00
## 2.2.2
2023-10-22 10:20:59 +00:00
* Versions
* `Kotlin` : `1.9.20-RC`
* `Android` (min/target): `34`
2023-09-18 08:12:49 +00:00
## 2.2.1
2023-09-18 08:15:20 +00:00
* Potential fix of [#65 ](https://github.com/InsanusMokrassar/krontab/issues/65 )
2023-09-18 08:20:21 +00:00
* Versions
* `Kotlin` : `1.9.20-Beta`
* `Klock` : `4.0.10`
2023-09-18 08:24:59 +00:00
* `Serialization` : `1.6.0`
2023-09-18 08:15:20 +00:00
2023-08-09 06:24:41 +00:00
## 2.2.0
2023-08-09 06:35:13 +00:00
* Versions
* `Kotlin` : `1.9.0`
* `Coroutines` : `1.7.3`
* `Klock` : `4.0.9`
2023-07-02 10:05:46 +00:00
## 2.1.2
2023-07-02 10:06:47 +00:00
* Versions
* `Coroutines` : `1.7.2`
2023-07-02 10:41:52 +00:00
* All callbacks for standard extensions like `doInfinity` now fully inline
2023-07-02 10:06:47 +00:00
2023-06-20 05:26:57 +00:00
## 2.1.1
2023-06-20 05:35:57 +00:00
* `asFlowWithoutDelays` and `asTzFlowWithoutDelays` will have nullable `since` parameters with default to `null`
to avoid any inconsistency of `Flow` idiom.
< details >
< summary > About the reason of changes< / summary >
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
< / details >
2023-06-20 04:13:03 +00:00
## 2.1.0
2023-06-20 03:43:04 +00:00
2023-06-20 03:45:07 +00:00
* Versions
* `Kotlin` : `1.8.22`
* `Klock` : `4.0.3`
2023-06-20 04:41:46 +00:00
* New value class `KrontabConfig` . It is preferable way to create `KronScheduler` instead of
`KrontabTemplate` since this update
2023-06-20 04:12:32 +00:00
* You may configure krontab with builders using simple `KronScheduler` invoke extension
2023-06-20 04:25:15 +00:00
* New useful extensions like `KronScheduler.daily`
* `KrontabTemplateWrapper` is obsolete in favor to `KrontabConfig`
2023-06-20 03:45:07 +00:00
2023-05-25 14:50:48 +00:00
## 2.0.0
2023-05-25 14:38:51 +00:00
2023-05-25 14:53:58 +00:00
* Versions
* `Kotlin` : `1.8.21`
* `Klock` : `4.0.1`
* Support of `mingwx64` platform
2023-04-24 18:10:11 +00:00
## 1.0.0
2023-04-24 18:15:13 +00:00
* Versions
* `Kotlin` : `1.8.20`
* `AndroidXWork` : `2.8.1`
2023-03-18 06:23:53 +00:00
## 0.10.0
2023-03-18 06:24:25 +00:00
* 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
2023-02-28 06:23:12 +00:00
## 0.9.0
2023-02-28 06:24:30 +00:00
* Versions
* `Kotlin` : `1.8.10`
* `AndroidXWork` : `2.8.0`
2022-12-14 16:30:34 +00:00
## 0.8.5
2022-12-15 02:37:54 +00:00
* Project is now available in owner `Gitea` : https://git.inmo.dev/InsanusMokrassar/-/packages/maven/dev.inmo-krontab
* `KronSchedulerTz#next` with incoming `DateTime` now will use adjusted local time instead of unadjusted one
* `CronDateTimeSchedulerTz#next` with incoming `DateTime` will convert that parameter to internal offset directly
2022-12-05 09:26:31 +00:00
## 0.8.4
2022-12-05 09:27:41 +00:00
* Versions
* `Kotlin` : `1.7.22`
2022-11-14 04:11:46 +00:00
## 0.8.3
* Versions
* `Kotlin` : `1.7.21`
* `Klock` : `3.4.0`
2022-10-02 16:26:24 +00:00
## 0.8.2
**THIS VERSION HAS CHANGED COMPILE ANDROID SDK FROM 32 -> 33**
* Versions
* `Kotlin` : `1.7.20`
* `Klock` : `3.2.0`
2022-09-11 08:18:46 +00:00
## 0.8.1
* Versions
* `Klock` : `3.1.0`
2022-08-06 03:54:31 +00:00
## 0.8.0
**THIS VERSION HAS CHANGED MIN ANDROID SDK FROM 19 -> 21**
* Versions
* `Kotlin` : `1.7.10`
* `Klock` : `3.0.0`
2022-07-22 10:59:07 +00:00
## 0.7.5
2022-07-22 11:00:41 +00:00
* Versions
* `Coroutines` : `1.6.4`
2022-07-02 06:20:04 +00:00
## 0.7.4
* Versions
* `Coroutines` : `1.6.3`
2022-06-15 07:46:37 +00:00
## 0.7.3
* Versions
* `Kotlin` : `1.6.21`
* Several bug fixes ([#27](https://github.com/InsanusMokrassar/krontab/issues/27), [#34 ](https://github.com/InsanusMokrassar/krontab/issues/34 ))
* New factories for `KronScheduler` and `KronSchedulerTz` (fix of [#35 ](https://github.com/InsanusMokrassar/krontab/issues/35 ))
* Fill extensions for flow with time zones (fix of [#33 ](https://github.com/InsanusMokrassar/krontab/issues/33 ))
2022-04-29 14:43:33 +00:00
## 0.7.2
2022-04-29 14:44:51 +00:00
* Versions
* `Coroutines` : `1.6.1`
* `Klock` : `2.7.0`
2022-04-29 15:57:10 +00:00
* Deprecate `do*Local` due to their redundancy (use `do*` instead)
* Add support of milliseconds as optional parameter after month (fix of [#31 ](https://github.com/InsanusMokrassar/krontab/issues/31 ))
2022-04-29 16:14:42 +00:00
* Add support of filters for `Flow` s with `DateTime` (fix of [#30 ](https://github.com/InsanusMokrassar/krontab/issues/30 ))
2022-04-29 14:44:51 +00:00
2022-02-27 12:20:49 +00:00
## 0.7.1
* Versions
* `Klock` : `2.5.2`
2021-11-22 12:59:44 +00:00
## 0.7.0
2021-11-22 13:08:24 +00:00
**ALL DEPRECATIONS HAVE BEEN REMOVED**
* Versions
2021-12-24 11:59:11 +00:00
* `Kotlin` : `1.6.10`
* `Klock` : `2.4.10`
* `Coroutines` : `1.6.0`
2021-11-22 13:08:24 +00:00
* `Androidx Work` : `2.7.1`
2021-11-12 09:41:12 +00:00
## 0.6.6
* Versions
* `Klock` : `2.4.8`
* `Androidx Work` : `2.7.0`
2021-09-25 12:51:51 +00:00
## 0.6.5
2021-09-25 13:28:49 +00:00
* Flows now use `doWhile` functions
* `doWhile` now use additional delay (for 1 ms) for cases when `block` executing too fast
2021-09-26 07:05:59 +00:00
* New extensions for `KronScheduler` : `do(Once/While/Infinity)Local` /`do(Once/While/Infinity)Tz`
2021-09-25 13:28:49 +00:00
2021-09-22 13:29:54 +00:00
## 0.6.4
2021-09-22 13:34:04 +00:00
* Versions
* `Kotlin` : `1.5.31`
* `Coroutines` : `1.5.2`
* `Klock` : `2.4.2`
2021-09-22 13:39:18 +00:00
* `Androidx Work` : `2.6.0`
2021-09-22 13:34:04 +00:00
2021-08-30 12:28:12 +00:00
## 0.6.3
2021-08-30 12:51:17 +00:00
* Versions
* `Kotlin` : `1.5.30`
* `Klock` : `2.4.0`
2021-07-28 08:31:30 +00:00
## 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`
2021-05-29 11:25:40 +00:00
## 0.6.1
2021-05-29 11:30:28 +00:00
* Versions
2021-06-03 06:16:39 +00:00
* `Klock` : `2.1.0` -> `2.1.2`
2021-06-03 06:52:39 +00:00
* Rewriting of default mechanism of `KronScheduler` s
2021-05-29 11:30:28 +00:00
2021-05-07 06:59:13 +00:00
## 0.6.0
2021-05-07 07:33:35 +00:00
* Versions
2021-05-25 09:47:47 +00:00
* `Kotlin` : `1.4.32` -> `1.5.10`
2021-05-14 19:35:10 +00:00
* `Coroutines` : `1.4.3` -> `1.5.0`
2021-05-07 07:33:35 +00:00
* `Klock` : `2.0.7` -> `2.1.0`
2021-03-29 15:30:24 +00:00
## 0.5.2
2021-03-29 15:32:39 +00:00
* Versions
* `Kotlin` : `1.4.31` -> `1.4.32`
2021-04-23 19:47:29 +00:00
* Supporting of weekdays
* Supporting of timezones
* Any `KronScheduler` now can be used for calling `next` with `DateTimeTz`
2021-04-23 19:53:57 +00:00
* New type `KronSchedulerTz`
2021-04-24 10:58:25 +00:00
* `SchedulerFlow` has been deprecated
* New extension `asTzFlow` and small changes in `asFlow` logic
2021-04-24 12:33:37 +00:00
* `merge` extensions now return `CollectionKronScheduler` instead of just `KronScheduler`
2021-03-29 15:32:39 +00:00
2021-03-13 14:19:03 +00:00
## 0.5.1
2021-03-13 14:22:55 +00:00
* 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`
2021-01-02 15:55:06 +00:00
## 0.5.0 Years
2021-01-02 13:42:10 +00:00
2021-01-02 14:13:47 +00:00
**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
2021-01-02 15:55:06 +00:00
* **`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` )
2021-01-03 14:01:25 +00:00
* **Fixed issue related to the fact that `toNearDateTime` of `CronDateTime` incorrectly handled months**
2021-01-02 17:56:31 +00:00
* **Android target has been added**
2021-01-02 14:13:47 +00:00
2021-01-01 14:50:31 +00:00
## 0.4.2
2021-01-01 14:58:45 +00:00
* Versions
* `Kotlin` : `1.4.20` -> `1.4.21`
* `Klock` : `2.0.1` -> `2.0.3`
2021-01-01 14:51:09 +00:00
* `CronDateTimeScheduler` now is deprecated and will be set up as `internal` in future
2020-12-05 18:01:02 +00:00
## 0.4.1
2020-12-04 16:59:30 +00:00
2020-12-05 19:03:24 +00:00
* Versions:
* `Coroutines` : `1.4.1` -> `1.4.2`
* `Klock` : `2.0.0` -> `2.0.1`
2020-12-05 19:44:24 +00:00
* `CronDateTimeScheduler` now is public
* New functions for `CronDateTimeScheduler`
2020-12-05 19:00:57 +00:00
* Add `CollectionKronScheduler` . It will give opportunity to unite several schedulers in one
2020-11-21 08:48:57 +00:00
## 0.4.0
2020-11-21 08:58:19 +00:00
**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`
2020-11-21 09:08:17 +00:00
* Versions:
* `Kotlin` : `1.4.10` -> `1.4.20`
* `Klock` : `1.12.1` -> `2.0.0`
2020-11-21 08:48:57 +00:00
## 0.3.3
2020-10-10 16:53:18 +00:00
2020-11-09 17:22:34 +00:00
* Versions:
* `Coroutines` : `1.3.9` -> `1.4.1`
2020-11-21 08:48:57 +00:00
## 0.3.2
2020-10-10 14:03:52 +00:00
2020-10-10 15:39:00 +00:00
* Function `TimeBuilder#each` was added (works as `at` )
2020-10-10 15:12:32 +00:00
* 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`
2020-11-21 08:48:57 +00:00
## 0.3.1
2020-10-08 08:54:42 +00:00
* Versions:
* `Kotlin` : `1.4.0` -> `1.4.10`
* `Klock` : `1.12.0` -> `1.12.1`
2020-11-09 17:15:04 +00:00
## 0.3.0
2020-01-08 08:28:57 +00:00
2020-11-09 17:15:04 +00:00
* 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
2020-01-13 03:29:35 +00:00
2020-07-24 05:43:45 +00:00
### 0.2.4
2020-07-24 05:50:17 +00:00
* Updates in libraries:
* Klock `1.11.3` -> `1.11.14`
* Coroutines `1.3.7` -> `1.3.8`
2020-07-24 08:18:57 +00:00
* Ranges support were included. Now it is possible to correctly use syntax `0-5` in strings schedules
2020-07-24 05:50:17 +00:00
2020-11-21 08:48:57 +00:00
## 0.2.3
2020-06-03 12:59:58 +00:00
* Updates in libraries:
* Kotlin `1.3.70` -> `1.3.72`
* Coroutines `1.3.5` -> `1.3.7`
* Klock `1.10.0` -> `1.11.3`
2020-06-03 16:04:05 +00:00
* A lot of KDocs added and fixed
2020-06-03 15:39:52 +00:00
* `EverySecondScheduler` changed its building logic - now it is lazy with builder using
2020-06-03 16:04:05 +00:00
* `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)`
2020-06-03 12:59:58 +00:00
2020-11-21 08:48:57 +00:00
## 0.2.2
2020-03-22 12:35:06 +00:00
* Updates in libraries:
* Kotlin `1.3.61` -> `1.3.70`
* Coroutines `1.3.3` -> `1.3.5`
* Klock `1.8.6` -> `1.10.0`
2020-11-21 08:48:57 +00:00
## 0.2.1
2020-01-13 04:15:01 +00:00
* Added support of flows: now any `KronScheduler` can be convert to `Flow<DateTime>` using `asFlow` extension
2020-11-09 17:15:04 +00:00
## 0.2.0
* Updated way of publishing (for more info look at the [git ](https://git.insanusmokrassar.com/InsanusMokrassar/krontab ))
* Updates in libraries:
* Coroutines `1.3.2` -> `1.3.3`
* Klock `1.7.3` -> `1.8.6`