Fork me on GitHub
#honeysql
<
2021-07-19
>
john-shaffer15:07:18

Why 2.0.<commits>?

seancorfield15:07:41

@jshaffer2112 All my projects follow MAJOR.MINOR.COMMITS these days -- same as many of the Clojure tools. I think it's a better model than SemVer.

seancorfield15:07:30

Per the HoneySQL README: > Once the prerelease testing is complete, this project will follow the version scheme MAJOR.MINOR.COMMITS where MAJOR and MINOR provide some relative indication of the size of the change, but do not follow semantic versioning. In general, all changes endeavor to be non-breaking (by moving to new names rather than by breaking existing names). COMMITS is an ever-increasing counter of commits since the beginning of this repository.

john-shaffer15:07:44

Why the commits counter though, as opposed to incrementing by one? It seems like a very considered choice, but I haven't found any explanation of the reasoning behind it

seancorfield16:07:41

The commit counter is easy to base a version on programmatically -- tools.build has a built-in function for that -- and it gives a sense of how much change has occurred between two releases. It also makes it clear you're not using SemVer (which just incrementing the patch slot would look like).

seancorfield16:07:51

The Clojure CLI, tools.deps.alpha, and several other libraries have all adopted this so I think it's a good model to follow.

seancorfield17:07:35

@jshaffer2112 Alex told me "commits is a meaningful, monotonically-increasing, quantitative description of version over time. major.minor is a subjective, human oriented description of version. Combined, you get both."

seancorfield17:07:48

(and I agree 🙂 )

john-shaffer17:07:51

Thanks! That makes sense