Skip to content
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

Test for API breaking changes in CI #120

Closed
xFrednet opened this issue Feb 27, 2023 · 1 comment · Fixed by #262
Closed

Test for API breaking changes in CI #120

xFrednet opened this issue Feb 27, 2023 · 1 comment · Fixed by #262
Assignees
Labels
A-api Area: Stable API A-infra Area: Infrastructure and CI magic :sparkles: C-enhancement Category: New feature or request
Milestone

Comments

@xFrednet
Copy link
Member

Currently, the CI only checks that the marker_api crate can be compiled on stable. It's up to the reviewer and programmer to ensure that the API doesn't break. This is fine right now, as the API is under active development and still changes frequently. However, the goal of Marker is to create a stable API.

The rust ecosystem has tools to prevent accidental public API changes, like cargo-semver-checks. Once v0.1.0 or a higher version has been released, I think it would be good to utilize such a tool.

This issue is blocked for now until v0.1.0 or a later point, when we've defined what stability means for marker and ii API breakage will be allowed under specific circumstances.

@xFrednet xFrednet added C-enhancement Category: New feature or request A-api Area: Stable API A-infra Area: Infrastructure and CI magic :sparkles: S-blocked Status: Blocked labels Feb 27, 2023
@xFrednet xFrednet added this to the v0.2.0 milestone Jul 25, 2023
@xFrednet xFrednet self-assigned this Jul 26, 2023
@xFrednet xFrednet modified the milestones: v0.2.0, v0.3.0 Aug 18, 2023
@xFrednet xFrednet removed their assignment Aug 24, 2023
@xFrednet
Copy link
Member Author

I've done a bit of testing on this, but nothing extensive. One thing I noticed, is that by default, it compares the API to the version from crates.io. This means that once the API is broken on master, every PR would fail this check. Instead, the semver check should check if the changes of the PR add new breaking changes, in comparison to master.

During initial development, v0.* API breakage is allowed. During this time, I want to have this check, to ensure that we don't break the API unintentionally and that these changes are clearly tracked in our changelog.

@xFrednet xFrednet removed the S-blocked Status: Blocked label Sep 28, 2023
@xFrednet xFrednet changed the title Test for API breaking changes in CI (after v0.1.0) Test for API breaking changes in CI Sep 28, 2023
@xFrednet xFrednet self-assigned this Sep 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-api Area: Stable API A-infra Area: Infrastructure and CI magic :sparkles: C-enhancement Category: New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant