SpringMT / zstd-ruby

Ruby binding for zstd(Zstandard - Fast real-time compression algorithm)
https://github.com/facebook/zstd
BSD 3-Clause "New" or "Revised" License
69 stars 16 forks source link

Semantic versioning #86

Open paddor opened 6 months ago

paddor commented 6 months ago

First of all, I'm grateful for this library. It has served me well over the last year or so. But I couldn't help but notice that you've recently made API changes in a point-release (in 1.5.6.2). Existing code now suddenly emits deprecation warnings even though this library was only updated vom 1.5.6.1 to 1.5.6.2. I guess that's just because you use Zstandard's own version and append another integer to it. But is there maybe a better, more semantic versioning schema?

As a developer I'd like to be able to specify one release line like 1.5.x (e.g. ~> 1.5.6 in Gemfile) and not have to worry about API changes (even if they're backwards compatible).

This is nothing urgent and you can close this issue if you want to keep the same versioning schema. But maybe it can influence future releases of this great library.

SpringMT commented 6 months ago

Thank you for your comment! Current versioning scheme was initially adopted to ensure compatibility by aligning with Zstandard's versioning (8 years ago!). However, I now feel that synchronizing with Zstandard's versioning is no longer necessary. Consequently, I am considering shifting to a semantic versioning approach. This change would likely be introduced with a new major version release (e.g., version 2.x). I appreciate a bit more time to think this over!