Cron4s Change Log
- #335: Fix exception thrown when parsing an incomplete expression.
- Scala 2.12.12 / Scala 2.13.2
- ScalaJS 0.6.33
- Cats 2.1.1
- Decline 1.2.0
- Circe 0.13.0
- Doobie 0.9.0
- JodaTime 2.10.6
- ScalaJS MomentJS 0.10.4 / MomentJS 0.5.28
- Scala Java Time 2.0.0
- #142: Add support for Scala 2.13 (and drop support for Scala 2.11)
- #142: Remove compile-time expressions (to be considered later if contextual support for 2.13 improves)
- #149: Add extension module for doobie. Find documentation about it in the doobie extension docs.
- #138: Rewrite parser using Scala Parser Combinators instead of FastParse.
- Scala 2.12.9 / Scala 2.13.0
- ScalaJS 0.6.29
- Cats 2.0.0
- Decline 1.0.0
- Circe 0.12.1
- ScalaJS MomentJS 0.10.0 / MomentJS 0.5.25
- Scala Java Time 2.0.0-RC3
This version adds some features and upgrades some of the core dependencies. This version is not binary compatible with the 0.4.x series.
- Fixed a parser inconsistency error in which the string representation of a given cron AST could be parsed into a different (although equivalent) one. This was fixed as part of the work for #127.
- #125: Add extension module for decline. Find documentation about it in the extensions docs.
- #127: Add extension module for circe. Find documentation about it in the extensions docs.
- #126: Add a compile-time string interpolator.
- Scala 2.11.12 / Scala 2.12.8
- ScalaJS 0.6.26
- Cats 1.6.0
- Scala Java Time 2.0.0-RC1
This is a maintenance release over 0.4.3:
- #94: The signature for the
getmethod in the
IsDateTimetypeclass has been changed to capture errors when getting the value of a given field.
- Scala 2.11.12 / Scala 2.12.4
- ScalaJS 0.6.21
- Cats 1.0.1
This is a maintenance release over 0.4.2:
- Scala 2.11.11 / Scala 2.12.4
- ScalaJS 0.6.20
- Cats 1.0.0-RC1
- FastParse 1.0.0
This a maintenance release over 0.4.1:
- Scala 2.11.11 / Scala 2.12.3
- ScalaJS 0.6.19
- Cats 1.0.0-MF
- FastParse 0.4.4
This is a bug fix release over 0.4.0:
Rolling an update to the day of month field could cause setting an invalid date, which will eventually return
Noneresult from the
prevmethods. This case is now handled and will propagate a carry over value to the month field whenever it happens.
- #81: The signature for the
setmethod in the
IsDateTimetypeclass has been changed to capture errors when setting the values.
- #78: Upgrading the Scala version to 2.12.2 means that case classes
do not support anymore having implicit parameter lists. This means that all node class implementations under package
cron4s.exprhave been rewritten using normal Scala classes instead of case classes. This means that they can not be used anymore in pattern matching and that binary compatibility in their case has been broken.
- Scala: 2.11.11 / 2.12.2
- ScalaJS: 0.6.18
- Scala Java Time: 2.0.0-M12
Please, check migration document for instructions on how to migrate your code to the last version: Migration to 0.4.1
This the 4th release of Cron4s, aimed at a more complete implementation of the CRON Spec, easier (if possible) to use, and with important bug fixes.
- #58: CRON expressions now support
?symbols in both day of month and day of week fields. This also means that now expressions must use that symbol in one of those two fields to be valid.
- Additional parse operations where added to the
Cron("...")syntax is still supported and it be the preferred one as it’s the most concise one.
- #70: Improved parser error messages.
- #60: ScalaJS & ScalaJVM support for JSR-310 (aka Java 8 Time) has
been unified in the
- #67: Added module with support for MomentJS.
Cronentry point is exported as a CommonJS module in ScalaJS.
- #59: Carry over from fields month and day of week wasn’t properly applied to the datetime.
- #56: The effect of updating a date-time field propagates the effect to the predecessor fields, no matter the direction of this effect (forward or backwards in time).
- #63: Scalaz has been replaced by Cats.
- #67: Joda Time support has been moved to it’s own module.
- #61: Field expression selection by field type is now fully type-checked during compilation.
- ScalaJS: 0.6.15
- Cats: 0.9.0
- Scala Java Time: 2.0.0-M10
Please, check migration document for instructions on how to migrate your code to the last version: Migration to 0.4.0
cron4s 0.3.1 is an incremental update with the following changes:
- #39: Fixed type signature in summon method for type class
- #41: Support for Joda’s partial date times: LocalDate, LocalTime, LocalDateTime
- #45: Do no reference tests modules in parent POM as a compile dependency
- #52: Preserve step inertia when calculating a next or previous date, initially reported as in #50
- #51: Reset milliseconds in DateTime return values
cron4s 0.3.0 has an overhaul of its internals from 0.2.1. This release is not source compatible with previous ones as it has several API breaking changes which will make users have to update their codebases to be able to compile with it. The list of changes in this release are:
- Updated ScalaJS to 0.6.14
- Support for Scala 2.12 (#22)
- Re-organized the built-in datetime library support under the
cron4s.expr.AnyExprhas been renamed to
cron4s.expr.EachNodeto properly reflect the semantics of the
*symbol in CRON expressions. (#22)
- Parser implementation has been rewritten using FastParse (#22)
- Full type signatures in the AST are now preserved after parsing the expression (#24)
- The parsed expression AST is not fully validated and any error will result returning those errors instead of the actual expression object.
- Fixed inconsistencies when stepping over enumerated values of the different expression ranges (#28)
- All expression and nodes now implement the
scalaz.Showtypeclass to consistently return the actual CRON string representation.
- Common datetime operations (matching and stepping) are now supported in subexpressions (date or time only)
- Providing support for custom date time libraries has been greatly simplified and full documented (#37)
A migration guide has been published for anyone that would like to update.
cron4s 0.2.1 is a maintenance release over 0.2.0. The list of changes in this release are:
- Documentation has been improved published as a microsite
CronExprexpose field based accessors.
CronExpris now private
cron4s 0.2.0 is an API improvement release over the previous 0.1.0. The list of changes in this release are:
- Deeper Typeclass based design which has helped to make a more concise and uniform implementation.
- Added a
Secondsfield to the cron expression and parser.
- Added a human-friendly
toStringimplementation to all the expressions and cron units.
- Dropped support for
java.util.Calendaras it is impossible to treat it as an immutable type and yields weird results.
- Improved parser error messages, including the position at which the parser stopped.
CronExpra proper case class with its own attributes to ease using it with serializers. Access to the
HListis still granted with the same attribute names.
- Deprecated the
cron4s.matcher.Matcherand replaced it by
- Added a testkit module, used to test the library and useful to test user extensions.
cron4s 0.1.0 is a preview release of a fully Scala idiomatic CRON expression parser that can be used in the JVM or in ScalaJS. cron4s has been designed with extensibility in mind, meaning that it’s not tied to an specific date-time library/implementation, but provides support for many instead.
import cron4s._ import java.time._ import cron4s.japi.time._ val Right(cron) = Cron("10-35 2,4,6 * * *") val now = LocalDateTime.now val nextDate = cron.next(now)