lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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