Compatibility with previous versions of Julia: how much makes sense for a new package?

I am developing several computational packages, mainly oriented towards control system applications. Several times I was confronted with keeping compatibility with earlier versions of Julia, where I set (I don’t remember the precise reason) version 1.2 as limit for backward compatibility. I wonder how much effort should be invested by the developers of new packages to keep compatibility with previous versions of Julia. For example, in my case, the DescriptorSystems package requires features (e.g., lower latency) provided basically only in Julia 1.6. The tests for Julia 1.6 takes about 20 minutes, while for version 1.2 they need 1.5 hours! For a typical concrete issue see #40586. So, should be any strong reason for me to enforce compatibility with version 1.2 ?

I would be pleased learning your opinions in this matter.

I guess this will mainly depend on your users, but in my entirely personal opinion there’s not much reason to focus on backwards compatibility to a minor, non-LTS release version. The vast majority of users should be using the latest stable release, so there’s very little benefit of trying to bend over backwards to support, say, version 1.2 if (thanks to SemVer) the user should be able to painlessly switch to 1.6 anyway.

4 Likes

I would say no. Unless there are strong reasons, only supporting the latest release should be fine.

Some people like to ensure that their package keeps working with the LTS (which currently is 1.0.5) but it is my belief that there is a very small user base on that version and those that are on that version are unlikely to install new versions of packages anyway.

7 Likes

I guess some sort of telemetry could have helped to make more knowledgeable decisions, but thanks to Pkg.jl telemetry should be opt-in we are not going to have any.

So, best course of action is to drop support and ask users to switch to a newer version of Julia (it’s generally better anyway)

2 Likes

I would say zero, unless you have a really good reason (someone is paying for it, or at least asked nicely).

4 Likes