It's really frustrating to have found that chrono is no longer supported, because "it's old"?
Why fix what isn't broken? Never heard of this jiff crate before, but I see it has existed for less than 2 years. That's hardly "stable" for a longstanding project like this crate.
It also breaks the backwards compatibility principle. While this is not Rust core, it still is a major, major breaking change for anyone using this library.
Now, we have to find every instance of the usage of DateTime<Utc> in our codebase and manually convert it, becase jiff provides zero interop with chrono.
jiff also supports a much smaller timespace than chrono and therefore conversions from DateTime<Utc> to jiff are not Infallible and actually one has to do this manually with helper functions.
In #163 someone just thought they would be so helpful by suggesting this feature, and to their credit, they asked it to be feature-gated.
Instead, someone ripped out all the chrono code and replaced it with jiff without considering implications to downstream crate authors with real projects.
This is frustrating. It feels like no consideration was given to all the individual work users of this crate would have to do to make it work with jiff instead of chrono.
Are we expected to just convert our projects over to jiff, a completely new (< 2 years old) crate that is not really battle tested? It is certainly popular, with almost a "move fast and break things" mentality. I would much rather have the option to move to it if I so desire.
Why wasn't it put in with a feature gate as #163 suggested?
And the Time wrapper was already annoying, but understandably necessary, but why weren't From<DateTime<Utc>> and Copy ever implemented for it? It was already a tiny bit annoying to have to deal with this extra wrapper, but now, frankly Time in this crate is totally unusable without global helper functions to convert to/from chrono or time.
I was going to make a crate, but then hit the wall again that I cannot implement any conversions between two third-party crates. This seems like "gatekeeping" to me, and it's a Rust maintainers' decision, but oh well. It seems silly that there is absolutely no conversion for this.
I'm not going to rip apart my entire project and replace every instance of chrono with jiff just because its author "encourages me to jump into the pit of success." This is hardly what I had in mind for success. While it may be the best thing since sliced bread to some, it's not like a crate refactor with #[deprecated] notices for which I can just use the analyzer to fix it. This is a major, major breaking change that really should have been better thought out, and I'm sorry for everyone who has had to suffer for this. I wonder if this post really comes as a major surprise to the author. I don't know, but until Rust has a std::datetime, I really don't think jiff should be forced so suddenly and irreversibly on the community like this.
It's really frustrating to have found that chrono is no longer supported, because "it's old"?
Why fix what isn't broken? Never heard of this
jiffcrate before, but I see it has existed for less than 2 years. That's hardly "stable" for a longstanding project like this crate.It also breaks the backwards compatibility principle. While this is not Rust core, it still is a major, major breaking change for anyone using this library.
Now, we have to find every instance of the usage of
DateTime<Utc>in our codebase and manually convert it, becasejiffprovides zero interop with chrono.jiffalso supports a much smaller timespace thanchronoand therefore conversions fromDateTime<Utc>tojiffare notInfallibleand actually one has to do this manually with helper functions.In #163 someone just thought they would be so helpful by suggesting this feature, and to their credit, they asked it to be feature-gated.
Instead, someone ripped out all the
chronocode and replaced it withjiffwithout considering implications to downstream crate authors with real projects.This is frustrating. It feels like no consideration was given to all the individual work users of this crate would have to do to make it work with
jiffinstead ofchrono.Are we expected to just convert our projects over to
jiff, a completely new (< 2 years old) crate that is not really battle tested? It is certainly popular, with almost a "move fast and break things" mentality. I would much rather have the option to move to it if I so desire.Why wasn't it put in with a feature gate as #163 suggested?
And the
Timewrapper was already annoying, but understandably necessary, but why weren'tFrom<DateTime<Utc>>andCopyever implemented for it? It was already a tiny bit annoying to have to deal with this extra wrapper, but now, franklyTimein this crate is totally unusable without global helper functions to convert to/fromchronoortime.I was going to make a crate, but then hit the wall again that I cannot implement any conversions between two third-party crates. This seems like "gatekeeping" to me, and it's a Rust maintainers' decision, but oh well. It seems silly that there is absolutely no conversion for this.
I'm not going to rip apart my entire project and replace every instance of
chronowithjiffjust because its author "encourages me to jump into the pit of success." This is hardly what I had in mind for success. While it may be the best thing since sliced bread to some, it's not like a crate refactor with#[deprecated]notices for which I can just use the analyzer to fix it. This is a major, major breaking change that really should have been better thought out, and I'm sorry for everyone who has had to suffer for this. I wonder if this post really comes as a major surprise to the author. I don't know, but until Rust has astd::datetime, I really don't thinkjiffshould be forced so suddenly and irreversibly on the community like this.