crepererum opened a new issue, #13665:
URL: https://github.com/apache/datafusion/issues/13665

   # What
   We run [`cargo 
semver-checks`](https://github.com/obi1kenobi/cargo-semver-checks/) before 
(pre-)releasing a new version. Maybe even for every PR (it's rather expensive 
though).
   
   # Why
   Also see #13648.
   
   While it doesn't necessarily prevent breaking changes, but it might make 
accidental ones more visible. For example, running this for 
2ac8af894f9aefb3215b74044b7f177b42f7e65f (which compares against v43.0.0), we 
get the following things that I think could be avoided (this is a small subset 
of what the tool found):
   
   ```text
   --- failure enum_variant_added: enum variant added on exhaustive enum ---
   
   Description:
   A publicly-visible enum without #[non_exhaustive] has a new variant.
           ref: 
https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
          impl: 
https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/enum_variant_added.ron
   
   Failed in:
     variant PlanType:PhysicalPlanError in 
/home/mneumann/src/arrow-datafusion/datafusion/common/src/display/mod.rs:66
   ```
   
   ```text
   --- failure struct_missing: pub struct removed or renamed ---
   
   Description:
   A publicly-visible struct cannot be imported by its prior path. A `pub use` 
may have been removed, or the struct itself may have been renamed or removed 
entirely.
           ref: 
https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
          impl: 
https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/struct_missing.ron
   
   Failed in:
     struct datafusion_expr::DocumentationBuilder, previously in file 
/home/mneumann/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-expr-43.0.0/src/udf_docs.rs:95
     struct datafusion_expr::DocSection, previously in file 
/home/mneumann/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-expr-43.0.0/src/udf_docs.rs:67
     struct datafusion_expr::Documentation, previously in file 
/home/mneumann/.cargo/registry/src/index.crates.io-6f17d22bba15001f/datafusion-expr-43.0.0/src/udf_docs.rs:35
   ```
   
   We could even add a 
[config](https://github.com/obi1kenobi/cargo-semver-checks/?tab=readme-ov-file#configuration)
 to the repo that defines what we accept, for example:
   
   ```text
   --- failure auto_trait_impl_removed: auto trait no longer implemented ---
   
   Description:
   A public type has stopped implementing one or more auto traits. This can 
break downstream code that depends on the traits being implemented.
           ref: 
https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
          impl: 
https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.37.0/src/lints/auto_trait_impl_removed.ron
   
   Failed in:
     type Max is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:383
     type Max is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:383
     type Min is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:298
     type Min is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:298
     type Count is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:214
     type Count is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:214
     type Sum is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:101
     type Sum is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:101
     type Statement is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
     type Statement is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
     type Statement is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
     type Statement is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/logical_plan/statement.rs:33
     type Avg is no longer UnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:456
     type Avg is no longer RefUnwindSafe, in 
/home/mneumann/src/arrow-datafusion/datafusion/expr/src/test/function_stub.rs:456
   ```
   
   # How
   TBD


-- 
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: github-unsubscr...@datafusion.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: github-unsubscr...@datafusion.apache.org
For additional commands, e-mail: github-h...@datafusion.apache.org

Reply via email to