Skip to content

Add CI check for cargo-semver-checks #15408

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
logan-keede opened this issue Mar 25, 2025 · 2 comments
Open

Add CI check for cargo-semver-checks #15408

logan-keede opened this issue Mar 25, 2025 · 2 comments
Labels
enhancement New feature or request

Comments

@logan-keede
Copy link
Contributor

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

@logan-keede logan-keede added the enhancement New feature or request label Mar 25, 2025
@alamb
Copy link
Contributor

alamb commented Mar 25, 2025

@logan-keede
Copy link
Contributor Author

logan-keede commented Mar 25, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants