Skip to content

Test semver#22199

Closed
kosiew wants to merge 14 commits into
apache:mainfrom
kosiew:test-semver
Closed

Test semver#22199
kosiew wants to merge 14 commits into
apache:mainfrom
kosiew:test-semver

Conversation

@kosiew
Copy link
Copy Markdown
Contributor

@kosiew kosiew commented May 15, 2026

NOT FOR REVIEW

Test semver-checking

gstvg and others added 13 commits April 30, 2026 03:38
- Modified `.github/workflows/breaking_changes_detector.yml`:
- Replaced current semver job with an advisory PR-local check.
- Introduced a new blocking latest-release check job.
- Ensured both jobs retain a green status on semver breaks.
- Updated latest stable tag to exclude -* tags.

- Updated `.github/workflows/breaking_changes_detector_comment.yml`:
- Added downloads for both artifacts.
- Adjusted comment to show:
- Blocking latest-release signal.
- Advisory PR-local signal.
- Updated label to track blocking latest-release failure only.
- Added issues: documentation for label operations.
- Added `latest-release-tag` functionality to `ci/scripts/changed_crates.sh`
- Implemented filtering for only stable semantic version tags and error handling for the absence of stable tags
- Updated documentation for `changed_crates.sh`
- Enhanced `ci/scripts/test_changed_crates.sh` with new shell tests for:
- Stable tags preference over newer release candidates (RC)
- Semantic version sorting
- Ignoring malformed or namespaced tags
- Failing on missing tags
- Failing on presence of only RC tags
- Updated `.github/workflows/breaking_changes_detector.yml`:
- Blocking job now invokes `ci/scripts/changed_crates.sh` for `latest-release-tag`
- Artifacts now include `latest_release_tag`
- Consolidated duplicated install steps into a local action
- Modified `.github/actions/setup-semver-check/action.yml` for shared setup of protobuf and cargo-semver checks
- Improved `.github/workflows/breaking_changes_detector_comment.yml` to validate and print the `latest_release_tag`
- Updated `.github/actions/setup-semver-check/action.yml` to centralize:
- Fetching PR base branch
- Determining changed crates
- Installing protobuf
- Installing cargo-semver-checks
- Added output for packages

- Modified `.github/workflows/breaking_changes_detector.yml` to:
- Reuse shared action for advisory and blocking jobs
- Remove duplicated steps for fetching, changed crates, and installation
- Added `.github/actions/run-semver-check/action.yml` for shared semver run with log teeing and result output.
- Added `.github/actions/stage-semver-artifact/action.yml` for shared artifact staging and ANSI stripping.
- Updated `.github/workflows/breaking_changes_detector.yml` to use both actions in advisory/blocking jobs and removed duplicate run/stage shell blocks.
- Updated `.github/workflows/breaking_changes_detector_comment.yml` by adding local bash helpers: `require_regex`, `require_result`, `write_output`, and `write_multiline_output`, while removing repeated validation/heredoc logic.
- Updated `ci/scripts/test_changed_crates.sh` to add `tag_repo`, `assert_latest_release_tag_fails`, and removed duplicate negative-test setup.
- Updated .github/workflows/dev.yml to include a new job that runs ci/scripts/test_changed_crates.sh.
…patible semver-check-result uploads and retain new artifacts
@github-actions github-actions Bot added development-process Related to development process of DataFusion logical-expr Logical plan and expressions labels May 15, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 15, 2026

Thank you for opening this pull request!

Reviewer note: cargo-semver-checks reported the current version number is not SemVer-compatible with the changes in this pull request (compared against the base branch).

Details
     Cloning 53.1.0
    Building datafusion-expr v53.1.0 (current)
       Built [  25.305s] (current)
     Parsing datafusion-expr v53.1.0 (current)
      Parsed [   0.077s] (current)
    Building datafusion-expr v53.1.0 (baseline)
       Built [  21.099s] (baseline)
     Parsing datafusion-expr v53.1.0 (baseline)
      Parsed [   0.071s] (baseline)
    Checking datafusion-expr v53.1.0 -> v53.1.0 (no change; assume patch)
     Checked [   1.833s] 222 checks: 213 pass, 9 fail, 0 warn, 30 skip

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ExecutionProps.subquery_indexes in /home/runner/work/datafusion/datafusion/datafusion/expr/src/execution_props.rs:69
  field ExecutionProps.subquery_results in /home/runner/work/datafusion/datafusion/datafusion/expr/src/execution_props.rs:72
  field ExecutionProps.lambda_variable_qualifier in /home/runner/work/datafusion/datafusion/datafusion/expr/src/execution_props.rs:76
  field Cast.field in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:950
  field Cast.field in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:950
  field TryCast.field in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:973
  field TryCast.field in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:973

--- 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.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant Expr:HigherOrderFunction in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:429
  variant Expr:Lambda in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:431
  variant Expr:LambdaVariable in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:433
  variant Expr:HigherOrderFunction in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:429
  variant Expr:Lambda in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:431
  variant Expr:LambdaVariable in /home/runner/work/datafusion/datafusion/datafusion/expr/src/expr.rs:433

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_parameter_count_changed.ron

Failed in:
  datafusion_expr::logical_plan::Aggregate::grouping_id_type takes 1 parameters in /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/logical_plan/plan.rs:3689, but now takes 2 parameters in /home/runner/work/datafusion/datafusion/datafusion/expr/src/logical_plan/plan.rs:3712
  datafusion_expr::Aggregate::grouping_id_type takes 1 parameters in /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/logical_plan/plan.rs:3689, but now takes 2 parameters in /home/runner/work/datafusion/datafusion/datafusion/expr/src/logical_plan/plan.rs:3712

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It 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.47.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field data_type of struct Cast, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/expr.rs:803
  field data_type of struct Cast, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/expr.rs:803
  field data_type of struct TryCast, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/expr.rs:819
  field data_type of struct TryCast, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/expr.rs:819

--- failure trait_added_supertrait: non-sealed trait added new supertraits ---

Description:
A non-sealed trait added one or more supertraits, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#generic-bounds-tighten
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_added_supertrait.ron

Failed in:
  trait datafusion_expr::ScalarUDFImpl gained Any in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/udf.rs:524
  trait datafusion_expr::PartitionEvaluator gained Any in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/partition_evaluator.rs:93
  trait datafusion_expr::AggregateUDFImpl gained Any in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/udaf.rs:445
  trait datafusion_expr::WindowUDFImpl gained Any in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/udwf.rs:315
  trait datafusion_expr::TableSource gained Any in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/table_source.rs:94

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_method_added.ron

Failed in:
  trait method datafusion_expr::registry::FunctionRegistry::higher_order_function_names in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/registry.rs:45
  trait method datafusion_expr::registry::FunctionRegistry::higher_order_function in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/registry.rs:59
  trait method datafusion_expr::planner::ContextProvider::get_higher_order_meta in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/planner.rs:107
  trait method datafusion_expr::planner::ContextProvider::higher_order_function_names in file /home/runner/work/datafusion/datafusion/datafusion/expr/src/planner.rs:138

--- failure trait_method_marked_deprecated: trait method #[deprecated] added ---

Description:
A trait method is now #[deprecated]. Downstream crates will get a compiler warning when using this method.
        ref: https://doc.rust-lang.org/reference/attributes/diagnostics.html#the-deprecated-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_method_marked_deprecated.ron

Failed in:
  method plan_type in trait datafusion_expr::planner::TypePlanner in /home/runner/work/datafusion/datafusion/datafusion/expr/src/planner.rs:439

--- failure trait_method_missing: pub trait method removed or renamed ---

Description:
A trait method is no longer callable, and may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_method_missing.ron

Failed in:
  method as_any of trait ScalarUDFImpl, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/udf.rs:500
  method as_any of trait TableSource, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/table_source.rs:95
  method as_any of trait AggregateUDFImpl, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/udaf.rs:432
  method as_any of trait WindowUDFImpl, previously in file /home/runner/work/datafusion/datafusion/target/semver-checks/git-53_1_0/ce95ac165cf3a7a2e83c5980673b35c3ac0cef16/datafusion/expr/src/udwf.rs:319

--- failure type_method_marked_deprecated: type method #[deprecated] added ---

Description:
A type method is now #[deprecated]. Downstream crates will get a compiler warning when using this method.
        ref: https://doc.rust-lang.org/reference/attributes/diagnostics.html#the-deprecated-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/type_method_marked_deprecated.ron

Failed in:
  method datafusion_expr::simplify::SimplifyContext::with_config_options in /home/runner/work/datafusion/datafusion/datafusion/expr/src/simplify.rs:72
  method datafusion_expr::simplify::SimplifyContext::with_schema in /home/runner/work/datafusion/datafusion/datafusion/expr/src/simplify.rs:82
  method datafusion_expr::simplify::SimplifyContext::with_query_execution_start_time in /home/runner/work/datafusion/datafusion/datafusion/expr/src/simplify.rs:92
  method datafusion_expr::simplify::SimplifyContext::with_current_time in /home/runner/work/datafusion/datafusion/datafusion/expr/src/simplify.rs:105

     Summary semver requires new major version: 7 major and 2 minor checks failed
    Finished [  49.700s] datafusion-expr

@github-actions github-actions Bot added the auto detected api change Auto detected API change label May 15, 2026
- Renamed sections for clarity:
- Changed "Latest release compatibility" to "blocking"
- Changed "Base branch compatibility" to "advisory"
- Added an interpretation guide:
- "base warns + release passes" indicates advisory unreleased API churn
- "release warns + base passes" indicates blocking release-user risk
@kosiew kosiew closed this May 15, 2026
@kosiew kosiew reopened this May 15, 2026
@kosiew kosiew closed this May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto detected api change Auto detected API change development-process Related to development process of DataFusion logical-expr Logical plan and expressions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants