~gpcf/advtrains-devel

2

2.5.0 is backwards-incompatible

Details
Message ID
<TYCPR01MB102310A45D60ED56F750932E1DBAB2@TYCPR01MB10231.jpnprd01.prod.outlook.com>
Sender timestamp
1743989566
DKIM signature
pass
Download raw message
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.
Details
Message ID
<20250408231943.0faa94a8@BARIUM>
In-Reply-To
<TYCPR01MB102310A45D60ED56F750932E1DBAB2@TYCPR01MB10231.jpnprd01.prod.outlook.com> (view parent)
Sender timestamp
1744154383
DKIM signature
pass
Download raw message
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
Details
Message ID
<20250408232430.0b99ed5c@BARIUM>
In-Reply-To
<20250408231943.0faa94a8@BARIUM> (view parent)
Sender timestamp
1744154670
DKIM signature
pass
Download raw message
I forgot to say: I'll do my best to follow semantic versioning for future updates. And, thank you for your help.

orwell
Reply to thread Export thread (mbox)