Skip to content

Add CI check for cargo-semver-checks #15408

Description

@logan-keede

Is your feature request related to a problem or challenge?

DataFusion is a rapidly evolving codebase. With many minor and major changes every week, through this all we try to minimise unnecessary API changes/breaks as much as possible but every change has the possibility of causing API changes in ways we can not predict. Here is a nice article about this.

Describe the solution you'd like

cargo-semver-checks is a cargo tool made for specific purpose of automatically identifying API changes (and avoid breaking Semantic Versioning, not that relevant for us as we have pretty much only major release every month.).
Its general usage is explained in above mentioned article.
We can use this tool in a CI to check if a particular PR/merge has broken any API or not.
Note: (IMO)This CI check is not supposed to be a blocker but a way to avoid uninformed API changes.

Describe alternatives you've considered

Search for other similar tools or continue to predict API changes without any tool.

Additional context

Discussion: More thorough contribution guideline.
Article: SemVer in Rust: Tooling, Breakage, and Edge Cases

Activity

  1. alamb commented on Mar 25, 2025

    @alamb
    Contributor
  2. logan-keede commented on Mar 25, 2025

    @logan-keede
    ContributorAuthor

    We can customise this github action to suit our needs. I am already giving it a shot.

    It will save me(or anybody else trying this) some time if we agree on a couple of things.
    When do we want to run this check? and against what baseline version?

    I am thinking :-

    • PR: only changed crates. against current main.
    • for Push: all crates. against last release.

    Also, this approach will probably require publishing CI Actions repo(for cargo semver-check) to github marketplace(for easy access). I hope that is not a problem.

  3. Jefffrey commented on Dec 5, 2025

    @Jefffrey
    Contributor

    I'll close this in favour of #13665

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    development-processRelated to development process of DataFusionenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions