alamb commented on issue #7209:
URL: https://github.com/apache/arrow-rs/issues/7209#issuecomment-2692421114

   Here is my summary of what happened here for anyone who is curious:
   1. an arrow-rs dependency ('chrono', a Rust date/time library) released a 
version [`0.4.40`](https://crates.io/crates/chrono/0.4.40) which added a new 
function 
[`quarter`](https://docs.rs/chrono/0.4.40/chrono/trait.Datelike.html#method.quarter),
 to an existing type. Such an addition is normally "non breaking"
   2. However, in this case arrow-rs already provided a 
[`quarter`](https://docs.rs/arrow/latest/arrow/compute/fn.quarter.html) 
function with the same name (using a so-called Rust extension Trait). 
   3. Thus, when downstream projects upgraded to the (supposedly) compatible 
new version of chrono, there was now a name conflict causing a compiler error
   
   The fix for downstream users would be to not upgrade chrono (or "pin it to a 
specific version") which requires changes to their build systems
   
   Some downstream projects automatically pick up new compatible versions of 
crates, and thus simply doing `cargo update` would then not compile. 
   
   
   Our hotfix, included one change from  @Xuanwo  and @tustvold  in 
https://github.com/apache/arrow-rs/pull/7210. This change updates the 
Cargo.toml metadata file for arrow-rs (no actual Rust code changes) to 
explicitly say arrow-rs is not compatible with the new version of chrono, and 
thus preventing all downstream projects from having to individually do so.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to