Have you ever noticed how hard it can be to find out which versions of software (a) were compatible with which versions of software (b)?
Documentation for software that is meant to interoperate with other software generally says something about which version(s) of the counterpart it works with, but no one has any particular reason to keep a list of the history of that relationship.
What brought this on, you ask?
I'm trying to modernize my Emacs configuration file (for which there are many luxurious options) any have reasonably uniform behavior across the several systems I work on and home and work. Alas, customer requirements at work mean I need to deal with systems dating from 2014 (and we're happy they've finally gotten serious about migrating off that platform from 2010).
All those, aforementioned, luxurious ways to configure a modern Emacs system (Spacemacs, Doom Emacs, and other "distributions") require you to be using, well, a modern version of Emacs. By which they mean v25 is definitely out and v26,fi supported at all, will soon by unsupported.
So I'm trying to do it for myself. My strategy depend on several things:
-
add-package
to centralize the configuration
-
straight
as a way to get packages
- the identification semantic categories of behavior I'd like my emacs to have and the understanding that those behaviors could be provided by different packages for different Emacs versions
- a system for selecting implementations of those categories by Emacs version number
I expect to make the project publicly available pretty soon.
But let's say my category is language server services. Popular suppliers seem to be eglot
and lsp-mode
. If I want to use lsp-mode
on a up-to-date Emacs I'll just let straight
grab the newest release of the package. But the newest version relies on variable that are not in Emacs 26, so I need an older version, but how do I learn which tag straight
should get for those system?
And the problem repeats for every behavior which isn't handled internally.
Which, I suppose, is why the big distributions tell you "Use a modern Emacs, already!", albeit usually in more diplomatic terms.