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