Skip to content

chore(ci): omit blanket/auto-trait/auto-derived impls from public API#2542

Merged
blackmwk merged 2 commits into
apache:mainfrom
xanderbailey:xb/simplify-public-api
Jun 1, 2026
Merged

chore(ci): omit blanket/auto-trait/auto-derived impls from public API#2542
blackmwk merged 2 commits into
apache:mainfrom
xanderbailey:xb/simplify-public-api

Conversation

@xanderbailey
Copy link
Copy Markdown
Contributor

@xanderbailey xanderbailey commented May 30, 2026

#2525 introduced public-api files but after writing https://github.com/apache/iceberg-rust/pull/2541/changes I realised this might be a little too noisy since it incudes all auto-trait like Send Sync etc.

Options are:

  • -s Omits blanket impls (From, Into, Borrow, Any, etc.)
  • -ss Also omits auto-trait impls (Send, Sync, Unpin, Freeze, etc.)
  • -sss Also omits auto-derived impls (Clone, Debug, Eq)

I think -sss is enough for reviewers to be made aware of public API changes without it being so noisy that we don't pay attention to the actual changes. Downside is it's less "accurate" in the sense that a PR might introduce a change to the public API that wouldn't be caught in these tests so there's some sort of balance we need to strike here. Interested to know what the community thinks.

Which issue does this PR close?

  • Closes #.

What changes are included in this PR?

Pass -sss to cargo-public-api to reduce noise in public-api.txt files. This removes ~13k lines of auto-generated blanket impls, auto-trait impls, and auto-derived impls that obscure actual API surface changes in diffs.

Are these changes tested?

… output

Pass -sss to cargo-public-api to reduce noise in public-api.txt files.
This removes ~13k lines of auto-generated blanket impls, auto-trait impls,
and auto-derived impls that obscure actual API surface changes in diffs.
Copy link
Copy Markdown
Contributor

@blackmwk blackmwk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @xanderbailey for this pr. While I agree that auto-trait and blank implementation maybe too noisy, I think auto-derived impls should be kept. For example, a change to #[derive(Clone)] may have a large impact on the downstream user's api.

Comment thread Makefile Outdated
Copy link
Copy Markdown
Contributor

@blackmwk blackmwk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @xanderbailey for this pr!

@blackmwk blackmwk merged commit eef9b42 into apache:main Jun 1, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants