Targeting only a hand full of frozen releases is not abi stability. Abi stability is when any app can be compiled off any release and run on any future release (and ideally older releases too).
> Abi stability is when any app can be compiled off any release and run on any future release (and ideally older releases too).
Hang on, if that's the standard why is MacOS getting a pass? I'd believe that Windows meets that bar, but I see posts on a routine enough basis about Apple forcing rewrites, unless I really misunderstood something there.
Apple's actually quite good at this, but they do break things on purpose from time to time for reasons which they announce pretty publicly at WWDC when they do (32->64bit, deprecating GL, etc).
So, for example a dev can target an app at iOS 8 and it still works fine on iOS 17. Thats almost a decade of OS updates that didn't affect an app. Here's an example:
Similarly, it’s possible to compile a Mac app that targets PowerPC, x86, and ARM supporting all of the versions of macOS implied by that spread of CPUs.
X Lossless Decoder[0] is one such app, supporting all three archs and Mac OS X 10.4 up through macOS 14.x (current) in a single binary. It’ll work just as well on that circa 2000 400Mhz G3 iMac you picked up from a local yard sale as it will on a brand new M3 Pro MBP.
The Apple ecosystem of platforms take steps forward all the time, and they do a pretty good job at keeping binary compatibility with releases decently well while they are at it. They partly do this by only shipping C, ObjC and Swift platform frameworks though.
Meh, kinda.
It's not a case that proprietary software vendors only target RHEL, Suse and Ubuntu.
RHEL is a perfect target for stable software and Ubuntu might be as well if you decide to only support LTS releases.