Software Unscripted cover image

Software Unscripted

The SemVer Rabbit Hole with Predrag Gruevski

Sep 12, 2023
Richard interviews Predrag Gruevski, author of cargo-semver-checks, on the challenges of semantic versioning in Rust, trade-offs in enforcement, issues with changing function types, alternative versioning, minor and patch versions, and automation in versioning schemes. They also discuss the tools rock glue and Trustfall for embedding rocks and querying codebases.
58:14

Podcast summary created with Snipd AI

Quick takeaways

  • Enforcing semantic versioning in Rust is complex due to non-obvious edge cases and requires tools like Cargo Semver Chex to detect accidental mistakes in Rust packages.
  • Checking semantic versioning in Rust is challenging due to continuously evolving data sets, especially the unstable format of Rust Doc JSON.

Deep dives

Enforcing Semantic Versioning in Rust

Enforcing semantic versioning in Cargo for Rust is a complex task. It requires determining when a change is a breaking change inside a package. The challenge arises because Rust's semver has non-obvious edge case situations, making it difficult to make semantic versioning easy. Several attempts have been made to solve this problem, but they often require continuous maintenance to keep working. One way to address this is through the use of a tool like Cargo Sember Chex, which checks for accidental semantic versioning mistakes in Rust packages. The goal is not to prevent breaking changes but to ensure that the changes are intentional and appropriately communicated to downstream users.

Remember Everything You Learn from Podcasts

Save insights instantly, chat with episodes, and build lasting knowledge - all powered by AI.
App store bannerPlay store banner