arlyon/async-stripe

Integrate cargo-public-api

Opened this issue · 1 comments

arlyon commented

Is your feature request related to a problem? Please describe.

We export a lot of code. We should use https://crates.io/crates/cargo-public-api to communicate / diff these.

Describe the solution you'd like

Add it to CI and run it on PRs

Describe alternatives you've considered

Additional context

No response

Observations:

  • I omitted auto derived impls and blanket impls, which brought down the api json file from 25mb to 7mb
  • cargo public-api diff does not work, I couldn't get features to be passed to diff (opened an issue for this)
  • The test workflow would work, however, the output is not diffed and the file is 7mb. So this file would have to be diffed manually and the pipeline would always just report "not the same". Maybe there is some nice diff tool that can be used to generate a diff in the pipeline.

Open questions:

  • Does public-api exposes some api to generate the diff programatically
  • Which features do we want to use to check this?
    • With diff we could check the whole matrix
    • With the test approach every combination of features will need a dedicated file which adds up quickly in repo size