Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update jiff requirement from 0.1.19 to 0.2.0 #1311

Merged
merged 3 commits into from
Feb 11, 2025

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Feb 11, 2025

Updates the requirements on jiff to permit the latest version.

Release notes

Sourced from jiff's releases.

0.2.0

Sponsorship is appreciated!

This is a new semver incompatible release of Jiff. It contains several breaking changes. I expect most users of Jiff to be able to upgrade without any changes. The fundamental API organization of Jiff has not changed.

In case you haven't heard of it before, Jiff is a relatively new datetime library for Rust. Jiff takes enormous inspiration from [Temporal]. Jiff supports automatic and seamless integration with the Time Zone Database, DST aware arithmetic and rounding, formatting and parsing zone aware datetimes losslessly, opt-in Serde support and a whole lot more. Jiff's overall goal is to guide you into the pit of success and make it harder to write buggy code for handling datetimes.

Some of the highlights of this release include reducing footguns and better ecosystem integration.

For reducing footguns, APIs on Span will no longer implicitly assume that days are always 24 hours long. And Span no longer implements PartialEq or Eq (instead favoring span.fieldwise() to create a value that supports naive fieldwise comparison). Moreover, when using TimeZone::system() (perhaps via Zoned::now()), if the system time zone could not be detected, then a special Etc/Unknown time zone will be used instead. This avoids erroring, but also surfaces itself to make it clearer that something has (perhaps) gone wrong.

As for ecosystem integration, this release coincides with the publication of the [jiff-icu], [jiff-sqlx] and [jiff-diesel] crates. jiff-icu integrates with the [ICU4X project], and is now the recommended way to use Jiff to work with non-Gregorian calendars or to localize datetimes for end users. jiff-sqlx and jiff-diesel provide wrapper types that implement the necessary traits to make it ergonomic to store and retrieve Jiff values in a database using [SQLx] or [Diesel], respectively.

Unless something unexpected happens, my plan is for the next breaking change release to be Jiff 1.0 in about 6 months. Once Jiff 1.0 is out, I plan to commit to it indefinitely.

BREAKING CHANGES:

This is an exhaustive list of breaking changes. Changes with the bolded RUNTIME prefix are changes that will not be caught by the Rust compiler. That is, they are changes in runtime behavior.

  • #28: The deprecated intz routines on Zoned, Timestamp, civil::DateTime and civil::Date have been removed. You can use in_tz instead. This change was made because many found the name intz to be unclear.
  • #32: The PartialEq and Eq trait implementations on Span have been removed.

... (truncated)

Changelog

Sourced from jiff's changelog.

0.2.0 (2025-02-10)

This is a new semver incompatible release of Jiff. It contains several breaking changes. I expect most users of Jiff to be able to upgrade without any changes. The fundamental API organization of Jiff has not changed.

Some of the highlights of this release include reducing footguns and better ecosystem integration.

For reducing footguns, APIs on Span will no longer implicitly assume that days are always 24 hours long. And Span no longer implements PartialEq or Eq (instead favoring span.fieldwise() to create a value that supports naive fieldwise comparison). Moreover, when using TimeZone::system() (perhaps via Zoned::now()), if the system time zone could not be detected, then a special Etc/Unknown time zone will be used instead. This avoids erroring, but also surfaces itself to make it clearer that something has (perhaps) gone wrong.

As for ecosystem integration, this release coincides with the publication of the [jiff-icu], [jiff-sqlx] and [jiff-diesel] crates. jiff-icu integrates with the [ICU4X project], and is now the recommended way to use Jiff to work with non-Gregorian calendars or to localize datetimes for end users. jiff-sqlx and jiff-diesel provide wrapper types that implement the necessary traits to make it ergonomic to store and retrieve Jiff values in a database using [SQLx] or [Diesel], respectively.

Unless something unexpected happens, my plan is for the next breaking change release to be Jiff 1.0 in about 6 months. Once Jiff 1.0 is out, I plan to commit to it indefinitely.

BREAKING CHANGES:

This is an exhaustive list of breaking changes. Changes with the bolded RUNTIME prefix are changes that will not be caught by the Rust compiler. That is, they are changes in runtime behavior.

  • #28: The deprecated intz routines on Zoned, Timestamp, civil::DateTime and civil::Date have been removed. You can use in_tz instead. This change was made because many found the name intz to be unclear.
  • #32: The PartialEq and Eq trait implementations on Span have been removed. Ideally these shouldn't have been used, but if you do need them, please use Span::fieldwise to create a SpanFieldwise, which does have the PartialEq and Eq traits implemented. These were removed on Span itself because they made it very easy to commit subtle bugs.
  • #36: Turn panics during Timestamp::saturing_add into errors. Callers adding spans that are known to contain units of hours or smaller are guaranteed that this will not return an error.
  • RUNTIME #48:

... (truncated)

Commits
  • 6ea3611 0.2.0
  • d0d1b2e crates: temporarily disconnect jiff-{icu,sqlx,diesel} from workspace
  • 0ba2c63 doc: final touch-ups before 0.2.0
  • c587fdd fmt: add table of different formats supported by Jiff
  • 65bac81 crates: beef up Cargo.toml and READMEs for new crates
  • 7a8dbff changelog: 0.2.0
  • 6661b0c doc: beef up the ICU4X docs a bit
  • 8b61b32 jiff-diesel: add Nullable wrappers for Diesel types
  • 65d48d1 examples/diesel-*: update examples to use QueryableByName and sql_query
  • 451d681 jiff-diesel: depend on Diesel's postgres_backend and mysql_backend features
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [jiff](https://github.com/BurntSushi/jiff) to permit the latest version.
- [Release notes](https://github.com/BurntSushi/jiff/releases)
- [Changelog](https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md)
- [Commits](BurntSushi/jiff@0.1.19...0.2.0)

---
updated-dependencies:
- dependency-name: jiff
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added k::dependencies Pull requests that update a dependency file rust Related to Rust specifically labels Feb 11, 2025
@tyranron tyranron self-assigned this Feb 11, 2025
@tyranron tyranron added enhancement Improvement of existing features or bugfix k::integration Related to integration with third-party libraries or systems lib::jiff Related to `jiff` crate integration labels Feb 11, 2025
@tyranron tyranron added this to the 0.17.0 milestone Feb 11, 2025
@tyranron tyranron merged commit 66b19fa into master Feb 11, 2025
180 checks passed
@tyranron tyranron deleted the dependabot/cargo/jiff-0.2.0 branch February 11, 2025 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Improvement of existing features or bugfix k::dependencies Pull requests that update a dependency file k::integration Related to integration with third-party libraries or systems lib::jiff Related to `jiff` crate integration rust Related to Rust specifically
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant