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