[asdf-devel] In defense of ASDF & Semantic versioning

Robert P. Goldman rpgoldman at sift.info
Thu Nov 21 19:46:43 UTC 2013


Faré wrote:
> I contend that the provider system, not the consumer system, should
> specify whether it's using semantic versioning or not.
> 
> With my proposed :backward-compatible-to keyword, you would specify:
> (defsystem floyd-warshall :version "2.1.4" :backward-compatible-to "2.0" ...)
> 
> Alternatively, it could specify a function to compare versions:
> (defsystem floyd-warshall :version "2.1.4" :version-satisfies
> 'uiop:version-compatible-p)
> 
> The latter alternative has the advantage that people can specify
> version schemes different from dot-separated integers, if they want
> (in which case parse-defsystem should have some checks relaxed).
> 

I'll tell you honestly, even though I like semantic versioning, I will
never do this.  It's just too burdensome to track whether version
intervals preserver API compatibility.

I can just barely manage to think about bumping a major version number
when I know I'm breaking or going to break the API, but anything more is
asking too much of the library supplier.

Indeed, given the number of ASDF systems in the wild that have no
version number at all, even bumping the major version number seems to be
asking a lot!  So I'm not interested in adding support for
:backward-compatible-to.

I like the :version-satisfies option, though...




More information about the asdf-devel mailing list