You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

134 lines
4.3 KiB

3 years ago
  1. # Change Log
  2. ## [3.1.0] - 2020-11-24
  3. ### Added
  4. - Added `CronExpression::getParts()` method to get parts of the expression as an array (#83)
  5. ### Changed
  6. - Changed to Interfaces for some type hints (#97, #86)
  7. - Dropped minimum PHP version to 7.2
  8. - Few syntax changes for phpstan compatibility (#93)
  9. ### Fixed
  10. - N/A
  11. ### Deprecated
  12. - Deprecated `CronExpression::factory` in favor of the constructor (#56)
  13. - Deprecated `CronExpression::YEAR` as a formality, the functionality is already removed (#87)
  14. ## [3.0.1] - 2020-10-12
  15. ### Added
  16. - Added support for PHP 8 (#92)
  17. ### Changed
  18. - N/A
  19. ### Fixed
  20. - N/A
  21. ## [3.0.0] - 2020-03-25
  22. **MAJOR CHANGE** - In previous versions of this library, setting both a "Day of Month" and a "Day of Week" would be interpreted as an `AND` statement, not an `OR` statement. For example:
  23. `30 0 1 * 1`
  24. would evaluate to "Run 30 minutes after the 0 hour when the Day Of Month is 1 AND a Monday" instead of "Run 30 minutes after the 0 hour on Day Of Month 1 OR a Monday", where the latter is more inline with most cron systems. This means that if your cron expression has both of these fields set, you may see your expression fire more often starting with v3.0.0.
  25. ### Added
  26. - Additional docblocks for IDE and documentation
  27. - Added phpstan as a development dependency
  28. - Added a `Cron\FieldFactoryInterface` to make migrations easier (#38)
  29. ### Changed
  30. - Changed some DI testing during TravisCI runs
  31. - `\Cron\CronExpression::determineTimezone()` now checks for `\DateTimeInterface` instead of just `\DateTime`
  32. - Errors with fields now report a more human-understandable error and are 1-based instead of 0-based
  33. - Better support for `\DateTimeImmutable` across the library by typehinting for `\DateTimeInterface` now
  34. - Literals should now be less case-sensative across the board
  35. - Changed logic for when both a Day of Week and a Day of Month are supplied to now be an OR statement, not an AND
  36. ### Fixed
  37. - Fixed infinite loop when determining last day of week from literals
  38. - Fixed bug where single number ranges were allowed (ex: `1/10`)
  39. - Fixed nullable FieldFactory in CronExpression where no factory could be supplied
  40. - Fixed issue where logic for dropping seconds to 0 could lead to a timezone change
  41. ## [2.3.1] - 2020-10-12
  42. ### Added
  43. - Added support for PHP 8 (#92)
  44. ### Changed
  45. - N/A
  46. ### Fixed
  47. - N/A
  48. ## [2.3.0] - 2019-03-30
  49. ### Added
  50. - Added support for DateTimeImmutable via DateTimeInterface
  51. - Added support for PHP 7.3
  52. - Started listing projects that use the library
  53. ### Changed
  54. - Errors should now report a human readable position in the cron expression, instead of starting at 0
  55. ### Fixed
  56. - N/A
  57. ## [2.2.0] - 2018-06-05
  58. ### Added
  59. - Added support for steps larger than field ranges (#6)
  60. ## Changed
  61. - N/A
  62. ### Fixed
  63. - Fixed validation for numbers with leading 0s (#12)
  64. ## [2.1.0] - 2018-04-06
  65. ### Added
  66. - N/A
  67. ### Changed
  68. - Upgraded to PHPUnit 6 (#2)
  69. ### Fixed
  70. - Refactored timezones to deal with some inconsistent behavior (#3)
  71. - Allow ranges and lists in same expression (#5)
  72. - Fixed regression where literals were not converted to their numerical counterpart (#)
  73. ## [2.0.0] - 2017-10-12
  74. ### Added
  75. - N/A
  76. ### Changed
  77. - Dropped support for PHP 5.x
  78. - Dropped support for the YEAR field, as it was not part of the cron standard
  79. ### Fixed
  80. - Reworked validation for all the field types
  81. - Stepping should now work for 1-indexed fields like Month (#153)
  82. ## [1.2.0] - 2017-01-22
  83. ### Added
  84. - Added IDE, CodeSniffer, and StyleCI.IO support
  85. ### Changed
  86. - Switched to PSR-4 Autoloading
  87. ### Fixed
  88. - 0 step expressions are handled better
  89. - Fixed `DayOfMonth` validation to be more strict
  90. - Typos
  91. ## [1.1.0] - 2016-01-26
  92. ### Added
  93. - Support for non-hourly offset timezones
  94. - Checks for valid expressions
  95. ### Changed
  96. - Max Iterations no longer hardcoded for `getRunDate()`
  97. - Supports DateTimeImmutable for newer PHP verions
  98. ### Fixed
  99. - Fixed looping bug for PHP 7 when determining the last specified weekday of a month
  100. ## [1.0.3] - 2013-11-23
  101. ### Added
  102. - Now supports expressions with any number of extra spaces, tabs, or newlines
  103. ### Changed
  104. - Using static instead of self in `CronExpression::factory`
  105. ### Fixed
  106. - Fixes issue [#28](https://github.com/mtdowling/cron-expression/issues/28) where PHP increments of ranges were failing due to PHP casting hyphens to 0
  107. - Only set default timezone if the given $currentTime is not a DateTime instance ([#34](https://github.com/mtdowling/cron-expression/issues/34))