Lua and semantic versioning

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Lua and semantic versioning

Mike Nelson
Lua's versioning scheme does not conform to semantic versioning (nor
does it assert to, nor do I assert that it should). But some recent
posts may be informed by the mistaken perception that it does.

In Lua's scheme, the transition from 5.2 to 5.3 can and does involve
breaking changes (the change from 5.1 to 5.2 was more radical, IMHO). In
a semantic scheme, both of these would require an increment to the major
version. On the other hand,
the patch number in Lua does  match the usage in a semantic scheme--so
the transition from 5.3.0 to 5.3.1 involves only bug fixes.

Lua's scheme uses major and minor versions differently--the minor
version  is essentially equivalent to a semantic major version, and
Lua's major version is an indication of something deeper than breaking
changes: a fundamental change to how Lua works, such as metatables vs.
tag methods vs. fallbacks, for example. Now a semantic major version
change (of something else) may include such fundamental changes, but
need not, and the version number gives no indication one way or the other.

As a matter of interest, Lua 5.3.1 would be Lua 15.0.1 if semantic
versioning had been used from the beginning (assuming every Lua minor
version would have been a semantic major version).

I would deeply appreciate any corrections or clarifications the Lua team
has to offer.

-- Mike Nelson