Rrule

Latest version: v0.0.1

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.12.0

- Fix to ensure freq is capitalized in the string representation
- MSRV is bumped to `v1.74.0` from `v1.64.0`
- Make `ParseError` and `ValidationError` public
- `EXRULE`s are now correctly added as exrules on the `RRuleSet` when parsed from a string, instead of being incorrectly added as an rrule.
- Add a `RRuleSet::set_from_string` method to support loading rules without DTSTART. This is useful particularly when working with the Google Calendar API.
- Fix to include `RDATE`, `EXRULE` and `EXDATE` values if used in the `Display` implementation of `RRuleSet`.
- Fix 104 which had invalid occurrences for "every 2 months on the last Monday"

0.11.0

Changed

- `RRuleSet::all` returns an `RRuleResult` struct instead of a tuple.
- Update `chrono-tz` version to 0.8
- MSRV is bumped to `v1.64.0` from `v1.56.1`

0.10.0

Changed

- EXRULE functionality is put behind the feature flag `exrule` which is not enabled by default.
- `RRuleSet::all` takes a `limit` argument to protect against long-running iteration.
- The iterator API does not have any validation limits by default. So `rrule_set.into_iter().map(|dt| format!("{dt}")).collect<Vec<_>>()` could lead to an infinite loop.
- `RRuleSet::all` returns a tuple `(Vec<DateTime>, bool)` instead of the previous `Result` type. The boolean in the tuple indicates if the iteration was limited or not.
- Datetime type returned from iteration is `chrono::DateTime<rrule::Tz>` rather than `chrono::DateTime<chrono_tz::Tz>`. Please use `.with_timezone` if you still want to use `chrono_tz::Tz`.

Removed
- `no-validation-limits` feature is removed and is replaced by arguments to `RRuleSet`.
- `RRuleSet::just_before` was removed to keep the public API leaner. Please use the iterator API directly if you need this use-case.
- `RRuleSet::just_after` was removed to keep the public API leaner. Please use the iterator API directly if you need this use-case.
- `RRuleSet::all_between` was replaced by `rrule_set.before(dt).after(dt).all(limit)`.

Added
- `RRuleSet::after` and `RRuleSet::before` was added to configure the boundaries of the recurrences before calling `RRuleSet::all`.
- `RRuleSet::all_unchecked` was added to allow for iterating without any validation limits.
- `RRule<Unvalidated>` implements `FromStr` and `Deserialize`
- `rrule::Tz` "replaced" `chrono_tz::Tz` by wrapping it and adding support for the `chrono::Local` timezone.

0.9.2

Fixes

- Removed a `println` that accidentally was part of the previous release.

0.9.1

Fixes

- Fixed typos in security docs
- Fixed an infinite loop issue in the iteration phase where the counter date increment method didn't increment the counter date, and it was unable to make progress. This was solved by using a custom date time implementation for the counter date.
- Fixes issue where iterations that passed a daylight saving time had incorrect hour.

0.9.0

Changed

- MSRV is bumped to `v1.57.0` from `v1.56.1`
- Internal `Time` type has been replaced by `chrono::NaiveTime`
- Iterator module has been refactored
- The `parser` module has been rewritten from scratch to be more Rust idiomatic and use terminology more consistent with the RFC. The end result of the `parser` phase is now a `Grammar`.
- Added `cargo clippy -- -D warnings` back to the CI

Removed

- `RRule` no longer implements `FromStr` or `Deserialize`. Use `RRuleSet` for these use-cases.

Fixes

- The `DTSTART` and `UNTIL` values weren't synced before this release. They're now synced according to the RFC.
- Fix 61 where `collect_with_error` would not return an error in the case where `RRuleSet` iteration had an error.

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.