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

Add SemVer compatibility checks #1556

Merged
merged 1 commit into from
Oct 22, 2024
Merged

Add SemVer compatibility checks #1556

merged 1 commit into from
Oct 22, 2024

Conversation

fuzzypixelz
Copy link
Member

This integrates the cargo-semver-checks tool in the CI to check for SemVer compatibility as per the Cargo reference
(https://doc.rust-lang.org/cargo/reference/semver.html).

The cargo-public-api tool is a viable alternative to cargo-semver-checks, but I didn't choose it because its comparison baseline needs to be stored in the repository and manually updated on each change. For zenoh, the 1.0.0 revision will be the baseline for the forseeable future.

This comes with a caveat though: cargo-semver-checks accepts a "release type" argument which would be either patch or minor in zenoh's case. I specified "patch" since I expect patch releases to be more common. If the next release is expected to include changes that require a minor version bump (as defined by the Cargo reference) then the CI workflow would need to be manually adjusted at the start and the end of the release cycle.

@fuzzypixelz fuzzypixelz added the internal Changes not included in the changelog label Oct 21, 2024
@fuzzypixelz fuzzypixelz force-pushed the add-semver-checks branch 2 times, most recently from da64d59 to 319d794 Compare October 21, 2024 15:20
@fuzzypixelz fuzzypixelz enabled auto-merge (squash) October 21, 2024 15:21
This integrates the cargo-semver-checks tool in the CI to check for
SemVer compatibility as per the Cargo reference
(https://doc.rust-lang.org/cargo/reference/semver.html).

The cargo-public-api tool is a viable alternative to
cargo-semver-checks, but I didn't choose it because its comparison
baseline needs to be stored in the repository and manually updated on
each change. For zenoh, the 1.0.0 revision will be the baseline for the
forseeable future.

This comes with a caveat though: cargo-semver-checks accepts a "release
type" argument which would be either patch or minor in zenoh's case. I
specified "patch" since I expect patch releases to be more common. If
the next release is expected to include changes that require a minor
version bump (as defined by the Cargo reference) then the CI workflow
would need to be manually adjusted at the start and the end of the release cycle.
@fuzzypixelz fuzzypixelz merged commit 9fd0b36 into main Oct 22, 2024
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal Changes not included in the changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants