A user was asking on the forums about a breakage in the railbuilder
mod[1]. Upon
investigation, I realised that the APIs railbuilder depended on had been
refactored out, namely:
* is_track_and_drives_on -> is_track
* trackplacer.bend_rail was made private, nearest replacement
advtrains.trackplacer.place_track
There are possibly others in the trackplacer API as well, since
950d6f640cae7
refactored that file quite extensively.
As 2.5.0 constitutes a break in backwards compatibility, then according to
semantic versioning [2] a new major version is in order. (According to
the same
standard, several of the patches in the 2.4.x series should have been minor
versions rather than patch versions). I know that the TSS update was
bigger in
magnitude than route_prog_rework, but both still befit a major version bump
according to semver.
Alternatively to a major version bump, it would probably be appreciated
by users
if the old APIs were restored. Then the patch to railbuilder would not be
needed.
I am not suggesting either course*, but one of the above should be chosen,
because a minor version bump should not introduce backwards
incompatibility like
this. It is unexpected from downstream users and modders of Advtrains.
Faithfully,
Blockhead
[1] https://forum.luanti.org/viewtopic.php?p=443892#p443892
[2] https://semver.org/
* OK maybe my preference would be to retain backwards compatibility, but a
clear signal to end users is acceptable as well, and entails less work.
Hi Blockhead,
I see your point. It's true, I have been quite lax in following SemVer principles. However, IMO it would now cause more trouble if I was to revoke the release on ContentDB and rerelease as 3.0, so I will leave it for now.
I saw that in the meantime you made a PR for railbuilder to update to the newest APIs, and rlars also did some changes to not break compat with older versions. As I am not aware of any other mod using the trackplacer API, I would like to leave it as is now.
Regards,
orwell