Hi,
I am watching a talk on CMake - and one of the things the presenter is
talking about (or recommending) is semantic versioning (semver.org).
Made me think that Lua's numbering is not compliant if a minor release
is meant to be signify full backward compatibility. So 5.4 ought be
6.0; and 5.3 and 5.2 ought to have had major version changes too.
Regards
semver is not the only sensible standard for semantic versioning.
Lua follows the older model. The major version number is constrained to only change when there are substantial changes to the design. The minor version number represents what should be interchangeable in terms of compatibility, modulo bugfixes. The patch version number represents bugfixes.
I wouldn't say that the change to environments between 5.1 and 5.2 is a compatible change.
I have no complaints with how Lua does versioning, to be clear.
Sorry, my phrasing was awkward. I meant to say that this was an incompatible change, because the minor version number changed. However, it wasn't a substantial change to the overall design of the language, which has been fairly stable since 5.0; most 5.1 code will still run on 5.4 unmodified. (Of course, there will be code that breaks, but it's a minority proportional to the sum total of all Lua code.)
/s/ Adam